Mundarija:
- Ta'minotlar
- 1 -qadam: GPS ma'lumotlarini olish
- 2 -qadam: GPS ma'lumotlarini radio orqali yuborish
- 3 -qadam: SD -karta moduli yordamida ma'lumotlarni saqlash
- 4 -qadam: GPS ma'lumotlarini yuborish va saqlash
- 5 -qadam: Rahmat
Video: Aqlli buoy [GPS, radio (NRF24) va SD -karta moduli]: 5 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Bu Smart Buoy seriyasi bizning (shuhratparast) ilmiy mahsulotni yaratishga bo'lgan urinishimizni ko'rsatadi, u dengizdan chiqadigan mahsulotlar yordamida mazmunli o'lchovlarni amalga oshirishi mumkin. Bu to'rtdan ikkitasi - bu yangiliklardan xabardor bo'lishingizga ishonch hosil qiling va agar sizga loyiha bilan tezkor tanishish kerak bo'lsa, bizning xulosamiz bilan tanishing.
1 -qism: To'lqin va haroratni o'lchash
Ushbu qo'llanmada biz sizga GPS ma'lumotlarini qanday olish, SD -kartada saqlash va radio yordamida qayerga yuborish kerakligini ko'rsatamiz.
Biz buni dengizda suzuvchi qayiq qayerda joylashganligini kuzatib borish uchun qildik. Radio shuni anglatadiki, biz uni masofadan turib ko'rishimiz mumkin, SD -karta esa tasodifan biror narsa buzilib, sayrga ketishini bildiradi, agar biz uni rejadan tashqari ekskursiya paytida to'plagan bo'lsak, yuklab olamiz!
Ta'minotlar
GPS moduli - Amazon
SD -karta moduli - Amazon
SD -karta - Amazon
2 ta radio modul (NRF24L01+) - Amazon
2 X Arduino - Amazon
1 -qadam: GPS ma'lumotlarini olish
Aqlli qayiq dengizda o'tirgan joyida sensori o'lchovlarini, shu jumladan GPS joylashuvi va vaqtini o'lchaydi. Biz sxemani qanday o'rnatganimizni ko'rsatadigan sxemaga qarang. GPS moduli ketma -ket ulanish orqali aloqa o'rnatadi, shuning uchun biz Arduino dasturiy seriyali kutubxonasidan va GPS -kutubxonasidan foydalanamiz. Bu kutubxonalar hamma narsani juda oddiy qiladi. Keling, sizni kod orqali ko'rib chiqaylik …
#qo'shing
#include // TinyGPS ++ obyekti TinyGPSPlus gps; // SoftwareSerial ss GPS qurilmasiga ketma -ket ulanish (4, 3); struct dataStruct {ikki kenglik; ikki uzunlik; imzosiz uzoq sana; uzoq vaqt imzolanmagan; } 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 (); } boshqa {Serial.println ("Manzil noto'g'ri"); } agar (gps.date.isValid ()) {gpsData.date = gps.date.value (); } else {Serial.println ("Yaroqsiz sana"); } agar (gps.time.isValid ()) {gpsData.time = gps.time.value (); } else {Serial.println ("Noto'g'ri vaqt"); }} void printResults () {Serial.print ("Manzil:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.longitude, 6); Serial.print ("Sana:"); Serial.print (gpsData.date); Serial.print ("Vaqt:"); Serial.print (gpsData.time); Serial.println (); }
(Bu kod uchun videoni https://www.youtube.com/embed/xz1ix76U28E manzilida ko'ring)
2 -qadam: GPS ma'lumotlarini radio orqali yuborish
Aytaylik, shamshir dengizda o'lchovlarni olib bormoqda, lekin biz oyog'imizni ho'l qilmasdan yoki qayiqni qirg'oqqa olib chiqmasdan turib ma'lumotlarni ko'rishni xohlaymiz. O'lchovlarni masofadan turib olish uchun biz aloqa ikki tomonida Arduino -ga ulangan radio moduldan foydalanamiz. Kelgusida biz qabul qiluvchi tomoni Arduino-ni malina pi bilan almashtiramiz. Radio ikkala interfeys bilan bir xil ishlaydi, shuning uchun ularni almashtirish juda oddiy.
Radio moduli SPI yordamida aloqa o'rnatadi, bu I2C -ga qaraganda bir nechta ulanishni talab qiladi, lekin NRF24 kutubxonasi tufayli hali ham ulardan foydalanish oson. Sensor o'lchovlari uchun GPS moduli yordamida biz uning ma'lumotlarini bir Arduino -dan boshqasiga o'tkazamiz. Biz GPS va radio modulni Arduino -ga, boshqa tomondan esa radio -modulli Arduino -ga ulaymiz - sxemaga qarang.
Transmitter
#qo'shing
#include #include #include #include TinyGPSPlus gps; SoftwareSerial ss (4, 3); RF24 radiosi (8, 7); // Idoralar, CSN strukturasi dataStruct {ikki kenglik; ikki uzunlik; imzosiz uzoq sana; uzoq vaqt imzolanmagan; } gpsData; void setup () {Serial.begin (115200); ss.begin (9600); Serial.println ("Radio sozlanishi"); // radio radio.begin () uzatgichini sozlash. radio.openWritingPipe (0xF0F0F0F0E1LL); radio.setChannel (0x76); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radio.stopListening (); radio.enableDynamicPayloads (); radio.powerUp (); Serial.println ("Yuborish boshlandi"); } 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 (); } boshqa {gpsData.longitude = 0.0; gpsData.latitude = 0.0; } agar (gps.date.isValid ()) {gpsData.date = gps.date.value (); } boshqa {gpsData.date = 0; } agar (gps.time.isValid ()) {gpsData.time = gps.time.value (); } boshqa {gpsData.time = 0; }}
QABUL QILISH
#qo'shing
#include #include RF24 radiosi (8, 7); // Idoralar, CSN strukturasi dataStruct {ikki kenglik; ikki uzunlik; imzosiz uzoq sana; uzoq vaqt imzolanmagan; } gpsData; void setup () {Serial.begin (115200); // radio radio.begin () qabul qilgichini qabul qilgichni sozlash; 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 ("Manzil:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.longitude, 6); Serial.print ("Sana:"); Serial.print (gpsData.date); Serial.print ("Vaqt:"); Serial.print (gpsData.time); Serial.println ();}}
(Bu kod uchun videoni https://www.youtube.com/embed/xz1ix76U28E manzilida ko'ring)
3 -qadam: SD -karta moduli yordamida ma'lumotlarni saqlash
Radio moduli juda ishonchli, lekin ba'zida qabul qiluvchi tomondan elektr uzilishi yoki radio masofadan tashqariga chiqsa, favqulodda vaziyat rejasi kerak bo'ladi. Favqulodda vaziyatlar rejasi - bu biz to'plagan ma'lumotlarni saqlashga imkon beradigan SD -karta moduli. To'plangan ma'lumotlar miqdori unchalik katta emas, shuning uchun hatto kichik SD -karta ham bir kunlik ma'lumotni osongina saqlay oladi.
#qo'shing
#include #include #include TinyGPSPlus gps; SoftwareSerial ss (4, 3); struct dataStruct {ikki kenglik; ikki uzunlik; imzosiz uzoq sana; uzoq vaqt imzolanmagan; } gpsData; void setup () {Serial.begin (115200); ss.begin (9600); if (! SD.begin (5)) {Serial.println ("Karta ishlamay qoldi, yoki mavjud emas"); qaytish; } Serial.println ("karta ishga tushirildi."); Fayl ma'lumotlariFile = SD.open ("gps_data.csv", FILE_WRITE); if (dataFile) {dataFile.println ("Kenglik, uzunlik, sana, vaqt"); dataFile.close (); } else {Serial.println ("yo'q, faylni ochib bo'lmaydi"); }} 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 ("Manzil noto'g'ri"); } agar (gps.date.isValid ()) {gpsData.date = gps.date.value (); } else {Serial.println ("Yaroqsiz sana"); } agar (gps.time.isValid ()) {gpsData.time = gps.time.value (); } else {Serial.println ("Noto'g'ri vaqt"); }} void printResults () {Serial.print ("Manzil:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.longitude, 6); Serial.print ("Sana:"); Serial.print (gpsData.date); Serial.print ("Vaqt:"); 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 ("yo'q fayllar yo'q"); }}
(Biz bu kod orqali https://www.youtube.com/embed/xz1ix76U28E videoda gaplashamiz)
4 -qadam: GPS ma'lumotlarini yuborish va saqlash
5 -qadam: Rahmat
Bizning pochta ro'yxatimizga a'zo bo'ling!
1 -qism: To'lqin va haroratni o'lchash
2 -qism: GPS NRF24 radio va SD -karta
3 -qism: Buoyga quvvatni rejalashtirish
4 -qism: Buoyni joylashtirish
Tavsiya:
Aqlli buoy [Xulosa]: 8 qadam (rasmlar bilan)
Aqlli buoy [Xulosa]: Hammamiz dengiz bo'yini yaxshi ko'ramiz. Kollektiv bo'lib, biz ta'tilga, suv sportidan zavqlanish yoki tirikchilik qilish uchun unga yig'ilamiz. Ammo qirg'oq to'lqinlarning rahm -shafqatidagi dinamik hududdir. Dengiz sathining ko'tarilishi plyajlarda va bo'ron kabi kuchli ekstremal hodisalarda chayqaladi
Arduino boshqaruv rölesi moduli yordamida aqlli uyni qanday qilish kerak - Uyni avtomatlashtirish g'oyalari: 15 qadam (rasmlar bilan)
Arduino boshqaruv rölesi moduli yordamida aqlli uyni qanday qilish kerak | Uyni avtomatlashtirish g'oyalari: Ushbu uyni avtomatlashtirish loyihasida biz 5 ta maishiy texnikani boshqaradigan aqlli uy rölesi modulini loyihalashtiramiz. Bu o'rni modulini Mobil yoki smartfon, IQ masofadan boshqarish pulti yoki TV masofadan boshqarish pulti, Manuel kalit orqali boshqarish mumkin. Bu aqlli estafeta, shuningdek, odamni sezishi mumkin
Aqlli budilnik: Raspberry Pi -dan tayyorlangan aqlli budilnik: 10 qadam (rasmlar bilan)
Aqlli budilnik: Raspberry Pi bilan yasalgan aqlli budilnik: Siz hech qachon aqlli soatni xohlaganmisiz? Agar shunday bo'lsa, bu siz uchun yechim! Men Smart Budilnikni yaratdim, bu soat, siz budilnik vaqtini veb -saytga ko'ra o'zgartirishingiz mumkin. Signal o'chganda, ovoz eshitiladi va ikkita chiroq yonadi
Budilnik bilan DIY aqlli o'lchov (Wi-Fi, ESP8266, Arduino IDE va Adafruit.io bilan): 10 qadam (rasmlar bilan)
Budilnik bilan DIY aqlli o'lchov (Wi-Fi, ESP8266, Arduino IDE va Adafruit.io bilan): Oldingi loyihamda men Wi-Fi bilan aqlli hammom o'lchovini ishlab chiqdim. U foydalanuvchi vaznini o'lchashi, uni mahalliy ko'rsatishi va bulutga yuborishi mumkin. Bu haqda batafsil ma'lumotni quyidagi havola orqali olishingiz mumkin: https: //www.instructables.com/id/Wi-Fi-Smart-Scale-wi
NRF24 Telemetriya uchun ikki tomonlama radio: 9 qadam (rasmlar bilan)
NRF24 Telemetriya uchun ikki tomonlama radio: Salom bolalar, mening ismim Pedro Kastelani va men sizga birinchi ko'rsatma beraman: sizga nima kerak bo'lsa, arduino bilan ikki tomonlama radio qurish. Bu loyihada biz qabul qiluvchi va uzatish vazifasini bajaradigan ikkita alohida davr