Obsah:
- Zásoby
- Krok 1: Získanie údajov GPS
- Krok 2: Odosielanie údajov GPS prostredníctvom rádia
- Krok 3: Ukladanie údajov pomocou modulu SD karty
- Krok 4: Odosielanie a ukladanie údajov GPS
- Krok 5: Ďakujem
Video: Inteligentná bója [GPS, rádio (NRF24) a modul karty SD]: 5 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
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
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
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
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
Krok 5: Ďakujem
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:
Inteligentná bója [Zhrnutie]: 8 krokov (s obrázkami)
Inteligentná bója [Zhrnutie]: Všetci milujeme more. Ako kolektív sa tam hrneme na prázdniny, na vodné športy alebo na živobytie. Ale pobrežie je dynamická oblasť vydaná napospas vlnám. Stúpajúca hladina mora okusuje pláže a silné extrémne udalosti, ako je hurri
Modul karty SD s Arduino: Ako čítať/zapisovať údaje: 14 krokov
Modul karty SD s Arduino: Ako čítať/zapisovať údaje: Prehľad Ukladanie údajov je jednou z najdôležitejších častí každého projektu. Existuje niekoľko spôsobov ukladania údajov podľa typu a veľkosti údajov. Karty SD a micro SD sú jednou z najpraktickejších medzi pamäťovými zariadeniami, ktoré sa používajú v
Obojsmerné rádio NRF24 pre telemetriu: 9 krokov (s obrázkami)
Obojsmerné rádio NRF24 pre telemetriu: Ahoj, volám sa Pedro Castelani a prinášam vám môj prvý návod: zostrojenie obojsmerného rádia s arduinom pre, na čo potrebujete. V tomto projekte urobíme dva samostatné obvody, ktoré budú fungovať ako prijímač aj vysielač
Najlacnejší modul karty Arduino Sd: 5 krokov
Najlacnejší modul karty SD Arduino: Popis: Modul karty SD sa používa na prenos údajov na a zo štandardnej karty SD. Pin out je priamo kompatibilný s Arduino a môže byť použitý aj s inými mikro-ovládačmi. Umožňuje nám to pridať veľkokapacitné úložisko a protokolovanie dát do nášho
Modul karty Arduino + SD: 5 krokov
Modul karty Arduino + SD: Ahoj priatelia, pozrite sa na video YOUTUBE, stačí vám to. A nezabudnite sa prihlásiť na odber Viac informácií nájdete na mojom blogu https://www.blogger.com/blogger.g?blogID=2433497353797882246#editor/target=post;postID=5655686325161138749;onPu