Obsah:

Inteligentná bója [GPS, rádio (NRF24) a modul karty SD]: 5 krokov (s obrázkami)
Inteligentná bója [GPS, rádio (NRF24) a modul karty SD]: 5 krokov (s obrázkami)

Video: Inteligentná bója [GPS, rádio (NRF24) a modul karty SD]: 5 krokov (s obrázkami)

Video: Inteligentná bója [GPS, rádio (NRF24) a modul karty SD]: 5 krokov (s obrázkami)
Video: EBE OLie 00a)2018-9-22 UFO Congress Czech- Podhrazska ILona, Ivana Whole lecture CC.- 2024, Júl
Anonim
Image
Image

Táto séria Smart Buoy mapuje náš (ambiciózny) pokus o vybudovanie vedeckej bóje, ktorá dokáže pomocou zmysluplných výrobkov vykonávať zmysluplné merania o mori. Toto sú dva zo štyroch tutoriálov - uistite sa, že ste aktuálni, a ak potrebujete rýchly úvod do projektu, pozrite sa na naše zhrnutie.

Časť 1: Meranie vĺn a teploty

V tomto návode vám ukážeme, ako získať údaje GPS, uložiť ich na kartu SD a odoslať ich niekam pomocou rádia.

Urobili sme to, aby sme mohli sledovať polohu našej námornej bóje. Rádio znamená, že ho môžeme sledovať na diaľku a karta SD znamená, že keď sa niečo stane, že sa niečo pokazí a ide sa na potulky, môžeme si stiahnuť údaje, ktoré zozbieral počas neplánovanej exkurzie - ak sa nám ich niekedy podarí získať!

Zásoby

GPS modul - Amazon

Modul karty SD - Amazon

SD karta - Amazon

2 X Rádiové moduly (NRF24L01+) - Amazon

2 X Arduino - Amazon

Krok 1: Získanie údajov GPS

Odosielanie údajov GPS prostredníctvom rádia
Odosielanie údajov GPS prostredníctvom rádia

Inteligentná bója meria senzory, keď sedí v mori, vrátane polohy GPS a dátumu a času. Pozrite sa na schému, ktorá ukazuje, ako sme obvod nastavili. Modul GPS komunikuje prostredníctvom sériového pripojenia, takže na komunikáciu s ním používame sériovú knižnicu softvéru Arduino a malú knižnicu GPS. Tieto knižnice robia všetko super jednoduchým. Prevezmeme vás kódom …

#zahrnúť

#include // Objekt TinyGPS ++ TinyGPSPlus gps; // Sériové pripojenie k zariadeniu GPS SoftwareSerial ss (4, 3); struct dataStruct {dvojitá zemepisná šírka; dvojitá dĺžka; dlhý dátum bez znamienka; nepodpísaný dlhý čas; } gpsData; void setup () {Serial.begin (115200); ss.begin (9600); } void loop () {while (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo (); printVýsledky (); }}} neplatné getInfo () {if (gps.location.isValid ()) {gpsData.latitude = gps.location.lat (); gpsData.longitude = gps.location.lng (); } else {Serial.println ("Neplatné umiestnenie"); } if (gps.date.isValid ()) {gpsData.date = gps.date.value (); } else {Serial.println ("Neplatný dátum"); } if (gps.time.isValid ()) {gpsData.time = gps.time.value (); } else {Serial.println ("Neplatný čas"); }} void printResults () {Serial.print ("Location:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.longitude, 6); Serial.print („Dátum:“); Serial.print (gpsData.date); Serial.print ("Čas:"); Serial.print (gpsData.time); Serial.println (); }

(Pozrite si video s týmto kódom na

Krok 2: Odosielanie údajov GPS prostredníctvom rádia

Odosielanie údajov GPS prostredníctvom rádia
Odosielanie údajov GPS prostredníctvom rádia

Predpokladajme, že bója je na mori a robí merania, ale chceme vidieť údaje bez toho, aby sme si namočili nohy alebo vyniesli bóju na breh. Na diaľkové meranie používame rádiový modul pripojený k Arduinu na oboch stranách komunikácie. V budúcnosti nahradíme Arduino na strane prijímača malinovým pi. Rádio funguje podobne s oboma týmito rozhraniami, takže ich výmena je veľmi jednoduchá.

Rádiový modul komunikuje pomocou SPI, ktorý vyžaduje niekoľko ďalších pripojení ako I2C, ale napriek tomu je používanie knižnice NRF24 skutočne jednoduché. Pomocou modulu GPS na meranie senzorov prenášame jeho údaje z jedného Arduina do druhého. Pripojíme modul GPS a rádio k Arduinu a na druhej strane Arduino k modulu rádia - pozrite sa na schému.

Vysielač

#zahrnúť

#include #include #include #include TinyGPSPlus gps; SoftwareSerial ss (4, 3); Rádio RF24 (8, 7); // CE, CSN struct dataStruct {double latitude; dvojitá dĺžka; nepodpísaný dlhý dátum; nepodpísaný dlhý čas; } gpsData; void setup () {Serial.begin (115200); ss.begin (9600); Serial.println ("Nastavenie rádia"); // Nastavenie vysielača rádio 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 ("Začína sa odosielanie"); } void loop () {while (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo (); radio.write (& gpsData, sizeof (gpsData)); }}} neplatné 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; }}

PRIJÍMAČ

#zahrnúť

#include #include RF24 rádio (8, 7); // CE, CSN struct dataStruct {double latitude; dvojitá dĺžka; nepodpísaný dlhý dátum; nepodpísaný dlhý čas; } gpsData; void setup () {Serial.begin (115200); // Nastavenie prijímača rádia 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 („Miesto:“); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.longitude, 6); Serial.print („Dátum:“); Serial.print (gpsData.date); Serial.print ("Čas:"); Serial.print (gpsData.time); Serial.println ();}}

(Pozrite si video s týmto kódom na

Krok 3: Ukladanie údajov pomocou modulu SD karty

Ukladanie údajov pomocou modulu SD karty
Ukladanie údajov pomocou modulu SD karty

Rádiový modul je celkom spoľahlivý, ale niekedy potrebujete pohotovostný plán pre prípad, že dôjde k výpadku prúdu na strane prijímača alebo ak sa rádio pohybuje mimo dosahu. Náš pohotovostný plán je modul karty SD, ktorý nám umožňuje ukladať údaje, ktoré zhromažďujeme. Množstvo zhromažďovaných údajov nie je také veľké, takže aj malá karta SD bude schopná ľahko uložiť údaje za jeden deň.

#zahrnúť

#include #include #include TinyGPSPlus gps; SoftwareSerial ss (4, 3); struct dataStruct {dvojitá zemepisná šírka; dvojitá dĺžka; dlhý dátum bez znamienka; nepodpísaný dlhý čas; } gpsData; void setup () {Serial.begin (115200); ss.begin (9600); if (! SD.begin (5)) {Serial.println ("Karta zlyhala alebo nie je prítomná"); návrat; } Serial.println ("karta inicializovaná."); Súbor dataFile = SD.open ("gps_data.csv", FILE_WRITE); if (dataFile) {dataFile.println ("Latitude, Longitude, Date, Time"); dataFile.close (); } else {Serial.println ("nie, nie je možné otvoriť súbor"); }} void loop () {while (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo (); printVýsledky (); saveInfo (); }}} neplatné getInfo () {if (gps.location.isValid ()) {gpsData.latitude = gps.location.lat (); gpsData.longitude = gps.location.lng (); } else {Serial.println ("Neplatné umiestnenie"); } if (gps.date.isValid ()) {gpsData.date = gps.date.value (); } else {Serial.println ("Neplatný dátum"); } if (gps.time.isValid ()) {gpsData.time = gps.time.value (); } else {Serial.println ("Neplatný čas"); }} void printResults () {Serial.print ("Location:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.longitude, 6); Serial.print („Dátum:“); Serial.print (gpsData.date); Serial.print ("Čas:"); Serial.print (gpsData.time); Serial.println (); } neplatné saveInfo () {Súbor 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 no datafile"); }}

(Tento kód hovoríme vo videu

Krok 4: Odosielanie a ukladanie údajov GPS

Odosielanie a ukladanie údajov GPS
Odosielanie a ukladanie údajov GPS
Odosielanie a ukladanie údajov GPS
Odosielanie a ukladanie údajov GPS

Krok 5: Ďakujem

Vďaka!
Vďaka!

Zaregistrujte sa do nášho zoznamu adries!

Časť 1: Meranie vĺn a teploty

Časť 2: Rádio GPS NRF24 a karta SD

Časť 3: Plánovanie výkonu bóje

Časť 4: Nasadenie bóje

Odporúča: