Мазмұны:
- Жабдықтар
- 1 -қадам: GPS деректерін алу
- 2 -қадам: GPS деректерін радио арқылы жіберу
- 3 -қадам: SD картасы модулінің көмегімен деректерді сақтау
- 4 -қадам: GPS деректерін жіберу және сақтау
- 5 -қадам: Рахмет
Бейне: Smart Buoy [GPS, радио (NRF24) және SD картасының модулі]: 5 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
Бұл Smart Buoy сериясы біздің сөредегі өнімдерді қолдана отырып, теңіз туралы маңызды өлшемдерді қабылдай алатын ғылыми қайық жасауға деген талпынысымызды көрсетеді. Бұл төртеудің екеуі - жаңартылғаныңызға көз жеткізіңіз, егер сізге жобамен тез танысу қажет болса, біздің қысқаша шолуды қараңыз.
1 -бөлім: Толқын мен температураны өлшеу
Бұл оқулықта біз сізге GPS деректерін алуды, оны SD картасына сақтауды және радио арқылы бір жерге жіберуді көрсетеміз.
Біз мұхиттың қайықта орналасқанын біле алу үшін осылай жасадық. Радио біз оны қашықтан көре алатынымызды білдіреді, ал SD картасы кездейсоқ бірдеңе бұзылып, адасып кететінін білдіреді, егер біз оны ала алсақ, оны жоспарланбаған экскурсия кезінде жинаған деректерді жүктей аламыз!
Жабдықтар
GPS модулі - Amazon
SD картасы модулі - Amazon
SD картасы - Amazon
2 X радио модульдері (NRF24L01+) - Amazon
2 X Arduino - Амазонка
1 -қадам: 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 деректерін радио арқылы жіберу
Буя теңізде өлшеулер жүргізіп жатыр делік, бірақ біз деректерді аяғымызды суламай немесе жүзгішті жағаға шығармай -ақ көргіміз келеді. Өлшеуді қашықтан алу үшін біз байланыстың екі жағында 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 картасы да бір күндік деректерді оңай сақтай алады.
#қосу
#қосу #қосу #қосу 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 деректерін жіберу және сақтау
5 -қадам: Рахмет
Біздің пошталық тізімге жазылыңыз!
1 -бөлім: Толқын мен температураны өлшеу
2 -бөлім: GPS NRF24 радиосы мен SD картасы
3 -бөлім: Буйға арналған қуатты жоспарлау
4 -бөлім: Буйықты орналастыру
Ұсынылған:
NRF24 телеметрияға арналған екі жақты радио: 9 қадам (суреттермен)
NRF24 телеметрияға арналған екі жақты радио: Сәлеметсіздер ме, балалар, менің атым Педро Кастелани, мен сізге бірінші нұсқаулықты ұсынамын: сізге қажет нәрсенің бәріне ардуиносы бар екі жақты радио құрастыру. Бұл жобада біз жасаймыз. қабылдағыш ретінде де, өткізгіш ретінде де жұмыс істейтін екі бөлек тізбек
TripComputer - GPS саяхат компьютері және сіздің көлігіңіз үшін ауа райы модулі: 11 қадам (суреттермен)
TripComputer - сіздің көлігіңізге арналған GPS саяхат компьютері мен ауа -райы модулі: сіздің сызықта навигациялық компьютер болуы үшін GPS -тің үзіліс модулін және 2 кішкене Digole дисплейін қолданатын таңқурайдың салқын жобасы
Ublox LEA 6h 02 Arduino және Python көмегімен GPS модулі: 4 қадам
Ublox LEA 6h 02 GPS модулі Arduino мен Python көмегімен: Arduino UNO (немесе кез келген басқа Arduino құрылғысы) көмегімен GPS модулінің интерфейсі және ендік пен бойлықты есептеп, Python тілінде жазылған қосымшалар терезесінде көрсетіледі
Arduino Sd картасының ең арзан модулі: 5 қадам
Ең арзан Arduino Sd карталық модулі: Сипаттама: SD карт модулі стандартты SD картасына және одан деректерді тасымалдау үшін қолданылады. Іске қосу Arduino-мен тікелей үйлесімді және оны басқа микроконтроллерлермен де қолдануға болады. Бұл бізге деректерді жинауды және тіркеуді қосуға мүмкіндік береді
Arduino + SD картасының модулі: 5 қадам
Arduino + SD картасының модулі: Сәлем достар YOUTUBE бейнесін қараңыз, бұл сізге жеткілікті. Қосымша ақпарат алу үшін жазылуды ұмытпаңыз https://www.blogger.com/blogger.g?blogID=2433497353797882246#editor/target=post;postID=5655686325161138749;onPu