Агуулгын хүснэгт:

Lora Gateway нь MicroPython ESP32: 10 алхам дээр суурилсан (зурагтай)
Lora Gateway нь MicroPython ESP32: 10 алхам дээр суурилсан (зурагтай)

Видео: Lora Gateway нь MicroPython ESP32: 10 алхам дээр суурилсан (зурагтай)

Видео: Lora Gateway нь MicroPython ESP32: 10 алхам дээр суурилсан (зурагтай)
Видео: MQTT bridged LoRa networks - with MicroPython on ESP32 2024, Долдугаар сарын
Anonim
Лора гарц нь MicroPython ESP32 дээр суурилсан
Лора гарц нь MicroPython ESP32 дээр суурилсан
Лора гарц нь MicroPython ESP32 дээр суурилсан
Лора гарц нь MicroPython ESP32 дээр суурилсан

Лора сүүлийн жилүүдэд маш их алдартай болсон. Энэхүү технологийг ашигладаг утасгүй холбооны модуль нь ихэвчлэн хямд (чөлөөт спектрийг ашигладаг), жижиг хэмжээтэй, эрчим хүчний хэмнэлттэй, харилцаа холбооны урт зайтай байдаг ба голчлон IoT терминалуудын хоорондох харилцаа холбоо эсвэл хосттой мэдээлэл солилцоход ашиглагддаг. Зах зээл дээр маш жижиг хэмжээтэй SX1278 (нийцтэй) чипээр тоноглогдсон RFM96W гэх мэт олон LoRa модуль байдаг. Би үүнийг MakePython ESP32 -тэй гарц болгон ашигладаг.

Дараа нь би хоёр LoRa зангилааг ашиглан температур, чийгшлийн өгөгдлийг гарц руу илгээж, дараа нь гарцаар дамжуулан интернетэд байршуулах болно. Энд та олон LoRa зангилааны алсын өгөгдлийг гарцаар дамжуулан үүл рүү хэрхэн байршуулах талаар сурах болно.

Алхам 1: хангамж

Хангамж
Хангамж

1*MakePython ESP32

MakePython ESP32 бол нэгдсэн SSD1306 OLED дэлгэцтэй ESP32 самбар юм.

2*Maduino LoRa радио

Maduino Lora Radio бол Atmel's Atmega328P MCU ба Lora модульд суурилсан IoT (Интернетийн зүйл) шийдэл юм. Энэ нь IoT төслүүдийн бодит төсөл байж болно (ялангуяа урт хугацааны, бага чадлын хэрэглээ)

2*DHT11

1*MakePython Lora

Алхам 2: LoRa зангилаа

LoRa зангилаа
LoRa зангилаа
LoRa зангилаа
LoRa зангилаа

Энэ бол Мадуино Лора радиогийн схем юм.

Arduino Lora Radio модулийг LoRa зангилаа болгон ашигладаг бөгөөд бид үүнийг температур, чийгшлийн мэдээллийг гарц руу илгээхэд ашигладаг.

(Энэхүү WiKi нь Maduino Lora Radio -г хэрхэн ашиглах, өгөгдөл илгээх, хүлээн авах талаар танилцуулж байна)

Алхам 3: Зангилаа ба мэдрэгчийн холболт

Зангилаа ба мэдрэгчийн холболт
Зангилаа ба мэдрэгчийн холболт
Зангилаа ба мэдрэгчийн холболт
Зангилаа ба мэдрэгчийн холболт

DHT11 -ийн VCC ба GND нь Maduino -ийн 3V3 ба GND -тэй холбогдсон бөгөөд DATA зүү нь Maduino -ийн D4 -тэй холбогдсон байна.

0 -р зангилаа цэцэрлэгт хүрээлэнд, 1 -р зангилаа нь компанийн ойролцоох оффисын байранд байрладаг бөгөөд хоорондоо 2 км зайтай, дараа нь би тэдний температур, чийгшлийн мэдээллийг гэртээ авдаг.

Алхам 4: Гарц руу өгөгдөл илгээх

TransmitterDHT11.ino -г татаж аваад Arduino IDE дээр нээнэ үү.

Зангилаа нэмэх үед зангилааны дугаарыг тохируулан өөрчилнө үү. Жишээлбэл, одоо 2 зангилааг ашигла, эхний зангилаа = 0 -ийг програмыг ажиллуулахын тулд, 2 -р зангилаа = 1 -ийг өөрчлөхийн тулд програмыг ажиллуулна гэх мэтээр та илүү олон зангилаа нэмж болно.

int16_t packetnum = 0; // пакет тоолуур, бид нэг дамжуулалт тутамд нэмэгддэг

int16_t зангилаа = 0; // Зангилааны дугаарыг өөрчлөх

Мэдээлэл цуглуулж хэвлэ

String message = "#"+(String) зангилаа+"Чийгшил:"+(String) чийгшил+"% Температур:"+(String) температур+"C"+"num:"+(String) packetnum; Serial.println (зурвас); пакет ++;

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);

Цуваа мониторыг нээвэл температур, чийгшлийн мэдээллийг цуглуулж, илгээх боломжтой болно.

#0 Чийглэг: 6.00% Температур: 27.00C тоо: 0

Дамжуулах: rf95_server рүү илгээж байна Илгээж байна … Пакет дуусахыг хүлээж байна … Хариу хүлээж байна … Хариулт алга, эргэн тойронд сонсогч байна уу?

Үүнийг хойш тавь, одоо бид Лора гарц хийх хэрэгтэй.

Алхам 5: MakePython Lora

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

Энэ бол RFM96W модуль ба MakePython ESP32 -ийн харгалзах зүү юм. MakePython ESP32 -тэй холболтыг хөнгөвчлөхийн тулд би RFM96W модуль бүхий хэлхээний самбар хийсэн. Тийм ээ, үүн дээр өгөгдлийг нэгэн зэрэг илгээх, хүлээн авах боломжтой хоёр RFM96W байдаг, гэхдээ одоо надад зөвхөн нэг л хэрэгтэй байна.

Алхам 6: LoRaWAN гарц

LoRaWAN гарц
LoRaWAN гарц

LoRaWAN бол LoRa дээр суурилсан бага чадалтай өргөн хүрээний сүлжээ бөгөөд бага эрчим хүч зарцуулах, өргөтгөх чадвар, үйлчилгээний өндөр чанар, холын зайн аюулгүй утасгүй сүлжээг хангах боломжтой юм.

MakePython Lora болон ESP32 -ийг угсарч, алсын өгөгдлийг хүлээн авч, интернетэд байршуулах гарцыг хий.

Алхам 7: Кодыг татаж авах

Бүх 'xxx.py' файлуудыг WiKi -аас татаж аваад ESP32 руу байршуулна уу.

LoRaDuplexCallback.py файлыг нээнэ үү, ингэснээр таны ESP32 сүлжээнд холбогдож сервер рүү өгөгдөл байршуулахын тулд зарим тохируулга хийх хэрэгтэй.

ThingSpeak -аас олж авсан API_KEY -ээ өөрчилнө үү (үүнийг хэрхэн олж авах талаар би дараа нь танилцуулах болно)

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

API_KEY = 'UBHIRHVV9THUJVUI'

WiFi -ийг холбохын тулд SSID болон PSW -ийг өөрчилнө үү

ssid = "Makerfabs"

pswd = "20160704"

Алхам 8: Мэдээлэл хүлээн авах

LoRaDuplexCallback.py файлаас on_receive (lora, payload) функцийг олоод өгөгдлийг хүлээн авсны дараа юу хийхээ ESP32 -д хэлж болно. Дараах код нь хүлээн авсан температур, чийгшлийн мэдээллийг задлан шинжилдэг.

def on_receive (lora, ашигтай ачаалал):

lora.blink_led () rssi = lora.packetRssi () оролдох: урт = len (ачаалал) -1 myStr = str ((ачаалал [4: урт]), 'utf-8') урт1 = myStr.find (':') myNum1 = myStr [(урт1+1):(урт1+6)] myNum2 = myStr [(урт1+20):(урт1+25)] хэвлэх ("*** Хүлээн авсан мессеж *** / n {}". format (payload)) if config_lora. IS_LORA_OLED: lora.show_packet (("" {} ". format (payload [4: length])), rssi) if wlan.isconnected (): global msgCount print ('Сүлжээ рүү илгээж байна …')) node = int (str (ачаалал [5: 6], 'utf-8')) хэрэв зангилаа == 0: URL = "https://api.thingspeak.com/update?api_key="+API_KEY+"& field1 = "+myNum1+" & field2 = "+myNum2 res = urequests.get (URL) хэвлэх (res.text) elif node == 1: URL =" https://api.thingspeak.com/update?api_key= "+API_KEY+" & field3 = "+myNum1+" & field4 = "+myNum2 res = urequests.get (URL) хэвлэх (res.text) -ээс бусад тохиолдолд e: print (e) print (" RSSI -тэй {} n "форматтай (rssi))

Зангилааг ялгах дугаарыг шүүж, өгөгдлийг интернетээр дамжуулан URL -ээр дамжуулан байршуулах замаар бид өөр өөр зангилааны алсын өгөгдлийг хүссэн үедээ хянах боломжтой болно. Та илүү олон зангилаа нэмж, кодод ижил төстэй өөрчлөлт оруулах боломжтой.

хэрэв зангилаа == 0:

URL = "https://api.thingspeak.com/update?api_key="+API_KEY+"& field1 ="+myNum1+"& field2 ="+myNum2 res = urequests.get (URL) хэвлэх (res.text)

Алхам 9: ThingSpeak IoT ашиглана уу

ThingSpeak IoT ашиглах
ThingSpeak IoT ашиглах
ThingSpeak IoT ашиглах
ThingSpeak IoT ашиглах
ThingSpeak IoT ашиглах
ThingSpeak IoT ашиглах

Алхам:

  1. Https://thingspeak.com/ хаягаар бүртгүүлнэ үү. Хэрэв танд аль хэдийн байгаа бол шууд нэвтэрнэ үү.
  2. Шинэ суваг дээр дарж шинэ ThingSpeak суваг үүсгэнэ үү.
  3. Оруулах нэр, Тодорхойлолт, Талбарыг сонгоно уу 1. Дараа нь сувгийг доод талд хадгална уу.
  4. API түлхүүрүүдийн сонголтыг дарж, API түлхүүрийг хуулж ав, бид үүнийг програмд ашиглах болно.

Алхам 10: Үр дүн

Үр дүн
Үр дүн
Үр дүн
Үр дүн
Үр дүн
Үр дүн

Та 0 -р зангилаа ба 1 -р зангилааны өгөгдлийг хоорондоо 2 км зайтай боловч дэлгэц дээр харж болно.

ThingSpeak данс руугаа нэвтэрч, өөрийн үүсгэсэн суваг дээр дарж байршуулсан температур, чийгшлийн мэдээллийг харах боломжтой.

Field1 график ба field2 графикууд нь Лора 0 зангилааны чийгшил ба температурын өгөгдөл, field3 график ба field4 график нь 1 Лора зангилааны чийгшил ба температурын өгөгдөл юм.

Зөвлөмж болгож буй: