Sadržaj:
- Supplies
- Korak 1: Dobivanje GPS podataka
- Korak 2: Slanje GPS podataka putem radija
- Korak 3: Pohranjivanje podataka pomoću modula SD kartice
- Korak 4: Slanje i skladištenje GPS podataka
- Korak 5: Hvala
Video: Pametna plutača [GPS, radio (NRF24) i modul SD kartice]: 5 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
Ova serija pametnih plutača prikazuje naš (ambiciozan) pokušaj izgradnje znanstvene bove koja može poduzeti značajna mjerenja o moru pomoću proizvoda dostupnih na tržištu. Ovo je drugi od četiri vodiča - provjerite jeste li ažurirani, a ako vam je potreban brz uvod u projekt, pogledajte naš sažetak.
Dio 1: Izrada valova i mjerenje 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!
Supplies
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
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 biblioteke čine sve super jednostavnim. Provedimo vas kroz kôd …
#include
#include // Objekat TinyGPS ++ TinyGPSPlus gps; // serijska veza s GPS uređajem SoftwareSerial ss (4, 3); struct dataStruct {dvostruka širina; dvostruka geografska dužina; nepotpisani dugi datum; nepotpisano dugo; } gpsData; void setup () {Serial.begin (115200); ss.begin (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 ("Neispravna lokacija"); } if (gps.date.isValid ()) {gpsData.date = gps.date.value (); } else {Serial.println ("Neispravan datum"); } if (gps.time.isValid ()) {gpsData.time = gps.time.value (); } else {Serial.println ("Neispravno vrijeme"); }} void printResults () {Serial.print ("Lokacija:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.longitude, 6); Serial.print ("Datum:"); Serial.print (gpsData.date); Serial.print ("Vrijeme:"); Serial.print (gpsData.time); Serial.println (); }
(Pogledajte video zapis za ovaj kôd na
Korak 2: Slanje GPS podataka putem radija
Pretpostavimo da je bova u moru radi mjerenja, ali želimo vidjeti podatke bez da smo smočili noge ili izbacili bovu 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 nego I2C, ali je i dalje vrlo jednostavan za korištenje zbog biblioteke NRF24. Koristeći GPS modul 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 radio modulom - pogledajte shemu.
Odašiljač
#include
#include #include #include #include TinyGPSPlus gps; SoftwareSerial ss (4, 3); Radio RF24 (8, 7); // CE, CSN struktura dataStruct {dvostruka širina; dvostruka geografska dužina; nepotpisani dugi datum; nepotpisano dugo; } gpsData; void setup () {Serial.begin (115200); ss.begin (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; }}
RECEIVER
#include
#include #include RF24 radio (8, 7); // CE, CSN struktura dataStruct {dvostruka širina; dvostruka geografska dužina; nepotpisani dugi datum; nepotpisano dugo; } 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:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.longitude, 6); Serial.print ("Datum:"); Serial.print (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
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 tako velika, pa će čak i mala SD kartica lako moći pohraniti podatke vrijedne jedan dan.
#include
#include #include #include TinyGPSPlus gps; SoftwareSerial ss (4, 3); struct dataStruct {dvostruka širina; dvostruka geografska dužina; nepotpisani dugi datum; nepotpisano dugo; } gpsData; void setup () {Serial.begin (115200); ss.begin (9600); if (! SD.begin (5)) {Serial.println ("Kartica nije uspjela ili nije prisutna"); return; } 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 ("Neispravna lokacija"); } if (gps.date.isValid ()) {gpsData.date = gps.date.value (); } else {Serial.println ("Neispravan datum"); } if (gps.time.isValid ()) {gpsData.time = gps.time.value (); } else {Serial.println ("Neispravno vrijeme"); }} void printResults () {Serial.print ("Lokacija:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.longitude, 6); Serial.print ("Datum:"); Serial.print (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"); }}
(O ovom kodu razgovaramo u videu
Korak 4: Slanje i skladištenje GPS podataka
Korak 5: Hvala
Prijavite se na našu mailing listu!
Dio 1: Mjerenje valova i temperature
Dio 2: GPS NRF24 radio i SD kartica
Dio 3: Raspored napajanja bovi
Dio 4: Raspoređivanje bove
Preporučuje se:
Modul SD kartice s Arduinom: Kako čitati/pisati podatke: 14 koraka
Modul SD kartice s Arduinom: Kako čitati/pisati podatke: PregledSnimanje podataka jedan je od najvažnijih dijelova svakog projekta. Postoji nekoliko načina za spremanje podataka prema vrsti i veličini podataka. SD i mikro SD kartice su jedne od najpraktičnijih među uređajima za pohranu podataka, koji se koriste u
NRF24 dvosmjerni radio za telemetriju: 9 koraka (sa slikama)
NRF24 dvosmjerni radio za telemetriju: Zdravo momci, moje ime je Pedro Castelani i donosim vam svoje prve upute: izgradnja dvosmjernog radija s arduinom za, pa, sve što vam treba. U ovom projektu ćemo napraviti dva odvojena kola koja će djelovati i kao prijemnik i kao prijenos
Modul Arduino + SD kartice: 5 koraka
Modul Arduino + SD kartice: Pozdrav PrijateljiMolimo vas da pogledate YOUTUBE video, dovoljno vam je. I ne zaboravite da se pretplatite za više informacija posjetite moj blog https://www.blogger.com/blogger.g?blogID=2433497353797882246#editor/target=post;postID=5655686325161138749;onPu
Modul SD kartice s ESP8266: 6 koraka
Modul SD kartice s ESP8266: U ovom sklopu imamo SD karticu povezanu s ESP8266. Stavili smo DHT22, koji mjeri temperaturu i vlažnost i šalje te podatke na SD karticu. Na krugu prikazuje vlažnost od 43,40 i temperaturu od 26,80. Svaki put kad ja
Geek - držač kreditne kartice/poslovne kartice sa starog tvrdog diska prijenosnog računara .: 7 koraka
Geek - držač kreditne kartice / poslovne kartice sa starog tvrdog diska za prijenosno računalo. Držač poslovne / kreditne kartice sa štreberom. Na ovu ludu ideju došao sam kad mi je tvrdi disk na laptopu umro i u osnovi postao beskoristan. Ovdje sam uključio dovršene slike