Sadržaj:

Pametna bova [GPS, radio (NRF24) i modul SD kartice]: 5 koraka (sa slikama)
Pametna bova [GPS, radio (NRF24) i modul SD kartice]: 5 koraka (sa slikama)

Video: Pametna bova [GPS, radio (NRF24) i modul SD kartice]: 5 koraka (sa slikama)

Video: Pametna bova [GPS, radio (NRF24) i modul SD kartice]: 5 koraka (sa slikama)
Video: KRIS VOTS - LJUBAV, IZDAJA i UBISTVO‼ CHRIS WATTS - LOVE, BETRAYAL AND MURDER‼️ 2024, Srpanj
Anonim
Image
Image

Ova serija pametnih plutača prikazuje naš (ambiciozan) pokušaj izgradnje znanstvene bove koja može poduzeti značajna mjerenja o moru upotrebom proizvoda dostupnih u prodaji. Ovo je drugi od četiri vodiča - provjerite jeste li ažurirani, a ako trebate brzi uvod u projekt, pogledajte naš sažetak.

Dio 1: Izrada valova i mjerenja temperature

U ovom vodiču pokazat ćemo vam kako doći do GPS podataka, pohraniti ih na SD karticu i poslati ih putem radija.

To smo učinili kako bismo mogli pratiti lokaciju naše bove na moru. Radio znači da ga možemo gledati daljinski, a SD kartica znači da se slučajno nešto pokvari i ode na lutanje, možemo preuzeti podatke koje je prikupio tijekom neplaniranog izleta - ako ga ikada uspijemo dohvatiti!

Pribor

GPS modul - Amazon

Modul SD kartice - Amazon

SD kartica - Amazon

2 X Radio modula (NRF24L01+) - Amazon

2 X Arduino - Amazon

Korak 1: Dobivanje GPS podataka

Slanje GPS podataka putem radija
Slanje GPS podataka putem radija

Pametna bova vrši mjerenje senzora dok sjedi u moru, uključujući GPS lokaciju i datum i vrijeme. Pogledajte shemu koja prikazuje kako smo postavili krug. GPS modul komunicira putem serijske veze, pa za komunikaciju s njim koristimo serijsku biblioteku softvera Arduino, kao i malu GPS biblioteku. Ove knjižnice čine sve izuzetno jednostavnim. Provedimo vas kroz kôd …

#uključi

#include // Objekt TinyGPS ++ TinyGPSPlus gps; // serijska veza s GPS uređajem SoftwareSerial ss (4, 3); struct dataStruct {dvostruka zemljopisna širina; dvostruka zemljopisna dužina; nepotpisani dugi datum; nepotpisano dugo vrijeme; } gpsData; void setup () {Serial.begin (115200); ss.početak (9600); } void loop () {while (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo (); printResults (); }}} void getInfo () {if (gps.location.isValid ()) {gpsData.latitude = gps.location.lat (); gpsData.longitude = gps.location.lng (); } else {Serial.println ("Nevažeća lokacija"); } if (gps.date.isValid ()) {gpsData.date = gps.date.value (); } else {Serial.println ("Nevažeći datum"); } if (gps.time.isValid ()) {gpsData.time = gps.time.value (); } else {Serial.println ("Neispravno vrijeme"); }} void printResults () {Serial.print ("Lokacija:"); Serijski.ispis (gpsData.latitude, 6); Serial.print (","); Serijski.ispis (gpsData.longitude, 6); Serial.print ("Datum:"); Serijski.ispis (gpsData.date); Serial.print ("Vrijeme:"); Serijski.ispis (gpsData.time); Serial.println (); }

(Pogledajte video za ovaj kôd na

Korak 2: Slanje GPS podataka putem radija

Slanje GPS podataka putem radija
Slanje GPS podataka putem radija

Pretpostavimo da je bova u moru radi mjerenja, ali želimo vidjeti podatke bez namakanja nogu ili dovođenja bove na obalu. Za daljinska mjerenja koristimo radio modul spojen na Arduino s obje strane komunikacije. U budućnosti ćemo Arduino sa prijemnika zamijeniti pi sa malinom. Radio radi slično s oba ova sučelja pa je zamjena prilično jednostavna.

Radio -modul komunicira pomoću SPI -a, koji zahtijeva nekoliko više veza od I2C -a, ali je i dalje vrlo jednostavan za korištenje zbog knjižnice NRF24. Pomoću GPS modula za mjerenje senzora prenosimo njegove podatke s jednog Arduina na drugi. Spojit ćemo GPS i radio modul na Arduino, a s druge strane Arduino s radijskim modulom - pogledajte shemu.

Odašiljač

#uključi

#include #include #include #include TinyGPSPlus gps; SoftwareSerial ss (4, 3); Radio RF24 (8, 7); // CE, CSN struktura dataStruct {dvostruka širina; dvostruka zemljopisna dužina; nepotpisani dugi datum; nepotpisano dugo vrijeme; } gpsData; void setup () {Serial.begin (115200); ss.početak (9600); Serial.println ("Postavljanje radija"); // Postavljanje odašiljača radio radio.begin (); radio.openWritingPipe (0xF0F0F0F0E1LL); radio.setChannel (0x76); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radio.stopListening (); radio.enableDynamicPayloads (); radio.powerUp (); Serial.println ("Počinje slanje"); } void loop () {while (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo (); radio.write (& gpsData, sizeof (gpsData)); }}} void getInfo () {if (gps.location.isValid ()) {gpsData.longitude = gps.location.lng (); gpsData.latitude = gps.location.lat (); } else {gpsData.longitude = 0.0; gpsData.latitude = 0.0; } if (gps.date.isValid ()) {gpsData.date = gps.date.value (); } else {gpsData.date = 0; } if (gps.time.isValid ()) {gpsData.time = gps.time.value (); } else {gpsData.time = 0; }}

PRIJAMNIK

#uključi

#include #include RF24 radio (8, 7); // CE, CSN struktura dataStruct {dvostruka širina; dvostruka zemljopisna dužina; nepotpisani dugi datum; nepotpisano dugo vrijeme; } gpsData; void setup () {Serial.begin (115200); // Postavljanje prijemnika radio radio.begin (); radio.openReadingPipe (1, 0xF0F0F0F0E1LL); radio.setChannel (0x76); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radio.startListening (); radio.enableDynamicPayloads (); radio.powerUp (); } void loop () {if (radio.available ()) {radio.read (& gpsData, sizeof (gpsData)); Serial.print ("Lokacija:"); Serijski.ispis (gpsData.latitude, 6); Serial.print (","); Serijski.ispis (gpsData.longitude, 6); Serial.print ("Datum:"); Serijski.ispis (gpsData.date); Serial.print ("Vrijeme:"); Serial.print (gpsData.time); Serial.println ();}}

(Pogledajte video za ovaj kôd na

Korak 3: Pohranjivanje podataka pomoću modula SD kartice

Pohranjivanje podataka pomoću modula SD kartice
Pohranjivanje podataka pomoću modula SD kartice

Radio modul je prilično pouzdan, ali ponekad vam je potreban plan za slučaj nepredviđenih situacija u slučaju nestanka struje na prijemniku ili ako se radio pomakne izvan dometa. Naš plan za nepredviđene situacije je modul SD kartice koji nam omogućuje pohranu podataka koje prikupljamo. Količina prikupljenih podataka nije toliko velika, pa će čak i mala SD kartica lako moći pohraniti podatke vrijedne jedan dan.

#uključi

#include #include #include TinyGPSPlus gps; SoftwareSerial ss (4, 3); struct dataStruct {dvostruka zemljopisna širina; dvostruka zemljopisna dužina; nepotpisani dugi datum; nepotpisano dugo vrijeme; } gpsData; void setup () {Serial.begin (115200); ss.početak (9600); if (! SD.begin (5)) {Serial.println ("Kartica nije uspjela ili nije prisutna"); povratak; } Serial.println ("kartica inicijalizirana."); Datoteka dataFile = SD.open ("gps_data.csv", FILE_WRITE); if (dataFile) {dataFile.println ("Latitude, Longitude, Date, Time"); dataFile.close (); } else {Serial.println ("ne mogu otvoriti datoteku"); }} void loop () {while (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo (); printResults (); saveInfo (); }}} void getInfo () {if (gps.location.isValid ()) {gpsData.latitude = gps.location.lat (); gpsData.longitude = gps.location.lng (); } else {Serial.println ("Nevažeća lokacija"); } if (gps.date.isValid ()) {gpsData.date = gps.date.value (); } else {Serial.println ("Nevažeći datum"); } if (gps.time.isValid ()) {gpsData.time = gps.time.value (); } else {Serial.println ("Neispravno vrijeme"); }} void printResults () {Serial.print ("Lokacija:"); Serijski.ispis (gpsData.latitude, 6); Serial.print (","); Serijski.ispis (gpsData.longitude, 6); Serial.print ("Datum:"); Serijski.ispis (gpsData.date); Serial.print ("Vrijeme:"); Serial.print (gpsData.time); Serial.println (); } void saveInfo () {File dataFile = SD.open ("gps_data.csv", FILE_WRITE); if (dataFile) {dataFile.print (gpsData.latitude); dataFile.print (","); dataFile.print (gpsData.longitude); dataFile.print (","); dataFile.print (gpsData.date); dataFile.print (","); dataFile.println (gpsData.time); dataFile.close (); } else {Serial.println ("nope bez datoteke podataka"); }}

(Razgovaramo o ovom kodu u videu

Korak 4: Slanje i pohranjivanje GPS podataka

Slanje i pohranjivanje GPS podataka
Slanje i pohranjivanje GPS podataka
Slanje i pohranjivanje GPS podataka
Slanje i pohranjivanje GPS podataka

Korak 5: Hvala

Hvala!
Hvala!

Prijavite se na našu mailing listu!

1. dio: Izrada valova i mjerenje temperature

Dio 2: GPS NRF24 radio i SD kartica

3. dio: Raspored napajanja bovi

4. dio: Raspoređivanje bove

Preporučeni: