Daftar Isi:

Lora Gateway Berdasarkan MicroPython ESP32: 10 Langkah (dengan Gambar)
Lora Gateway Berdasarkan MicroPython ESP32: 10 Langkah (dengan Gambar)

Video: Lora Gateway Berdasarkan MicroPython ESP32: 10 Langkah (dengan Gambar)

Video: Lora Gateway Berdasarkan MicroPython ESP32: 10 Langkah (dengan Gambar)
Video: MicroPython untuk Pemula : Ep. 2 Dasar-Dasar 2024, Juli
Anonim
Lora Gateway Berdasarkan MicroPython ESP32
Lora Gateway Berdasarkan MicroPython ESP32
Lora Gateway Berdasarkan MicroPython ESP32
Lora Gateway Berdasarkan MicroPython ESP32

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

Perlengkapan
Perlengkapan

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

LoRa Node
LoRa Node
LoRa Node
LoRa Node

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

Koneksi Node dan Sensor
Koneksi Node dan Sensor
Koneksi Node dan Sensor
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

BuatPython Lora
BuatPython Lora
BuatPython Lora
BuatPython Lora
BuatPython Lora
BuatPython 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

Gerbang LoRaWAN
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

Gunakan ThingSpeak IoT
Gunakan ThingSpeak IoT
Gunakan ThingSpeak IoT
Gunakan ThingSpeak IoT
Gunakan ThingSpeak IoT
Gunakan ThingSpeak IoT

Langkah:

  1. Daftar akun di https://thingspeak.com/. Jika Anda sudah memilikinya, langsung masuk.
  2. Klik Saluran Baru untuk membuat saluran ThingSpeak baru.
  3. Masukkan nama, Deskripsi, Pilih Bidang 1. Kemudian simpan saluran di bagian bawah.
  4. Klik opsi API Keys, salin API Key, kita akan menggunakannya dalam program.

Langkah 10: Hasil

Hasil
Hasil
Hasil
Hasil
Hasil
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: