Мазмуну:
- Жабдуулар
- 1 -кадам: GPS маалыматын алуу
- 2 -кадам: GPS маалыматын радио аркылуу жөнөтүү
- 3 -кадам: SD карта модулун колдонуу менен маалыматтарды сактоо
- 4 -кадам: GPS маалыматын жөнөтүү жана сактоо
- 5 -кадам: рахмат
Video: Smart Buoy [GPS, Radio (NRF24) жана SD Card Module]: 5 кадам (Сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Бул 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 китепканасын колдонобуз. Бул китепканалар баарын супер жөнөкөй кылат. Келгиле, сизди код аркылуу карап көрөлү …
#кошуу
#include // TinyGPS ++ объектиси TinyGPSPlus gps; // SoftwareSerial ss GPS түзмөгүнө сериялык туташуу (4, 3); 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 (); }
(Бул код үчүн видеону https://www.youtube.com/embed/xz1ix76U28E дарегинен караңыз)
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 ("Радиону жөндөө"); // Орнотуу берүүчү радио 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 ("Жөнөтүлө баштады"); } 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 (); } else {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); // Радио кабыл алгычты орнотуу.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 ();}}
(Бул код үчүн видеону https://www.youtube.com/embed/xz1ix76U28E дарегинен караңыз)
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 ("карта инициализацияланган."); FileFile = 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 ("Date:"); 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 -бөлүк: Wave жана Температураны өлчөө
2 -бөлүк: GPS NRF24 радио жана SD карта
3 -бөлүк: Буукка кубаттуулукту пландаштыруу
4 -бөлүк: Буйрукту жайылтуу
Сунушталууда:
Smart Buoy [Жыйынтык]: 8 кадам (Сүрөттөр менен)
Smart Buoy [Жыйынтык]: Биз баарыбыз деңиз жээгин жакшы көрөбүз. Коллектив катары биз майрамдарга, суу спортунан ырахат алуу үчүн же тиричилигибиз үчүн ага агылып келебиз. Бирок жээк толкундардын ырайымында динамикалык аймак болуп саналат. Деңиз деңгээлинин көтөрүлүшү пляждарда жана шамал сыяктуу күчтүү экстремалдык окуяларда чайкалат
Ардуино UNO жана SD-Card менен нымдуулукту жана температураны реалдуу убакытта кантип жаздыруу керек - DHT11 Proteusтагы маалыматтарды каттоочу симуляциясы: 5 кадам
Ардуино UNO жана SD-Card менен нымдуулукту жана температураны реалдуу убакытта кантип жаздыруу керек | DHT11 Data Logger Simulation in Proteus: Киришүү: салам, бул Liono Maker, бул жерде YouTube шилтемеси. Биз Arduino менен креативдүү долбоор түзүп, камтылган системаларда иштейбиз. Дата-Логгер: Маалыматты жазуучу (ошондой эле маалыматтарды жазуучу же маалымат жазгыч)-бул убакыттын өтүшү менен маалыматтарды жазуучу электрондук түзүлүш
WiFi жана IR Remote жана Android колдонмосун колдонуп NodeMCU жана IR алуучу менен 8 релелик көзөмөл: 5 кадам (сүрөттөр менен)
WiFi жана IR Remote жана Android тиркемесин колдонуп NodeMCU жана IR алуучу менен 8 реле көзөмөлү: wifi жана ир алыскы жана андроид колдонмосу аркылуу nodemcu жана IR кабыл алгычты колдонуп 8 реле өчүргүчтөрүн көзөмөлдөө БУЛ ЖЕРДЕ
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: 13 кадам (сүрөттөр менен)
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: Киришүү: Бул Ардуино тактасын, Sensor (DHT11), Windows компьютери жана Processing (бекер жүктөлүүчү) программасын колдонуп, Температураны, Нымдуулукту санариптик жана тилке графасынын формасы, убакытты жана күндү көрсөтүү жана эсептөө убактысын иштетүү
Квадкопторду кантип куруу керек. (NTM 28-30S 800kV 300W жана Arducopter APM 2.6 & 6H GPS 3DR Radio жана FlySky TH9X): 25 кадам (Сүрөттөр менен)
Квадкопторду кантип куруу керек. (NTM 28-30S 800kV 300W жана Arducopter APM 2.6 & 6H GPS 3DR Radio and FlySky TH9X): Бул NTM 28-30S 800kV 300W моторлору жана Arducopter APM 2.6 & Quot аркылуу Quadcopter кантип куруу керектиги боюнча окуу куралы. 6H GPS & 3DR радиосу. Мен ар бир кадамымды көптөгөн сүрөттөр менен түшүндүрүүгө аракет кылдым. Суроолоруңуз же комментарийиңиз болсо, жооп бериңиз