Përmbajtje:
- Furnizimet
- Hapi 1: Marrja e të dhënave GPS
- Hapi 2: Dërgimi i të dhënave GPS përmes radios
- Hapi 3: Ruajtja e të dhënave duke përdorur një modul të kartës SD
- Hapi 4: Dërgimi dhe Ruajtja e të Dhënave GPS
- Hapi 5: Faleminderit
Video: Buvo Smart [GPS, Radio (NRF24) dhe një modul SD Card]: 5 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:10
Kjo seri Smart Buoy paraqet përpjekjen tonë (ambicioze) për të ndërtuar një lundrim shkencor që mund të marrë matje kuptimplote për detin duke përdorur produkte jashtë raftit. Ky është mësimi dy nga katër - sigurohuni që jeni të azhurnuar dhe nëse keni nevojë për një prezantim të shpejtë të projektit, shikoni përmbledhjen tonë.
Pjesa 1: Bërja e matjeve të valës dhe temperaturës
Në këtë tutorial, ne ju tregojmë se si të merrni të dhëna GPS, t'i ruani në një kartë SD dhe t'i dërgoni diku duke përdorur radio.
Ne e bëmë këtë në mënyrë që të mund të mbanim gjurmët e vendndodhjes së Varkës sonë të detit. Radio do të thotë që ne mund ta shikojmë atë nga distanca dhe karta SD do të thotë që në rast të rastit diçka prishet dhe shkon për një bredhje, ne mund të shkarkojmë të dhënat që ai mblodhi gjatë ekskursionit të tij të paplanifikuar - nëse ndonjëherë jemi në gjendje t'i marrim!
Furnizimet
Moduli GPS - Amazon
Moduli i kartës SD - Amazon
Kartë SD - Amazon
2 module Radio X (NRF24L01+) - Amazon
2 X Arduino - Amazon
Hapi 1: Marrja e të dhënave GPS
Përdoruesi i zgjuar bën matje të sensorit ndërsa ulet në det, duke përfshirë vendndodhjen GPS dhe kohën e datës. Hidhini një sy skemës që tregon se si e vendosim qarkun. Moduli GPS komunikon përmes lidhjes serike, kështu që ne po përdorim bibliotekën serike të softuerit Arduino, si dhe bibliotekën e vogël GPS për të komunikuar me të. Këto biblioteka e bëjnë gjithçka super të thjeshtë. Le t’ju përcjellim përmes kodit…
#përfshi
#include // Objekti TinyGPS ++ TinyGPSPlus gps; // Lidhja serike me pajisjen GPS SoftwareSerial ss (4, 3); struct dataStruct {gjerësi gjeografike e dyfishtë; gjatësi të dyfishtë; datë e gjatë e pa firmosur; kohë e pa firmosur; } gpsData; void setup () {Serial.begin (115200); ss.filloj (9600); } void loop () {while (ss.suplable ()> 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 ("Vendndodhje e pavlefshme"); } if (gps.date.isValid ()) {gpsData.date = gps.date.value (); } else {Serial.println ("Data e pavlefshme"); } if (gps.time.isValid ()) {gpsData.time = gps.time.value (); } else {Serial.println ("Koha e pavlefshme"); }} void printResults () {Serial.print ("Vendndodhja:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.l gjatësia, 6); Serial.print ("Data:"); Serial.print (gpsData.date); Serial.print ("Koha:"); Serial.print (gpsData.time); Serial.println (); }
(Shikoni videon për këtë kod në
Hapi 2: Dërgimi i të dhënave GPS përmes radios
Supozoni se vozita është në det duke marrë matje, por ne duam t'i shohim të dhënat pa i lagur këmbët tona ose duke e nxjerrë lundrën në breg. Për të marrë matjet në distancë, ne po përdorim një modul radio të lidhur me një Arduino në të dy anët e komunikimit. Në të ardhmen, ne do të zëvendësojmë Arduino nga ana e marrësit me një pi mjedër. Radio punon në mënyrë të ngjashme me të dyja këto ndërfaqe, kështu që ndërrimi i tyre është mjaft i drejtpërdrejtë.
Moduli i radios komunikon duke përdorur SPI, i cili kërkon disa lidhje më shumë se I2C, por është akoma me të vërtetë i lehtë për t'u përdorur për shkak të bibliotekës NRF24. Duke përdorur modulin GPS për matjet e sensorit, ne transmetojmë të dhënat e tij nga një Arduino në tjetrin. Ne do të lidhim modulin GPS dhe radio me Arduino dhe në anën tjetër një Arduino me modulin e radios - hidhini një sy skemës.
Transmetues
#përfshi
#përfshi #përfshi #përfshi #përfshi GPS në TinyGPSPlus; SoftwareSerial ss (4, 3); Radio RF24 (8, 7); // CE, CSN struct dataStruct {gjerësi gjeografike e dyfishtë; gjatësi të dyfishtë; datë e gjatë e pa firmosur; kohë e pa firmosur; } gpsData; void setup () {Serial.begin (115200); ss.filloj (9600); Serial.println ("Konfigurimi i radios"); // Konfiguro transmetuesin radio radio.filloj (); radio.hapurShkrimiPub (0xF0F0F0F0E1LL); radio.setChannel (0x76); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radio.stopDëgjimi (); radio.enableDynamicPayloads (); radio.powerUp (); Serial.println ("Fillimi i dërgimit"); } void loop () {while (ss.suplable ()> 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; }}
PRITES
#përfshi
#përfshijë #përfshijë radion RF24 (8, 7); // CE, CSN struct dataStruct {gjerësi gjeografike e dyfishtë; gjatësi të dyfishtë; datë e gjatë e pa firmosur; kohë e pa firmosur; } gpsData; void setup () {Serial.begin (115200); // Konfiguro marrësin radio radio.filloj (); radio.hapurReadingPipe (1, 0xF0F0F0F0E1LL); radio.setChannel (0x76); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radio.filloDëgjimi (); radio.enableDynamicPayloads (); radio.powerUp (); } void loop () {if (radio.disponueshme ()) {radio.read (& gpsData, sizeof (gpsData)); Serial.print ("Vendndodhja:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.l gjatësia, 6); Serial.print ("Data:"); Serial.print (gpsData.date); Serial.print ("Koha:"); Serial.print (gpsData.time); Serial.println ();}}
(Shikoni videon për këtë kod në
Hapi 3: Ruajtja e të dhënave duke përdorur një modul të kartës SD
Moduli i radios është mjaft i besueshëm, por ndonjëherë keni nevojë për një plan emergjence në rast se ka një ndërprerje të energjisë në anën e marrësit ose nëse radio lëviz jashtë rrezes. Plani ynë i paparashikuar është një modul i kartës SD i cili na lejon të ruajmë të dhënat që mbledhim. Sasia e të dhënave që mblidhen nuk është aq e madhe, kështu që edhe një kartë e vogël SD do të jetë në gjendje të ruajë me lehtësi të dhëna për një ditë.
#përfshi
#include #include #include TinyGPSPlus GPS; SoftwareSerial ss (4, 3); struct dataStruct {gjerësi gjeografike e dyfishtë; gjatësi të dyfishtë; datë e gjatë e pa firmosur; kohë e pa firmosur; } gpsData; void setup () {Serial.begin (115200); ss.filloj (9600); nëse (! SD.filloj (5)) {Serial.println ("Karta dështoi, ose nuk është e pranishme"); kthim; } Serial.println ("karta e inicializuar."); File dataFile = SD.open ("gps_data.csv", FILE_WRITE); if (dataFile) {dataFile.println ("Gjerësia gjeografike, gjatësia, data, ora"); dataFile.close (); } else {Serial.println ("jo nuk mund ta hap skedarin"); }} void loop () {while (ss.suplable ()> 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 ("Vendndodhje e pavlefshme"); } if (gps.date.isValid ()) {gpsData.date = gps.date.value (); } else {Serial.println ("Data e pavlefshme"); } if (gps.time.isValid ()) {gpsData.time = gps.time.value (); } else {Serial.println ("Koha e pavlefshme"); }} void printResults () {Serial.print ("Vendndodhja:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.l gjatësia, 6); Serial.print ("Data:"); Serial.print (gpsData.date); Serial.print ("Koha:"); 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.l gjatësia); dataFile.print (","); dataFile.print (gpsData.date); dataFile.print (","); dataFile.println (gpsData.time); dataFile.close (); } else {Serial.println ("jo nuk ka të dhëna"); }}
(Ne flasim përmes këtij kodi në videon
Hapi 4: Dërgimi dhe Ruajtja e të Dhënave GPS
Hapi 5: Faleminderit
Regjistrohuni në Listën tonë të Postimeve!
Pjesa 1: Bërja e Matjes së Valës dhe Temperaturës
Pjesa 2: Radio NRF24 GPS dhe Kartë SD
Pjesa 3: Planifikimi i energjisë në anije
Pjesa 4: Vendosja e anijes
Recommended:
Buvo e zgjuar [Përmbledhje]: 8 hapa (me fotografi)
Buvo e zgjuar [Përmbledhje]: Ne të gjithë e duam bregdetin. Si kolektiv, ne dyndemi në të për pushime, për të shijuar sportet ujore ose për të siguruar jetesën tonë. Por bregdeti është një zonë dinamike në mëshirën e valëve. Ngritja e nivelit të detit gëlltit plazhet dhe ngjarjet e fuqishme ekstreme si urr
Një makinë për frikësimin e Halloween -it duke përdorur një PIR, një kungull të printuar në 3D dhe një Pranker audio të pajtueshme me Troll Arduino/Bordi praktik i Shakasë.: 5 Hapa
Një makinë për frikësimin e Halloween -it duke përdorur një PIR, një kungull të printuar në 3D dhe Tran Arduino Compatible Audio Pranker/Joke Board praktike .: Bordi Troll i krijuar nga Patrick Thomas Mitchell i EngineeringShock Electronics, dhe u financua plotësisht në Kickstarter jo shumë kohë më parë. Unë mora shpërblimin disa javë më parë për të ndihmuar në shkrimin e disa shembujve të përdorimit dhe ndërtimin e një biblioteke Arduino në një përpjekje
Përzgjedhja e një motori hapës dhe një drejtuesi për një projekt me ekran me hije të automatizuar Arduino: 12 hapa (me fotografi)
Përzgjedhja e një hapi motorik dhe një drejtuesi për një projekt me ekran me hije të automatizuar Arduino: Në këtë Udhëzues, unë do të kaloj hapat që kam ndërmarrë për të zgjedhur një Step Motor dhe Driver për një prototip të projektit Automated Shade Screen. Ekranet me hije janë modelet e njohura dhe të lira të Coolaroo të fiksuara me dorë, dhe unë doja të zëvendësoja t
Ndërtoni një Radio Amatore APRS RX Only IGate Duke përdorur një Raspberry Pi dhe një Rong RTL-SDR në më pak se gjysmë ore: 5 hapa
Ndërtoni një Radio Amatore APRS RX Only IGate Duke përdorur një Raspberry Pi dhe një Rong RTL-SDR në më pak se gjysmë ore: Ju lutemi vini re se kjo është tani mjaft e vjetër, kështu që disa pjesë janë të pasakta dhe të vjetruara. Skedarët që ju nevojiten për të redaktuar kanë ndryshuar. Unë kam azhurnuar lidhjen për t'ju dhënë versionin më të fundit të imazhit (ju lutemi përdorni 7-zip për ta dekompresuar atë), por për instruksion të plotë
Si të ndërtoni një Quadcoptor. (NTM 28-30S 800kV 300W dhe Arducopter APM 2.6 & 6H GPS 3DR Radio dhe FlySky TH9X): 25 hapa (me fotografi)
Si të ndërtoni një Quadcoptor. (NTM 28-30S 800kV 300W dhe Arducopter APM 2.6 & 6H GPS 3DR Radio dhe FlySky TH9X): Ky është një mësim se si të ndërtoni një Quadcopter duke përdorur motorë NTM 28-30S 800kV 300W dhe Arducopter APM 2.6 & GPS 6H & Radio 3DR. Unë jam përpjekur të shpjegoj çdo hap me një numër imazhesh. Nëse keni ndonjë pyetje ose koment ju lutemi përgjigjuni