İçindekiler:

Akıllı Şamandıra [GPS, Radyo (NRF24) ve SD Kart Modülü]: 5 Adım (Resimlerle)
Akıllı Şamandıra [GPS, Radyo (NRF24) ve SD Kart Modülü]: 5 Adım (Resimlerle)

Video: Akıllı Şamandıra [GPS, Radyo (NRF24) ve SD Kart Modülü]: 5 Adım (Resimlerle)

Video: Akıllı Şamandıra [GPS, Radyo (NRF24) ve SD Kart Modülü]: 5 Adım (Resimlerle)
Video: Ünal turan Azad yılmaz Karşıma çıkın dedi 2024, Kasım
Anonim
Image
Image

Bu Akıllı Şamandıra serisi, kullanıma hazır ürünler kullanarak deniz hakkında anlamlı ölçümler yapabilen bilimsel bir şamandıra inşa etme (iddialı) girişimimizi gösteriyor. Bu, dörtte iki öğreticidir - güncel olduğunuzdan emin olun ve projeye hızlı bir girişe ihtiyacınız varsa, özetimize göz atın.

Bölüm 1: Dalga ve sıcaklık ölçümlerinin yapılması

Bu eğitimde size GPS verilerini nasıl alacağınızı, bir SD kartta nasıl saklayacağınızı ve radyo kullanarak bir yere nasıl göndereceğinizi gösteriyoruz.

Bunu, denizdeki Şamandıramızın yerini takip edebilmek için yaptık. Radyo, uzaktan izleyebileceğimiz anlamına gelir ve SD kart, bir ihtimal bir şey bozulursa ve bir gezintiye çıkarsa, planlanmamış gezisi sırasında topladığı verileri indirebileceğimiz anlamına gelir - eğer geri alabilirsek!

Gereçler

GPS modülü - Amazon

SD kart modülü - Amazon

SD kart - Amazon

2 X Radyo modülü (NRF24L01+) - Amazon

2 X Arduino - Amazon

Adım 1: GPS Verilerini Alma

GPS Verilerini Radyo Üzerinden Gönderme
GPS Verilerini Radyo Üzerinden Gönderme

Akıllı şamandıra, denizde otururken GPS konumu ve tarih saati de dahil olmak üzere sensör ölçümleri yapar. Devreyi nasıl kurduğumuzu gösteren şemaya bir göz atın. GPS modülü seri bağlantı yoluyla iletişim kurar, bu nedenle onunla iletişim kurmak için Arduino yazılım seri kitaplığının yanı sıra küçük GPS kitaplığını da kullanıyoruz. Bu kütüphaneler her şeyi süper basit hale getirir. Sizi kodun üzerinden geçirelim…

#Dahil etmek

#include // TinyGPS++ nesnesi TinyGPSPlus gps; // GPS cihazına seri bağlantı SoftwareSerial ss(4, 3); struct dataStruct{ çift enlem; çift boylam; imzasız uzun tarih; imzasız uzun süre; }gpsData; geçersiz kurulum(){ Serial.begin(115200); ss.başla(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(); } else{ Serial.println("Geçersiz konum"); } if (gps.date.isValid()){ gpsData.date = gps.date.value(); } else{ Serial.println("Geçersiz tarih"); } if (gps.time.isValid()){ gpsData.time = gps.time.value(); } else{ Serial.println("Geçersiz zaman"); } } void printResults(){ Serial.print("Yer: "); Serial.print(gpsData.latitude, 6); Seri.print(", "); Serial.print(gpsData.boylam, 6); Serial.print(" Tarih: "); Serial.print(gpsData.date); Serial.print(" Zaman: "); Serial.print(gpsData.time); Seri.println(); }

(Bu kod için https://www.youtube.com/embed/xz1ix76U28E adresindeki videoyu izleyin)

2. Adım: GPS Verilerini Radyo Üzerinden Gönderme

GPS Verilerini Radyo Üzerinden Gönderme
GPS Verilerini Radyo Üzerinden Gönderme

Diyelim ki şamandıra denizde ölçüm yapıyor ama biz ayaklarımızı ıslatmadan veya şamandırayı karaya çıkarmadan verileri görmek istiyoruz. Ölçümleri uzaktan almak için, iletişimin her iki tarafında bir Arduino'ya bağlı bir radyo modülü kullanıyoruz. Gelecekte, alıcı tarafı Arduino'yu bir ahududu pi ile değiştireceğiz. Telsiz, bu iki arabirimle de benzer şekilde çalışır, dolayısıyla bunları değiştirmek oldukça basittir.

Telsiz modülü, I2C'den birkaç bağlantı daha gerektiren ancak NRF24 kitaplığı nedeniyle kullanımı gerçekten çok kolay olan SPI kullanarak iletişim kurar. Sensör ölçümleri için GPS modülünü kullanarak verilerini bir Arduino'dan diğerine aktarıyoruz. GPS ve radyo modülünü Arduino'ya ve diğer tarafta radyo modülü ile bir Arduino'ya bağlayacağız - şemaya bir göz atın.

verici

#Dahil etmek

#include #include #include #include TinyGPSPlus gps; YazılımSeri ss(4, 3); RF24 telsiz(8, 7); // CE, CSN struct dataStruct{ double latitude; çift boylam; imzasız uzun tarih; imzasız uzun süre; }gpsData; geçersiz kurulum() { Serial.begin(115200); ss.başla(9600); Serial.println("Radyo kurulumu"); // verici radyo radyosunu kurun.begin(); radio.openWritingPipe(0xF0F0F0F0E1LL); radio.setChannel(0x76); radio.setPALevel(RF24_PA_MAX); radio.setDataRate(RF24_250KBPS); radyo.stopListening(); radio.enableDynamicPayloads(); radyo.powerUp(); Serial.println("Gönderilmeye Başlanıyor"); } 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(); } başka{ gpsData.longitude = 0.0; gpsData.latitude = 0.0; } if (gps.date.isValid()){ gpsData.date = gps.date.value(); } başka{ gpsData.date = 0; } if (gps.time.isValid()){ gpsData.time = gps.time.value(); } başka{ gpsData.time = 0; } }

ALICI

#Dahil etmek

#include #include RF24 radyo (8, 7); // CE, CSN struct dataStruct{ double latitude; çift boylam; imzasız uzun tarih; imzasız uzun süre; }gpsData; geçersiz kurulum() { Serial.begin(115200); // Alıcı radyo radyosunu kurun.begin(); radio.openReadingPipe(1, 0xF0F0F0F0E1LL); radio.setChannel(0x76); radio.setPALevel(RF24_PA_MAX); radio.setDataRate(RF24_250KBPS); radio.startListening(); radio.enableDynamicPayloads(); radyo.powerUp(); } void loop() { if (radio.available()) { radio.read(&gpsData, sizeof(gpsData)); Serial.print("Yer: "); Serial.print(gpsData.latitude, 6); Seri.print(", "); Serial.print(gpsData.boylam, 6); Serial.print(" Tarih: "); Serial.print(gpsData.date); Serial.print(" Zaman: "); Serial.print(gpsData.time); Seri.println();} }

(Bu kod için https://www.youtube.com/embed/xz1ix76U28E adresindeki videoyu izleyin)

3. Adım: Bir SD Kart Modülü Kullanarak Verilerin Saklanması

SD Kart Modülü Kullanarak Verilerin Saklanması
SD Kart Modülü Kullanarak Verilerin Saklanması

Telsiz modülü oldukça güvenilirdir, ancak bazen alıcı tarafında bir elektrik kesintisi olması veya telsizin menzil dışına çıkması durumunda bir acil durum planına ihtiyaç duyarsınız. Acil durum planımız, topladığımız verileri saklamamızı sağlayan bir SD kart modülüdür. Toplanan veri miktarı o kadar büyük değil, bu nedenle küçük bir SD kart bile bir günlük veriyi kolayca depolayabilir.

#Dahil etmek

#include #include #include TinyGPSPlus gps; YazılımSeri ss(4, 3); struct dataStruct{ çift enlem; çift boylam; imzasız uzun tarih; imzasız uzun süre; }gpsData; geçersiz kurulum() { Serial.begin(115200); ss.başla(9600); if (!SD.begin(5)) { Serial.println("Kart başarısız veya mevcut değil"); dönüş; } Serial.println("kart başlatıldı."); Dosya dataFile = SD.open("gps_data.csv", FILE_WRITE); if (dataFile) { dataFile.println("Enlem, Boylam, Tarih, Saat"); dataFile.close(); } else{ Serial.println("hayır dosyayı açamıyor"); } } 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("Geçersiz konum"); } if (gps.date.isValid()){ gpsData.date = gps.date.value(); } else{ Serial.println("Geçersiz tarih"); } if (gps.time.isValid()){ gpsData.time = gps.time.value(); } else{ Serial.println("Geçersiz zaman"); } } void printResults(){ Serial.print("Yer: "); Serial.print(gpsData.latitude, 6); Seri.print(", "); Serial.print(gpsData.boylam, 6); Serial.print(" Tarih: "); Serial.print(gpsData.date); Serial.print(" Zaman: "); Serial.print(gpsData.time); Seri.println(); } void saveInfo(){ Dosya dataFile = SD.open("gps_data.csv", FILE_WRITE); if (dataFile) { dataFile.print(gpsData.latitude); dataFile.print(", "); dataFile.print(gpsData.boylam); dataFile.print(", "); dataFile.print(gpsData.date); dataFile.print(", "); dataFile.println(gpsData.time); dataFile.close(); } else{ Serial.println("nope no datafile"); } }

(https://www.youtube.com/embed/xz1ix76U28E videoda bu kodu konuşuyoruz)

Adım 4: GPS Verilerini Gönderme ve Saklama

GPS Verilerini Gönderme ve Saklama
GPS Verilerini Gönderme ve Saklama
GPS Verilerini Gönderme ve Saklama
GPS Verilerini Gönderme ve Saklama

Adım 5: Teşekkürler

Teşekkürler!
Teşekkürler!

Mail Listemize Kaydolun!

Bölüm 1: Dalga ve Sıcaklık Ölçümü Yapmak

Bölüm 2: GPS NRF24 Radyo ve SD Kartı

Bölüm 3: Şamandıra Gücünün Programlanması

Bölüm 4: Şamandırayı Yerleştirme

Önerilen: