Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-23 14:49
Lora sangat populer dalam beberapa tahun terakhir. Modul komunikasi nirkabel menggunakan teknologi ini biasanya murah (menggunakan spektrum bebas), berukuran kecil, hemat energi dan memiliki jarak komunikasi yang jauh, dan terutama digunakan untuk komunikasi timbal balik antara terminal IoT atau pertukaran data dengan host. Ada banyak modul LoRa di pasaran, seperti RFM96W, yang dilengkapi dengan chip SX1278 (kompatibel), yang ukurannya sangat kecil. Saya menggunakannya dengan MakePython ESP32 sebagai gateway.
Selanjutnya, saya akan menggunakan dua node LoRa untuk mengirim data suhu dan kelembaban ke gateway, dan kemudian mengunggahnya ke Internet melalui gateway. Di sini Anda akan mempelajari cara mengunggah data jarak jauh dari beberapa node LoRa ke cloud melalui gateway.
Langkah 1: Persediaan
1 * MakePython ESP32
MakePython ESP32 adalah papan ESP32 dengan layar OLED SSD1306 terintegrasi.
2*Radio LoRa Madura
Maduino Lora Radio adalah Solusi IoT (Internet of things) berdasarkan modul Atmega328P MCU dan Lora Atmel. Ini bisa menjadi proyek nyata untuk proyek IoT (terutama aplikasi jarak jauh, daya rendah)
2 * DHT11
1 * BuatPython Lora
Langkah 2: Node LoRa
Ini adalah skema Radio Maduino Lora.
Modul Arduino Lora Radio sebagai node LoRa digunakan untuk mengirimkan data suhu dan kelembaban ke gateway.
(Wiki ini memperkenalkan cara menggunakan Radio Maduino Lora dan mengirim dan menerima data)
Langkah 3: Koneksi Node dan Sensor
VCC dan GND DHT11 terhubung ke 3V3 dan GND Maduino, dan pin DATA terhubung ke D4 Maduino.
Node 0 di taman, node 1 di gedung perkantoran dekat perusahaan, jaraknya sekitar 2 kilometer, dan kemudian saya mendapatkan data suhu dan kelembaban mereka di rumah
Langkah 4: Kirim Data ke Gateway
Download TransmitterDHT11.ino, buka di Arduino IDE.
Saat menambahkan simpul, ubah nomor simpul yang sesuai. Misalnya, sekarang gunakan 2 node, node pertama untuk memodifikasi nodenum = 0 untuk menjalankan program, node kedua untuk memodifikasi nodenum = 1 untuk menjalankan program, dan seterusnya, Anda dapat menambahkan lebih banyak node.
int16_t jumlah paket = 0; // penghitung paket, kami menambah per xmission
int16_t jumlah simpul = 0; //Ubah nomor simpul
Kumpulkan data dan cetak
String pesan ="#"+(String)nodenum+" Kelembaban:"+(String)kelembaban+"% Temperatur:"+(String)temperature+"C"+" num:"+(String)packetnum;Serial.println(message); jumlah paket++;
Kirim pesan ke rf95_server
uint8_t radioPacket[message.length()+1];
message.toCharArray(radioPacket, message.length()+1); radioPacket[message.length()+1]= '\0'; rf95.send((uint8_t *)radioPacket, message.length()+1);
Buka monitor serial, Anda dapat melihat data suhu dan kelembaban yang dikumpulkan, dan mengirimkannya.
#0 Kelembaban: 6.00% Suhu: 27.00C num: 0
Transmit: Mengirim ke rf95_server Mengirim… Menunggu paket selesai… Menunggu balasan… Tidak ada balasan, apakah ada pendengar di sekitar?
Kesampingkan, sekarang kita perlu membuat Lora Gateway.
Langkah 5: MakePython Lora
Ini adalah pin yang sesuai dari modul RFM96W dan MakePython ESP32. Untuk memfasilitasi koneksi dengan MakePython ESP32, saya membuat papan sirkuit dengan modul RFM96W. Ya, ada dua RFM96W di dalamnya, yang dapat mengirim dan menerima data secara bersamaan, tetapi sekarang saya hanya membutuhkan satu.
Langkah 6: Gerbang LoRaWAN
LoRaWAN adalah jaringan area luas berdaya rendah berdasarkan LoRa, yang dapat menyediakan satu: konsumsi daya rendah, skalabilitas, kualitas layanan tinggi, dan jaringan nirkabel jarak jauh yang aman.
Rakit MakePython Lora dan ESP32 untuk membuat gateway yang dapat menerima data jarak jauh dan mengunggahnya ke Internet.
Langkah 7: Unduh Kode
Unduh semua file 'xxx.py' dari Wiki dan unggah ke ESP32.
Buka file LoRaDuplexCallback.py, Anda perlu melakukan beberapa penyesuaian agar ESP32 Anda dapat terhubung ke jaringan dan mengunggah data ke server.
Ubah API_KEY yang Anda peroleh di ThingSpeak (saya akan memperkenalkan cara mendapatkannya nanti)
#https://thingspeak.com/channels/1047479
API_KEY='UBHIRHVV9THUJVUI'
Ubah SSID dan PSW untuk menghubungkan WiFi
ssid = "Makerfab"
pswd = "20160704"
Langkah 8: Terima Data
Temukan fungsi on_receive (lora, payload) di file LoRaDuplexCallback.py, tempat Anda dapat memberi tahu ESP32 apa yang harus dilakukan setelah menerima data. Kode berikut mem-parsing dan menampilkan data suhu dan kelembaban yang diterima.
def on_receive(lora, payload):
lora.blink_led() rssi = lora.packetRssi() coba: length=len(payload)-1 myStr=str((payload[4:length]), 'utf-8') length1=myStr.find(':') myNum1=myStr[(length1+1):(length1+6)] myNum2=myStr[(length1+20):(length1+25)] print("*** Menerima pesan ***\n{}". format(payload)) if config_lora. IS_LORA_OLED: lora.show_packet(("{}".format(payload[4:length])), rssi) if wlan.isconnected(): global msgCount print('Sending to network…') simpul = int(str(payload[5:6], 'utf-8')) jika simpul == 0: URL="https://api.thingspeak.com/update?api_key="+API_KEY+"&field1= "+myNum1+"&field2="+myNum2 res=urequests.get(URL) print(res.text) elif node == 1: URL="https://api.thingspeak.com/update?api_key="+API_KEY+" &field3="+myNum1+"&field4="+myNum2 res=urequests.get(URL) print(res.text) kecuali Pengecualian sebagai e: print(e) print("with RSSI {}\n".format(rssi))
Menilai nomor untuk membedakan node, dan mengunggah data ke Internet melalui URL, kami dapat memantau data jarak jauh dari node yang berbeda kapan saja. Anda dapat menambahkan lebih banyak node dan membuat perubahan serupa pada kode.
jika simpul == 0:
URL="https://api.thingspeak.com/update?api_key="+API_KEY+"&field1="+myNum1+"&field2="+myNum2 res=urequests.get(URL) print(res.text)
Langkah 9: Gunakan ThingSpeak IoT
Langkah:
- Daftar akun di https://thingspeak.com/. Jika Anda sudah memilikinya, langsung masuk.
- Klik Saluran Baru untuk membuat saluran ThingSpeak baru.
- Masukkan nama, Deskripsi, Pilih Bidang 1. Kemudian simpan saluran di bagian bawah.
- Klik opsi API Keys, salin API Key, kita akan menggunakannya dalam program.
Langkah 10: Hasil
Anda dapat melihat data node 0 dan node 1 di layar, meskipun jaraknya 2 kilometer.
Masuk ke akun ThingSpeak Anda dan klik pada saluran yang Anda buat, Anda dapat melihat data suhu dan kelembaban yang diunggah.
Grafik field1 dan grafik field2 adalah data kelembaban dan suhu node Lora 0, dan grafik field3 dan grafik field4 adalah data kelembaban dan suhu node Lora 1.
Direkomendasikan:
MuMo - LoRa Gateway: 25 Langkah (dengan Gambar)
MuMo - LoRa Gateway: ### UPDATE 10-03-2021 // informasi / pembaruan terbaru akan tersedia di halaman github: https://github.com/MoMu-Antwerp/MuMoWhat itu MuMo?MuMo adalah kolaborasi antara pengembangan produk (departemen Universitas Antwerpen) di bawah
Altimeter (Pengukur Ketinggian) Berdasarkan Tekanan Atmosfer: 7 Langkah (dengan Gambar)
Altimeter (Pengukur Ketinggian) Berdasarkan Tekanan Atmosfer: [Sunting]; Lihat versi 2 pada langkah 6 dengan masukan ketinggian garis dasar secara manual. Ini adalah deskripsi bangunan Altimeter (Pengukur Ketinggian) berdasarkan Arduino Nano dan sensor tekanan atmosfer Bosch BMP180. Desainnya sederhana tetapi pengukurannya
MQTT Berdasarkan MicroPython ESP32: 5 Langkah
MQTT Berdasarkan MicroPython ESP32: Saya suka memelihara kucing peliharaan. Setelah seharian bekerja keras, kucing bisa membuat saya rileks ketika saya pulang. Setelah latihan keras, kucing ini memiliki kebiasaan makan yang teratur di "restoran" setiap hari. Tetapi baru-baru ini saya harus melakukan perjalanan selama beberapa hari dan
ESP32 Lora Thingspeak Gateway Dengan Sensor Node: 9 Langkah
ESP32 Lora Thingspeak Gateway Dengan Sensor Node: dalam Proyek IoT ini, saya mendesain ESP32 LoRa Gateway & juga ESP32 LoRa Sensor Node untuk memantau pembacaan sensor secara nirkabel dari jarak beberapa kilometer. Pengirim akan membaca data kelembaban dan suhu menggunakan Sensor DHT11. Kemudian mengirimkan
MicroPython IoT Rover Berdasarkan WEMOS D1 (ESP-8266EX): 7 Langkah (dengan Gambar)
MicroPython IoT Rover Berdasarkan WEMOS D1 (ESP-8266EX): ** Pembaruan: Saya memposting video baru untuk v2 dengan tombak **Saya mengadakan lokakarya Robotika untuk anak-anak dan saya selalu mencari platform ekonomis untuk membangun proyek yang menarik. Meskipun klon Arduino murah, ia menggunakan bahasa C/C++ yang tidak