Obsah:
- Zásoby
- Krok 1: Získání dat GPS
- Krok 2: Odesílání dat GPS prostřednictvím rádia
- Krok 3: Ukládání dat pomocí modulu SD karty
- Krok 4: Odesílání a ukládání dat GPS
- Krok 5: Díky
Video: Smart Buoy [GPS, rádio (NRF24) a modul karty SD]: 5 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:18
Tato řada Smart Buoy mapuje náš (ambiciózní) pokus o vybudování vědecké bóje, která může provádět smysluplná měření o moři pomocí běžných produktů. Toto je tutoriál dva ze čtyř - ujistěte se, že jste aktuální, a pokud potřebujete rychlý úvod do projektu, podívejte se na naše shrnutí.
Část 1: Provádění měření vln a teploty
V tomto tutoriálu vám ukážeme, jak získat data GPS, uložit je na kartu SD a odeslat je někam pomocí rádia.
Udělali jsme to, abychom mohli sledovat polohu naší námořní bóje. Rádio znamená, že jej můžeme sledovat na dálku a SD karta znamená, že když se něco stane, že se něco pokazí a jde to na procházku, můžeme si stáhnout data, která shromáždila během své neplánované exkurze - pokud se nám ji někdy podaří získat!
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ískání dat GPS
Chytrá bóje provádí měření senzorů, když sedí v moři, včetně polohy GPS a data a času. Podívejte se na schéma, které ukazuje, jak jsme nastavili obvod. Modul GPS komunikuje prostřednictvím sériového připojení, takže ke komunikaci používáme sériovou knihovnu softwaru Arduino a malou knihovnu GPS. Díky těmto knihovnám je vše velmi jednoduché. Provedeme vás kódem…
#zahrnout
#include // Objekt TinyGPS ++ TinyGPSPlus gps; // Sériové připojení k zařízení GPS SoftwareSerial ss (4, 3); struct dataStruct {dvojitá šířka; dvojitá délka; nepodepsané dlouhé datum; dlouho bez znaménka; } gpsData; neplatné nastavení () {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 ("Neplatné umístění"); } if (gps.date.isValid ()) {gpsData.date = gps.date.value (); } else {Serial.println ("Neplatné datum"); } if (gps.time.isValid ()) {gpsData.time = gps.time.value (); } else {Serial.println ("Neplatný čas"); }} void printResults () {Serial.print ("Umístění:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.longitude, 6); Serial.print („Datum:“); Serial.print (gpsData.date); Serial.print ("Čas:"); Serial.print (gpsData.time); Serial.println (); }
(Podívejte se na video s tímto kódem na
Krok 2: Odesílání dat GPS prostřednictvím rádia
Předpokládejme, že bóje je na moři a provádí měření, ale chceme vidět data, aniž bychom si namočili nohy nebo vynesli bóji na břeh. Abychom získali měření na dálku, používáme rádiový modul připojený k Arduinu na obou stranách komunikace. V budoucnu nahradíme Arduino na straně přijímače malinovým pi. Rádio funguje podobně s oběma těmito rozhraními, takže jejich přepnutí je docela jednoduché.
Rádiový modul komunikuje pomocí SPI, který vyžaduje několik připojení navíc než I2C, ale díky knihovně NRF24 je stále velmi snadno použitelný. Pomocí modulu GPS pro měření senzorů přenášíme jeho data z jednoho Arduina do druhého. Připojíme modul GPS a rádio k Arduinu a na druhé straně Arduino s modulem rádia - podívejte se na schéma.
Vysílač
#zahrnout
#include #include #include #include TinyGPSPlus gps; SoftwareSerial ss (4, 3); Rádio RF24 (8, 7); // CE, CSN struct dataStruct {dvojitá šířka; dvojitá délka; nepodepsané dlouhé datum; dlouho bez znaménka; } gpsData; neplatné nastavení () {Serial.begin (115200); ss.begin (9600); Serial.println ("Nastavení rádia"); // Nastavení vysílače 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 ("Zahájení odesílání"); } 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; }}
PŘIJÍMAČ
#zahrnout
#include #include RF24 radio (8, 7); // CE, CSN struct dataStruct {dvojitá šířka; dvojitá délka; nepodepsané dlouhé datum; dlouho bez znaménka; } gpsData; neplatné nastavení () {Serial.begin (115200); // Nastavení přijímače 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 („Umístění:“); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.longitude, 6); Serial.print („Datum:“); Serial.print (gpsData.date); Serial.print ("Čas:"); Serial.print (gpsData.time); Serial.println ();}}
(Podívejte se na video s tímto kódem na
Krok 3: Ukládání dat pomocí modulu SD karty
Rádiový modul je docela spolehlivý, ale někdy potřebujete pohotovostní plán pro případ výpadku proudu na straně přijímače nebo pokud se rádio pohybuje mimo dosah. Náš pohotovostní plán je modul karty SD, který nám umožňuje ukládat data, která shromažďujeme. Shromážděné množství dat není tak velké, takže i malá karta SD bude schopna snadno uložit data za celý den.
#zahrnout
#include #include #include TinyGPSPlus gps; SoftwareSerial ss (4, 3); struct dataStruct {dvojitá šířka; dvojitá délka; nepodepsané dlouhé datum; dlouho bez znaménka; } gpsData; neplatné nastavení () {Serial.begin (115200); ss.begin (9600); if (! SD.begin (5)) {Serial.println ("Karta selhala nebo není přítomna"); vrátit se; } Serial.println ("karta inicializována."); Soubor dataFile = SD.open ("gps_data.csv", FILE_WRITE); if (dataFile) {dataFile.println ("Latitude, Longitude, Date, Time"); dataFile.close (); } else {Serial.println ("ne, nelze otevřít soubor"); }} 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 ("Neplatné umístění"); } if (gps.date.isValid ()) {gpsData.date = gps.date.value (); } else {Serial.println ("Neplatné datum"); } if (gps.time.isValid ()) {gpsData.time = gps.time.value (); } else {Serial.println ("Neplatný čas"); }} void printResults () {Serial.print ("Umístění:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.longitude, 6); Serial.print („Datum:“); Serial.print (gpsData.date); Serial.print ("Čas:"); Serial.print (gpsData.time); Serial.println (); } neplatné 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 no datafile"); }}
(Tento kód si promluvíme ve videu
Krok 4: Odesílání a ukládání dat GPS
Krok 5: Díky
Zaregistrujte se do našeho seznamu adresátů!
Část 1: Měření vln a teploty
Část 2: Rádio GPS NRF24 a karta SD
Část 3: Plánování napájení bóje
Část 4: Nasazení bóje
Doporučuje:
Rozsviťte LED karty: 8 kroků (s obrázky)
Rozsviťte LED karty: Ahoj, je to opět aardvark pro další instruktáž. Toto je levnější způsob, jak vytvořit rozsvícenou kartu, než některé jiné metody online. Myslím, že tento projekt je zábavný způsob, jak naučit dospívající dívky a chlapce o elektřině. Doufám, že se vám bude líbit a bude
Modul karty SD s Arduino: Jak číst/zapisovat data: 14 kroků
Modul karty SD s Arduinem: Jak číst/zapisovat data: Přehled Ukládání dat je jednou z nejdůležitějších součástí každého projektu. Existuje několik způsobů, jak ukládat data podle datového typu a velikosti. Karty SD a micro SD jsou jedny z nejpraktičtějších mezi úložnými zařízeními, která se používají v
Obousměrné rádio NRF24 pro telemetrii: 9 kroků (s obrázky)
NRF24 Obousměrné rádio pro telemetrii: Ahoj lidi, jmenuji se Pedro Castelani a přináším vám můj první návod: vybudování obousměrného rádia s arduinem pro cokoli, pro co to potřebujete. V tomto projektu vyrobíme dva samostatné obvody, které budou fungovat jako přijímač i vysílač
Modul karty Arduino + SD: 5 kroků
Modul karty Arduino + SD: Dobrý den, přátelé, podívejte se na video YOUTUBE, stačí vám to. A nezapomeňte se přihlásit k odběru Další informace naleznete na mém blogu https://www.blogger.com/blogger.g?blogID=2433497353797882246#editor/target=post;postID=5655686325161138749;onPu
Modul karty SD s ESP8266: 6 kroků
Modul karty SD s ESP8266: V této sestavě máme kartu SD připojenou k ESP8266. Vložili jsme DHT22, který měří teplotu a vlhkost a odesílá tyto informace na kartu SD. Na okruhu ukazuje vlhkost 43,40 a teplotu 26,80. Pokaždé, když jsem