Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Pagkuha ng Data sa GPS
- Hakbang 2: Pagpapadala ng Data ng GPS Sa Pamamagitan ng Radyo
- Hakbang 3: Pag-iimbak ng Data Gamit ang isang SD Card Module
- Hakbang 4: Pagpapadala at Pag-iimbak ng Data ng GPS
- Hakbang 5: Salamat
Video: Smart Buoy [GPS, Radio (NRF24) at isang Module ng SD Card]: 5 Mga Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Ang serye ng Smart Buoy na ito ay nag-chart ng aming (ambisyoso) na pagtatangka na bumuo ng isang pang-agham na buoy na maaaring kumuha ng mga makabuluhang pagsukat tungkol sa dagat gamit ang mga produktong wala sa istante. Ito ang tutorial dalawa sa apat - tiyaking napapanahon ka, at kung kailangan mo ng mabilis na pagpapakilala sa proyekto, tingnan ang aming buod.
Bahagi 1: Paggawa ng mga pagsukat ng alon at temperatura
Sa tutorial na ito, ipinapakita namin sa iyo kung paano makakuha ng data ng GPS, iimbak ito sa isang SD card at ipadala ito sa isang lugar gamit ang radyo.
Ginawa namin ito upang masubaybayan namin ang lokasyon ng aming seaborne na si Buoy. Nangangahulugan ang radyo na maaari natin itong panoorin nang malayuan at nangangahulugan ang SD card na sa walang pagkakataon ay may nasira at pupunta ito sa isang paglibot, maaari nating mai-download ang data na nakolekta nito sa hindi planong iskursiyon nito - kung maari nating makuha ito!
Mga gamit
Module ng GPS - Amazon
Module ng SD card - Amazon
SD card - Amazon
2 X module ng Radyo (NRF24L01 +) - Amazon
2 X Arduino - Amazon
Hakbang 1: Pagkuha ng Data sa GPS
Ang matalinong buoy ay gumagawa ng mga pagsukat ng sensor habang nakaupo ito sa dagat, kabilang ang lokasyon ng GPS at datime. Tingnan ang eskematiko na nagpapakita kung paano namin sine-set up ang circuit. Nakikipag-usap ang module ng GPS sa pamamagitan ng serial connection, kaya ginagamit namin ang serial library ng software ng Arduino pati na rin ang maliit na library ng GPS upang makipag-usap dito. Ginagawa ng mga libraryong ito ang lahat na sobrang simple. Dadalhin ka namin sa code …
# isama
#include // The TinyGPS ++ object TinyGPSPlus gps; // Ang serial connection sa aparato ng GPS na SoftwareSerial ss (4, 3); istruktura ang data Bumuo ng {dobleng latitude; dobleng longitude; unsigned mahabang petsa; matagal na hindi pinirmahan; } gpsData; void setup () {Serial.begin (115200); ss.begin (9600); } void loop () {habang (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo (); printResult (); }}} void getInfo () {if (gps.location.isValid ()) {gpsData.latitude = gps.location.lat (); gpsData.longitude = gps.location.lng (); } iba pa {Serial.println ("Di-wastong lokasyon"); } kung (gps.date.isValid ()) {gpsData.date = gps.date.value (); } iba pa {Serial.println ("Di-wastong petsa"); } kung (gps.time.isValid ()) {gpsData.time = gps.time.value (); } iba pa {Serial.println ("Di-wastong oras"); }} walang bisa printResult () {Serial.print ("Lokasyon:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.longitude, 6); Serial.print ("Petsa:"); Serial.print (gpsData.date); Serial.print ("Oras:"); Serial.print (gpsData.time); Serial.println (); }
(Suriin ang video para sa code na ito sa
Hakbang 2: Pagpapadala ng Data ng GPS Sa Pamamagitan ng Radyo
Ipagpalagay na ang buoy ay nasa dagat na kumukuha ng mga pagsukat, ngunit nais naming makita ang data nang hindi namamasa ang aming mga paa o dinala ang buoy sa pampang. Upang makuha ang mga pagsukat sa malayo, gumagamit kami ng isang module ng radyo na konektado sa isang Arduino sa magkabilang panig ng komunikasyon. Sa hinaharap, papalitan namin ang panig ng tatanggap ng Arduino ng isang raspberry pi. Gumagana ang radyo nang pareho sa parehong mga interface na ito kaya ang pagpapalit ng mga ito sa paglipas ay medyo prangka.
Nakikipag-usap ang module ng radyo gamit ang SPI, na nangangailangan ng ilang higit pang mga koneksyon kaysa sa I2C ngunit talagang madali pa ring gamitin dahil sa NRF24 library. Gamit ang module ng GPS para sa mga sukat ng sensor, ipinapadala namin ang data nito mula sa isang Arduino patungo sa iba pa. Ikonekta namin ang module ng GPS at radyo sa Arduino at sa kabilang panig isang Arduino na may module ng radyo - tingnan ang eskematiko.
Transmitter
# isama
#include #include #include #include TinyGPSPlus gps; SoftwareSerial ss (4, 3); Radyo RF24 (8, 7); // CE, CSN data ng istruktura Bumuo ng {dobleng latitude; dobleng longitude; unsigned mahabang petsa; matagal na hindi pinirmahan; } gpsData; void setup () {Serial.begin (115200); ss.begin (9600); Serial.println ("Pagse-set up ng radyo"); // Setup transmitter 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 ("Simula upang ipadala"); } void loop () {habang (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo (); radio.write (& gpsData, laki ng (gpsData)); }}} void getInfo () {if (gps.location.isValid ()) {gpsData.longitude = gps.location.lng (); gpsData.latitude = gps.location.lat (); } iba pa {gpsData.longitude = 0.0; gpsData.latitude = 0.0; } kung (gps.date.isValid ()) {gpsData.date = gps.date.value (); } iba pa {gpsData.date = 0; } kung (gps.time.isValid ()) {gpsData.time = gps.time.value (); } iba pa {gpsData.time = 0; }}
TANGGAP
# isama
# isama ang # isama ang radio na RF24 (8, 7); // CE, CSN data ng istruktura Bumuo ng {dobleng latitude; dobleng longitude; unsigned mahabang petsa; matagal na hindi pinirmahan; } gpsData; void setup () {Serial.begin (115200); // Setup receiver radio radio.begin (); radio.openReadingPipe (1, 0xF0F0F0F0E1LL); radio.setChannel (0x76); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radyo.startListening (); radio.enableDynamicPayloads (); radio.powerUp (); } void loop () {if (radio.available ()) {radio.read (& gpsData, sizeof (gpsData)); Serial.print ("Lokasyon:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.longitude, 6); Serial.print ("Petsa:"); Serial.print (gpsData.date); Serial.print ("Oras:"); Serial.print (gpsData.time); Serial.println ();}}
(Suriin ang video para sa code na ito sa
Hakbang 3: Pag-iimbak ng Data Gamit ang isang SD Card Module
Ang module ng radyo ay lubos na maaasahan, ngunit kung minsan kailangan mo ng isang plano na maaaring mangyari kung sakaling may isang hiwa ng kuryente sa panig ng tatanggap o kung ang radyo ay lumilipat sa labas ng saklaw. Ang aming plan na contingency ay isang module ng SD card na nagbibigay-daan sa amin upang maiimbak ang data na kinokolekta namin. Ang dami ng nakolektang data ay hindi gaanong kalaki, kaya't kahit isang maliit na SD card ay madaling maiimbak ang halaga ng data sa isang araw.
# isama
#include #include #include TinyGPSPlus gps; SoftwareSerial ss (4, 3); istruktura ang data Bumuo ng {dobleng latitude; dobleng longitude; unsigned mahabang petsa; matagal na hindi pinirmahan; } gpsData; void setup () {Serial.begin (115200); ss.begin (9600); kung (! SD.begin (5)) {Serial.println ("Nabigo ang card, o wala"); bumalik; } Serial.println ("pinasimulan ang card."); File dataFile = SD.open ("gps_data.csv", FILE_WRITE); kung (dataFile) {dataFile.println ("Latitude, Longitude, Date, Time"); dataFile.close (); } iba pa {Serial.println ("nope cannot open file"); }} void loop () {habang (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo (); printResult (); saveInfo (); }}} void getInfo () {if (gps.location.isValid ()) {gpsData.latitude = gps.location.lat (); gpsData.longitude = gps.location.lng (); } iba pa {Serial.println ("Di-wastong lokasyon"); } kung (gps.date.isValid ()) {gpsData.date = gps.date.value (); } iba pa {Serial.println ("Di-wastong petsa"); } kung (gps.time.isValid ()) {gpsData.time = gps.time.value (); } iba pa {Serial.println ("Di-wastong oras"); }} walang bisa printResult () {Serial.print ("Lokasyon:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.longitude, 6); Serial.print ("Petsa:"); Serial.print (gpsData.date); Serial.print ("Oras:"); Serial.print (gpsData.time); Serial.println (); } void saveInfo () {File dataFile = SD.open ("gps_data.csv", FILE_WRITE); kung (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 (); } iba pa {Serial.println ("nope no datafile"); }}
(Pinag-uusapan namin ang code na ito sa video
Hakbang 4: Pagpapadala at Pag-iimbak ng Data ng GPS
Hakbang 5: Salamat
Mag-sign Up sa aming Mail List!
Bahagi 1: Paggawa ng Wave At Pagsukat ng Temperatura
Bahagi 2: GPS NRF24 Radio at SD Card
Bahagi 3: Pag-iiskedyul ng Lakas sa Buoy
Bahagi 4: Pag-deploy ng Buoy
Inirerekumendang:
Smart Buoy [Buod]: 8 Mga Hakbang (na may Mga Larawan)
Smart Buoy [Buod]: Lahat tayo ay mahilig sa tabing dagat. Bilang isang sama-sama, dumarating kami dito para sa mga piyesta opisyal, upang tangkilikin ang mga palakasan sa tubig o upang makamit ang aming kabuhayan. Ngunit ang baybayin ay isang pabago-bagong lugar sa awa ng mga alon. Ang tumataas na antas ng dagat ay bumulwak sa mga beach at malakas na matinding kaganapan tulad ng hurri
Card Scanner para sa isang Trading Card Machine: 13 Hakbang (na may Mga Larawan)
Card Scanner para sa isang Trading Card Machine: Card Scanner para sa isang Trading Card Machine Ang Log ng Pagbabago ay matatagpuan sa huling hakbang. Ipinaliwanag ko ang pangunahing pagganyak ng aking proyekto sa Card Feeder Intro. Ngunit sa madaling sabi, ang aking mga anak at ako ay nagtipon ng maraming halaga ng Mga Trading Card b
Card feeder para sa isang Trading Card Machine: 10 Hakbang (na may Mga Larawan)
Card Feeder para sa isang Trading Card Machine: Card Feeder para sa isang Trading Card Machine Ang Background Noong bata pa ako, nakolekta ko ang tone-toneladang mga trading card, ngunit sa loob ng ilang taon, ang pagkahilig sa pagkolekta ay nabawasan. Pansamantala mayroon akong mga anak at dahan-dahan ngunit tiyak na nagsisimula rin silang makakuha
Card Sorter para sa isang Trading Card Machine (Update 2019-01-10): 12 Mga Hakbang (na may Mga Larawan)
Card Sorter para sa isang Trading Card Machine (Update 2019-01-10): Card Sorter para sa isang Trading Card Machine Ang Makikitang Log ng Palitan ay matatagpuan sa huling hakbang. Ang Background Naipaliwanag ko na ang motibasyon ng aking proyekto sa artikulo ng Card Feeder. Ngunit sa madaling sabi, ang aking mga anak at ako ay nagtipon ng maraming halaga ng Trading Card
Gumawa ng isang IPod Speaker Mula sa isang Hallmark Music Card: 6 Mga Hakbang (na may Mga Larawan)
Gumawa ng isang IPod Speaker Mula sa isang Hallmark Music Card: Nakuha mo ba ang isa sa mga kard para sa iyong kaarawan na nagpe-play ng musika kapag binuksan mo ito? Huwag mong itapon! Sa kaunting tulong mula kay Tony the Tiger, maaari mo itong magamit bilang isang speaker para sa iyong iPod