Мазмұны:

Smart Buoy [GPS, радио (NRF24) және SD картасының модулі]: 5 қадам (суреттермен)
Smart Buoy [GPS, радио (NRF24) және SD картасының модулі]: 5 қадам (суреттермен)

Бейне: Smart Buoy [GPS, радио (NRF24) және SD картасының модулі]: 5 қадам (суреттермен)

Бейне: Smart Buoy [GPS, радио (NRF24) және SD картасының модулі]: 5 қадам (суреттермен)
Бейне: Buoy 2024, Қараша
Anonim
Image
Image

Бұл Smart Buoy сериясы біздің сөредегі өнімдерді қолдана отырып, теңіз туралы маңызды өлшемдерді қабылдай алатын ғылыми қайық жасауға деген талпынысымызды көрсетеді. Бұл төртеудің екеуі - жаңартылғаныңызға көз жеткізіңіз, егер сізге жобамен тез танысу қажет болса, біздің қысқаша шолуды қараңыз.

1 -бөлім: Толқын мен температураны өлшеу

Бұл оқулықта біз сізге GPS деректерін алуды, оны SD картасына сақтауды және радио арқылы бір жерге жіберуді көрсетеміз.

Біз мұхиттың қайықта орналасқанын біле алу үшін осылай жасадық. Радио біз оны қашықтан көре алатынымызды білдіреді, ал SD картасы кездейсоқ бірдеңе бұзылып, адасып кететінін білдіреді, егер біз оны ала алсақ, оны жоспарланбаған экскурсия кезінде жинаған деректерді жүктей аламыз!

Жабдықтар

GPS модулі - Amazon

SD картасы модулі - Amazon

SD картасы - Amazon

2 X радио модульдері (NRF24L01+) - Amazon

2 X Arduino - Амазонка

1 -қадам: GPS деректерін алу

GPS деректерін радио арқылы жіберу
GPS деректерін радио арқылы жіберу

Ақылды жүзгіш теңізде орналасқан кезде сенсорлық өлшеу жүргізеді, оның ішінде GPS орналасқан жері мен уақытты қосады. Біз схеманы қалай орнатқанымызды көрсететін схеманы қараңыз. GPS модулі сериялық байланыс арқылы байланысады, сондықтан біз Arduino бағдарламалық жасақтамалық кітапханасын, сондай -ақ шағын GPS кітапханасын онымен байланысу үшін қолданамыз. Бұл кітапханалар бәрін өте қарапайым етеді. Сізге кодты көрсетуге рұқсат етіңіз …

#қосу

#қосу // TinyGPS ++ объектісі TinyGPSPlus gps; // SoftwareSerial ss (4, 3) GPS құрылғысына сериялық қосылу; struct dataStruct {қос ендік; қос бойлық; қол қойылмаған ұзақ күн; ұзақ уақыт қол қойылмаған; } gpsData; void setup () {Serial.begin (115200); ss.begin (9600); } void loop () {while (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo (); printResults (); }}} жарамсыз getInfo () {if (gps.location.isValid ()) {gpsData.latitude = gps.location.lat (); gpsData.longitude = gps.location.lng (); } else {Serial.println («Жарамсыз орын»); } if (gps.date.isValid ()) {gpsData.date = gps.date.value (); } else {Serial.println («Жарамсыз күн»); } if (gps.time.isValid ()) {gpsData.time = gps.time.value (); } else {Serial.println («Жарамсыз уақыт»); }} void printResults () {Serial.print («Орналасқан жері:»); Serial.print (gpsData.latitude, 6); Serial.print («,»); Serial.print (gpsData.longitude, 6); Serial.print («Күні:»); Serial.print (gpsData.date); Serial.print («Уақыт:»); Serial.print (gpsData.time); Serial.println (); }

(Бұл код үшін бейнені қараңыз

2 -қадам: GPS деректерін радио арқылы жіберу

GPS деректерін радио арқылы жіберу
GPS деректерін радио арқылы жіберу

Буя теңізде өлшеулер жүргізіп жатыр делік, бірақ біз деректерді аяғымызды суламай немесе жүзгішті жағаға шығармай -ақ көргіміз келеді. Өлшеуді қашықтан алу үшін біз байланыстың екі жағында Arduino -ға қосылған радио модульді қолданамыз. Болашақта біз қабылдағыш Arduino-ны таңқурай пи-мен алмастырамыз. Радио екі интерфейспен бірдей жұмыс істейді, сондықтан оларды ауыстыру өте қарапайым.

Радио модуль SPI көмегімен байланысады, ол I2C -ге қарағанда бірнеше қосылымды қажет етеді, бірақ NRF24 кітапханасының арқасында қолдануға оңай. Сенсорды өлшеу үшін GPS модулін қолдана отырып, біз оның деректерін бір Arduino -дан екіншісіне жібереміз. Біз GPS пен радио модульді Arduino -ға, ал екінші жағынан радио модулі бар Arduino -ға қосамыз - схеманы қараңыз.

Таратқыш

#қосу

#қосу #қосу #қосу #қосу TinyGPSPlus gps; SoftwareSerial ss (4, 3); RF24 радиосы (8, 7); // CE, CSN struct dataStruct {қос ендік; қос бойлық; қол қойылмаған ұзақ күн; ұзақ уақыт қол қойылмаған; } gpsData; void setup () {Serial.begin (115200); ss.begin (9600); Serial.println («Радионы орнату»); // Радио хабар таратқышты реттеу.begin (); radio.openWritingPipe (0xF0F0F0F0E1LL); radio.setChannel (0x76); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radio.stopListening (); radio.enableDynamicPayloads (); radio.powerUp (); Serial.println («Жіберілуде»); } void loop () {while (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo (); radio.write (& gpsData, sizeof (gpsData)); }}} жарамсыз getInfo () {if (gps.location.isValid ()) {gpsData.longitude = gps.location.lng (); gpsData.latitude = gps.location.lat (); } басқа {gpsData.longitude = 0.0; gpsData.latitude = 0.0; } if (gps.date.isValid ()) {gpsData.date = gps.date.value (); } басқа {gpsData.date = 0; } if (gps.time.isValid ()) {gpsData.time = gps.time.value (); } басқа {gpsData.time = 0; }}

ҚАБЫЛДАУШЫ

#қосу

#қосу #қосу RF24 радиосы (8, 7); // CE, CSN struct dataStruct {қос ендік; қос бойлық; қол қойылмаған ұзақ күн; ұзақ уақыт қол қойылмаған; } gpsData; void setup () {Serial.begin (115200); // Радио қабылдағышты орнату 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 («Орналасқан жері:»); Serial.print (gpsData.latitude, 6); Serial.print («,»); Serial.print (gpsData.longitude, 6); Serial.print («Күні:»); Serial.print (gpsData.date); Serial.print («Уақыт:»); Serial.print (gpsData.time); Serial.println ();}}

(Бұл код үшін бейнені қараңыз

3 -қадам: SD картасы модулінің көмегімен деректерді сақтау

SD картасы модулінің көмегімен деректерді сақтау
SD картасы модулінің көмегімен деректерді сақтау

Радио модуль өте сенімді, бірақ кейде қабылдағыш жағынан электр қуаты өшіп қалса немесе радионың ауқымынан шығып кетсе, сізге апаттық жоспар қажет болады. Біздің төтенше жағдайлар жоспары - бұл SD картасы модулі, ол бізге жиналған деректерді сақтауға мүмкіндік береді. Жиналған деректердің саны онша көп емес, сондықтан тіпті шағын SD картасы да бір күндік деректерді оңай сақтай алады.

#қосу

#қосу #қосу #қосу TinyGPSPlus gps; SoftwareSerial ss (4, 3); struct dataStruct {қос ендік; қос бойлық; қол қойылмаған ұзақ күн; ұзақ уақыт қол қойылмаған; } gpsData; void setup () {Serial.begin (115200); ss.begin (9600); if (! SD.begin (5)) {Serial.println («Карта істен шыққан, немесе жоқ»); қайтару; } Serial.println («карта инициализацияланған.»); Файл dataFile = SD.open («gps_data.csv», FILE_WRITE); if (dataFile) {dataFile.println («Ендік, бойлық, күн, уақыт»); dataFile.close (); } else {Serial.println («жоқ файлды аша алмайды»); }} void loop () {while (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo (); printResults (); saveInfo (); }}} жарамсыз getInfo () {if (gps.location.isValid ()) {gpsData.latitude = gps.location.lat (); gpsData.longitude = gps.location.lng (); } else {Serial.println («Жарамсыз орын»); } if (gps.date.isValid ()) {gpsData.date = gps.date.value (); } else {Serial.println («Жарамсыз күн»); } if (gps.time.isValid ()) {gpsData.time = gps.time.value (); } else {Serial.println («Жарамсыз уақыт»); }} void printResults () {Serial.print («Орналасқан жері:»); Serial.print (gpsData.latitude, 6); Serial.print («,»); Serial.print (gpsData.longitude, 6); Serial.print («Күні:»); Serial.print (gpsData.date); Serial.print («Уақыт:»); 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 («дерекқор жоқ»); }}

(Біз https://www.youtube.com/embed/xz1ix76U28E бейнеде осы код арқылы сөйлесеміз)

4 -қадам: GPS деректерін жіберу және сақтау

GPS деректерін жіберу және сақтау
GPS деректерін жіберу және сақтау
GPS деректерін жіберу және сақтау
GPS деректерін жіберу және сақтау

5 -қадам: Рахмет

Рахмет!
Рахмет!

Біздің пошталық тізімге жазылыңыз!

1 -бөлім: Толқын мен температураны өлшеу

2 -бөлім: GPS NRF24 радиосы мен SD картасы

3 -бөлім: Буйға арналған қуатты жоспарлау

4 -бөлім: Буйықты орналастыру

Ұсынылған: