Daftar Isi:

Smart Buoy [GPS, Radio (NRF24) dan Modul Kartu SD]: 5 Langkah (dengan Gambar)
Smart Buoy [GPS, Radio (NRF24) dan Modul Kartu SD]: 5 Langkah (dengan Gambar)

Video: Smart Buoy [GPS, Radio (NRF24) dan Modul Kartu SD]: 5 Langkah (dengan Gambar)

Video: Smart Buoy [GPS, Radio (NRF24) dan Modul Kartu SD]: 5 Langkah (dengan Gambar)
Video: Smart Buoy Final Project 2024, Juli
Anonim
Image
Image

Seri Pelampung Cerdas ini memetakan upaya (ambisius) kami untuk membangun pelampung ilmiah yang dapat melakukan pengukuran bermakna tentang laut menggunakan produk yang tersedia. Ini adalah tutorial dua dari empat - pastikan Anda mengetahui informasi terbaru, dan jika Anda memerlukan pengenalan proyek yang cepat, lihat ringkasan kami.

Bagian 1: Membuat pengukuran gelombang dan suhu

Dalam tutorial ini, kami menunjukkan cara mendapatkan data GPS, menyimpannya di kartu SD dan mengirimkannya ke suatu tempat menggunakan radio.

Kami melakukan ini agar kami dapat melacak lokasi Pelampung kami di laut. Radio berarti bahwa kita dapat menontonnya dari jarak jauh dan kartu SD berarti bahwa jika ada sesuatu yang rusak dan berjalan-jalan, kita dapat mengunduh data yang dikumpulkan selama perjalanan yang tidak direncanakan - jika kita dapat mengambilnya kembali!

Perlengkapan

Modul GPS - Amazon

Modul kartu SD - Amazon

Kartu SD - Amazon

2 X modul Radio (NRF24L01+) - Amazon

2 X Arduino - Amazon

Langkah 1: Mendapatkan Data GPS

Mengirim Data GPS Melalui Radio
Mengirim Data GPS Melalui Radio

Pelampung pintar membuat pengukuran sensor saat berada di laut, termasuk lokasi GPS dan waktu. Lihatlah skema yang menunjukkan bagaimana kami mengatur sirkuit. Modul GPS berkomunikasi melalui koneksi serial, jadi kami menggunakan perpustakaan serial perangkat lunak Arduino serta perpustakaan GPS kecil untuk berkomunikasi dengannya. Pustaka ini membuat semuanya menjadi sangat sederhana. Mari kita membawa Anda melalui kode …

#termasuk

#include // Objek TinyGPS++ TinyGPSplus gps; // Koneksi serial ke perangkat GPS SoftwareSerial ss(4, 3); struct dataStruct{ garis lintang ganda; bujur ganda; tanggal panjang yang tidak ditandatangani; lama tidak ditandatangani; }gpsData; void setup(){ Serial.begin(115200); ss.begin(9600); } void loop(){ while (ss.available() > 0){ if (gps.encode(ss.read())){ getInfo(); printResult(); } } } void getInfo(){ if (gps.location.isValid()){ gpsData.latitude = gps.location.lat(); gpsData.longitude = gps.location.lng(); } else{ Serial.println("Lokasi salah"); } if (gps.date.isValid()){ gpsData.date = gps.date.value(); } else{ Serial.println("Tanggal salah"); } if (gps.time.isValid()){ gpsData.time = gps.time.value(); } else{ Serial.println("Waktu tidak valid"); } } void printResults(){ Serial.print("Lokasi: "); Serial.print(gpsData.latitude, 6); Serial.print(", "); Serial.print(gpsData.longitude, 6); Serial.print("Tanggal: "); Serial.print(gpsData.date); Serial.print("Waktu: "); Serial.print(gpsData.time); Serial.println(); }

(Lihat video untuk kode ini di

Langkah 2: Mengirim Data GPS Melalui Radio

Mengirim Data GPS Melalui Radio
Mengirim Data GPS Melalui Radio

Misalkan pelampung di laut melakukan pengukuran, tetapi kami ingin melihat datanya tanpa membuat kaki kami basah atau membawa pelampung ke darat. Untuk mendapatkan pengukuran dari jarak jauh, kami menggunakan modul radio yang terhubung ke Arduino di kedua sisi komunikasi. Di masa depan, kami akan mengganti Arduino sisi penerima dengan raspberry pi. Radio bekerja sama dengan kedua antarmuka ini sehingga menukarnya cukup mudah.

Modul radio berkomunikasi menggunakan SPI, yang memerlukan beberapa koneksi lebih banyak daripada I2C tetapi masih sangat mudah digunakan karena perpustakaan NRF24. Menggunakan modul GPS untuk pengukuran sensor, kami mengirimkan datanya dari satu Arduino ke Arduino lainnya. Kami akan menghubungkan modul GPS dan radio ke Arduino dan di sisi lain Arduino dengan modul radio - lihat skema.

Pemancar

#termasuk

#sertakan #sertakan #sertakan #sertakan gps TinyGPSPlus; SoftwareSerial ss(4, 3); radio RF24 (8, 7); // CE, CSN struct dataStruct{ garis lintang ganda; bujur ganda; tanggal panjang yang tidak ditandatangani; lama tidak ditandatangani; }gpsData; void setup() { Serial.begin(115200); ss.begin(9600); Serial.println("Menyiapkan radio"); // Atur radio pemancar 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("Mulai mengirim"); } 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(); } else{ gpsData.longitude = 0.0; gpsData.latitude = 0,0; } if (gps.date.isValid()){ gpsData.date = gps.date.value(); } else{ gpsData.tanggal = 0; } if (gps.time.isValid()){ gpsData.time = gps.time.value(); } else{ gpsData.waktu = 0; } }

PENERIMA

#termasuk

#sertakan #sertakan radio RF24 (8, 7); // CE, CSN struct dataStruct{ garis lintang ganda; bujur ganda; tanggal panjang yang tidak ditandatangani; lama tidak ditandatangani; }gpsData; void setup() { Serial.begin(115200); // Atur radio penerima 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("Lokasi: "); Serial.print(gpsData.latitude, 6); Serial.print(", "); Serial.print(gpsData.longitude, 6); Serial.print("Tanggal: "); Serial.print(gpsData.date); Serial.print("Waktu: "); Serial.print(gpsData.time); Serial.println();} }

(Lihat video untuk kode ini di

Langkah 3: Menyimpan Data Menggunakan Modul Kartu SD

Menyimpan Data Menggunakan Modul Kartu SD
Menyimpan Data Menggunakan Modul Kartu SD

Modul radio cukup andal, tetapi terkadang Anda memerlukan rencana darurat jika terjadi pemadaman listrik di sisi penerima atau jika radio bergerak di luar jangkauan. Rencana darurat kami adalah modul kartu SD yang memungkinkan kami menyimpan data yang kami kumpulkan. Jumlah data yang dikumpulkan tidak terlalu besar, sehingga kartu SD kecil pun dapat dengan mudah menyimpan data sehari.

#termasuk

#sertakan #sertakan #sertakan gps TinyGPSPlus; Perangkat LunakSerial ss(4, 3); struct dataStruct{ garis lintang ganda; bujur ganda; tanggal panjang yang tidak ditandatangani; lama tidak ditandatangani; }gpsData; void setup() { Serial.begin(115200); ss.begin(9600); if (!SD.begin(5)) { Serial.println("Kartu gagal, atau tidak ada"); kembali; } Serial.println("kartu diinisialisasi."); File dataFile = SD.open("gps_data.csv", FILE_WRITE); if (dataFile) { dataFile.println("Lintang, Bujur, Tanggal, Waktu"); dataFile.close(); } else{ Serial.println("tidak bisa membuka file"); } } void loop() { while (ss.available() > 0){ if (gps.encode(ss.read())){ getInfo(); printResult(); simpanInfo(); } } } void getInfo(){ if (gps.location.isValid()){ gpsData.latitude = gps.location.lat(); gpsData.longitude = gps.location.lng(); } else{ Serial.println("Lokasi salah"); } if (gps.date.isValid()){ gpsData.date = gps.date.value(); } else{ Serial.println("Tanggal salah"); } if (gps.time.isValid()){ gpsData.time = gps.time.value(); } else{ Serial.println("Waktu tidak valid"); } } void printResults(){ Serial.print("Lokasi: "); Serial.print(gpsData.latitude, 6); Serial.print(", "); Serial.print(gpsData.longitude, 6); Serial.print("Tanggal: "); Serial.print(gpsData.date); Serial.print("Waktu: "); 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("tidak ada file data"); } }

(Kami berbicara melalui kode ini dalam video

Langkah 4: Mengirim dan Menyimpan Data GPS

Mengirim dan Menyimpan Data GPS
Mengirim dan Menyimpan Data GPS
Mengirim dan Menyimpan Data GPS
Mengirim dan Menyimpan Data GPS

Langkah 5: Terima kasih

Terima kasih!
Terima kasih!

Mendaftar untuk mailing list kami!

Bagian 1: Membuat Pengukuran Gelombang Dan Suhu

Bagian 2: Radio GPS NRF24 dan Kartu SD

Bagian 3: Menjadwalkan Daya ke Pelampung

Bagian 4: Menyebarkan Pelampung

Direkomendasikan: