Isi kandungan:

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: ESP32 super smart watch tutorial 2024, Julai
Anonim
Lora Gateway Berdasarkan MicroPython ESP32
Lora Gateway Berdasarkan MicroPython ESP32
Lora Gateway Berdasarkan MicroPython ESP32
Lora Gateway Berdasarkan MicroPython ESP32

Lora sangat popular sejak kebelakangan ini. Modul komunikasi tanpa wayar yang menggunakan teknologi ini biasanya murah (menggunakan spektrum bebas), bersaiz kecil, cekap tenaga dan mempunyai jarak komunikasi yang panjang, dan terutama digunakan untuk komunikasi bersama antara terminal IoT atau pertukaran data dengan host. Terdapat banyak modul LoRa di pasaran, seperti RFM96W, yang dilengkapi dengan cip SX1278 (serasi), yang sangat kecil. Saya menggunakannya dengan MakePython ESP32 sebagai pintu masuk.

Seterusnya, saya akan menggunakan dua node LoRa untuk menghantar data suhu dan kelembapan ke pintu masuk, dan kemudian memuat naiknya ke Internet melalui pintu masuk. Di sini anda akan belajar bagaimana memuat naik data jarak jauh dari beberapa nod LoRa ke awan melalui pintu masuk.

Langkah 1: Bekalan

Bekalan
Bekalan

1 * MakePython ESP32

MakePython ESP32 adalah papan ESP32 dengan paparan OLED SSD1306 bersepadu.

2 * Radio Maduino LoRa

Maduino Lora Radio adalah Penyelesaian IoT (Internet of things) berdasarkan modul Atmega328P MCU dan Lora Atmel. Ia boleh menjadi projek sebenar untuk projek IoT (terutamanya aplikasi jarak jauh dan rendah)

2 * DHT11

1 * MakePython Lora

Langkah 2: Node LoRa

Node LoRa
Node LoRa
Node LoRa
Node LoRa

Ini adalah skema Radio Maduino Lora.

Modul Arduino Lora Radio sebagai simpul LoRa, kami menggunakannya untuk menghantar data suhu dan kelembapan ke pintu masuk.

(WiKi ini memperkenalkan cara menggunakan Radio Maduino Lora dan menghantar dan menerima data)

Langkah 3: Sambungan Node dan Sensor

Sambungan Node dan Sensor
Sambungan Node dan Sensor
Sambungan Node dan Sensor
Sambungan Node dan Sensor

VCC dan GND DHT11 disambungkan ke 3V3 dan GND Maduino, dan pin DATA disambungkan ke D4 of Maduino.

Node 0 ada di taman, simpul 1 ada di bangunan pejabat berhampiran syarikat, jaraknya sekitar 2 kilometer, dan kemudian saya mendapat data suhu dan kelembapan mereka di rumah

Langkah 4: Hantar Data ke Gateway

Muat turun TransmitterDHT11.ino, buka di Arduino IDE.

Semasa menambah nod, ubah nombor nod dengan sewajarnya. Sebagai contoh, sekarang gunakan 2 node, node pertama untuk mengubah suai nodenum = 0 untuk menjalankan program, node kedua untuk mengubah suai nodenum = 1 untuk menjalankan program, dan seterusnya, anda boleh menambah lebih banyak nod.

int16_t packetnum = 0; // kaunter paket, kami menambah setiap xmission

int16_t nodenum = 0; // Ubah suai nombor nod

Kumpulkan data dan cetak

String message = "#" + (String) nodenum + "Kelembapan:" + (String) kelembapan + "% Suhu:" + (String) suhu + "C" + "num:" + (String) packetnum; Serial.println (mesej); packetnum ++;

Hantar mesej 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 bersiri, anda dapat melihat data suhu dan kelembapan yang dikumpulkan, dan menghantarnya.

# 0 Kelembapan: 6.00% Suhu: 27.00C kum: 0

Kirim: Menghantar ke rf95_server Menghantar … Menunggu paket selesai … Menunggu balasan … Tidak ada balasan, adakah pendengar ada?

Ketepikan, sekarang kita perlu membuat Lora Gateway.

Langkah 5: MakePython Lora

MakePython Lora
MakePython Lora
MakePython Lora
MakePython Lora
MakePython Lora
MakePython Lora

Ini adalah pin modul RFM96W yang sesuai dan MakePython ESP32. Untuk memudahkan sambungan dengan MakePython ESP32, saya membuat papan litar dengan modul RFM96W. Ya, ada dua RFM96W di atasnya, yang dapat mengirim dan menerima data pada masa yang sama, tetapi sekarang saya hanya memerlukannya.

Langkah 6: LoRaWAN Gateway

Gerbang LoRaWAN
Gerbang LoRaWAN

LoRaWAN adalah rangkaian kawasan luas berkuasa rendah berdasarkan LoRa, yang dapat menyediakannya: penggunaan kuasa rendah, skalabilitas, kualiti perkhidmatan yang tinggi, dan rangkaian tanpa wayar jarak jauh yang selamat.

Kumpulkan MakePython Lora dan ESP32 untuk membuat pintu masuk yang dapat menerima data jarak jauh dan memuat naiknya ke Internet.

Langkah 7: Muat turun Kod

Muat turun semua fail 'xxx.py' dari WiKi dan muat naik ke ESP32.

Buka fail LoRaDuplexCallback.py, Anda perlu membuat beberapa penyesuaian supaya ESP32 anda dapat menyambung ke rangkaian dan memuat naik data ke pelayan.

Ubah suai API_KEY yang anda perolehi di ThingSpeak (saya akan memperkenalkan cara mendapatkannya kemudian)

#https://thingspeak.com/channels/1047479

API_KEY = 'UBHIRHVV9THUJVUI'

Ubah suai SSID dan PSW untuk menyambungkan WiFi

ssid = "Makerfabs"

pswd = "20160704"

Langkah 8: Terima Data

Cari fungsi on_receive (lora, payload) dalam fail LoRaDuplexCallback.py, di mana anda boleh memberitahu ESP32 apa yang harus dilakukan setelah menerima data. Kod berikut menguraikan dan memaparkan data suhu dan kelembapan yang diterima.

def on_receive (lora, muatan):

lora.blink_led () rssi = lora.packetRssi () try: length = len (payload) -1 myStr = str ((payload [4: length]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(panjang1 + 1):(panjang1 + 6)] myNum2 = myStr [(panjang1 + 20):(panjang1 + 25)] cetak ("*** Mesej yang diterima *** / n {}". format (muatan)) jika config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (muatan [4: panjang])), rssi) jika wlan.isconnected (): cetakan global msgCount ('Menghantar ke rangkaian …') node = int (str (muatan [5: 6], 'utf-8')) jika node == 0: URL = "https://api.thingspeak.com/update?api_key=" + API_KEY + "& bidang1 = "+ 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 Exception as e: print (e) print (" with RSSI {} n ".format (rssi))

Menentukan nombor untuk membezakan node, dan memuat naik data ke Internet melalui URL, kita dapat memantau data jarak jauh dari node yang berbeza pada bila-bila masa. Anda boleh menambah lebih banyak nod dan membuat perubahan serupa pada kod tersebut.

jika nod == 0:

URL = "https://api.thingspeak.com/update?api_key=" + API_KEY + "& field1 =" + myNum1 + "& field2 =" + myNum2 res = urequests.get (URL) cetak (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-langkah:

  1. Daftar akaun di https://thingspeak.com/. Sekiranya anda sudah memilikinya, log masuk terus.
  2. Klik Saluran Baru untuk membuat saluran ThingSpeak baru.
  3. Masukkan nama, Penerangan, Pilih Medan 1. Kemudian simpan saluran di bahagian bawah.
  4. Klik pilihan Kunci API, salin Kunci API, kami akan menggunakannya dalam program.

Langkah 10: Hasilnya

Keputusan
Keputusan
Keputusan
Keputusan
Keputusan
Keputusan

Anda dapat melihat data nod 0 dan nod 1 di skrin, walaupun jaraknya 2 kilometer.

Log masuk ke akaun ThingSpeak anda dan klik pada saluran yang anda buat, anda dapat melihat data suhu dan kelembapan yang dimuat naik.

Grafik medan1 dan grafik medan2 adalah data kelembapan dan suhu dari nod Lora 0, dan grafik medan3 dan graf medan4 adalah data kelembapan dan suhu dari nod Lora 1.

Disyorkan: