Talaan ng mga Nilalaman:

Lora Gateway Batay sa MicroPython ESP32: 10 Mga Hakbang (na may Mga Larawan)
Lora Gateway Batay sa MicroPython ESP32: 10 Mga Hakbang (na may Mga Larawan)

Video: Lora Gateway Batay sa MicroPython ESP32: 10 Mga Hakbang (na may Mga Larawan)

Video: Lora Gateway Batay sa MicroPython ESP32: 10 Mga Hakbang (na may Mga Larawan)
Video: Using Heltec ESP32 OLED Wifi Kit 2024, Nobyembre
Anonim
Lora Gateway Batay sa MicroPython ESP32
Lora Gateway Batay sa MicroPython ESP32
Lora Gateway Batay sa MicroPython ESP32
Lora Gateway Batay sa MicroPython ESP32

Si Lora ay naging tanyag sa mga nagdaang taon. Ang module ng wireless na komunikasyon gamit ang teknolohiyang ito ay karaniwang mura (gumagamit ng libreng spectrum), maliit ang sukat, mahusay sa enerhiya at may mahabang distansya sa komunikasyon, at pangunahing ginagamit para sa magkaparehong komunikasyon sa pagitan ng mga IoT terminal o palitan ng data sa isang host. Maraming mga module ng LoRa sa merkado, tulad ng RFM96W, na nilagyan ng SX1278 (katugmang) chip, na napakaliit. Ginagamit ko ito sa MakePython ESP32 bilang isang gateway.

Susunod, gagamit ako ng dalawang mga node ng LoRa upang maipadala ang data ng temperatura at halumigmig sa gateway, at pagkatapos ay i-upload ito sa Internet sa pamamagitan ng gateway. Malalaman mo rito kung paano mag-upload ng malayuang data ng maraming mga LoRa node sa cloud sa pamamagitan ng gateway.

Hakbang 1: Mga Panustos

Mga gamit
Mga gamit

1 * MakePython ESP32

Ang MakePython ESP32 ay isang board na ESP32 na may isang integrated SSD1306 OLED display.

2 * Maduino LoRa Radio

Ang Maduino Lora Radio ay isang IoT (Internet ng mga bagay) Solusyon batay sa Atmel's Atmega328P MCU at Lora module. Maaari itong maging isang tunay na proyekto para sa mga proyekto ng IoT (lalo na sa malayuan, mababang aplikasyon ng kuryente)

2 * DHT11

1 * MakePython Lora

Hakbang 2: LoRa Node

LoRa Node
LoRa Node
LoRa Node
LoRa Node

Ito ang iskema ng Maduino Lora Radio.

Ang module ng Arduino Lora Radio bilang LoRa node, ginagamit namin ito upang magpadala ng data ng temperatura at halumigmig sa gateway.

(Ipinakikilala ng WiKi na ito kung paano gamitin ang Maduino Lora Radio at magpadala at tumanggap ng data)

Hakbang 3: Koneksyon sa Node at Sensor

Koneksyon sa Node at Sensor
Koneksyon sa Node at Sensor
Koneksyon sa Node at Sensor
Koneksyon sa Node at Sensor

Ang VCC at GND ng DHT11 ay konektado sa 3V3 at GND ng Maduino, at ang DATA pin ay konektado sa D4 ng Maduino.

Ang Node 0 ay nasa parke, ang node 1 ay nasa gusali ng opisina malapit sa kumpanya, halos 2 kilometro ang layo, at pagkatapos ay nakukuha ko ang kanilang data ng temperatura at halumigmig sa bahay

Hakbang 4: Magpadala ng Data sa Gateway

I-download ang TransmitterDHT11.ino, buksan ito sa Arduino IDE.

Kapag nagdaragdag ng isang node, baguhin ang numero ng node nang naaayon. Halimbawa, ngayon gumamit ng 2 node, ang unang node upang baguhin ang nodenum = 0 upang patakbuhin ang programa, ang pangalawang node upang baguhin ang nodenum = 1 upang patakbuhin ang programa, at iba pa, maaari kang magdagdag ng higit pang node.

int16_t packetnum = 0; // packet counter, nagdaragdag kami bawat xmission

int16_t nodenum = 0; // Baguhin ang numero ng node

Kolektahin ang data at i-print ito

String message = "#" + (String) nodenum + "Humidity:" + (String) halumigmig + "% Temperatura:" + (String) temperatura + "C" + "num:" + (String) packetnum; Serial.println (mensahe); packetnum ++;

Magpadala ng mensahe sa 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);

Buksan ang serial monitor, maaari mong makita ang nakolektang data ng temperatura at halumigmig, at ipadala ito.

# 0 Humidity: 6.00% Temperatura: 27.00C num: 0

Ipadala: Pagpapadala sa rf95_server Pagpapadala… Naghihintay para makumpleto ang packet … Naghihintay para sa tugon … Walang tugon, mayroon bang tagapakinig sa paligid?

Itabi ito, ngayon kailangan nating gawin ang Lora Gateway.

Hakbang 5: MakePython Lora

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

Ito ang kaukulang pin ng module na RFM96W at MakePython ESP32. Upang mapadali ang koneksyon sa MakePython ESP32, gumawa ako ng circuit board na may module na RFM96W. Oo, mayroong dalawang RFM96W dito, na maaaring magpadala at tumanggap ng data nang sabay, ngunit ngayon kailangan ko lang ng isa.

Hakbang 6: LoRaWAN Gateway

LoRaWAN Gateway
LoRaWAN Gateway

Ang LoRaWAN ay isang network na may malawak na lakas na malawak na lugar batay sa LoRa, na maaaring magbigay ng isa: mababang paggamit ng kuryente, kakayahang sumukat, mataas na kalidad ng serbisyo, at ligtas na wireless network na malayuan.

Magtipon ng MakePython Lora at ESP32 upang makagawa ng isang gateway na maaaring makatanggap ng malayuang data at mai-upload ito sa Internet.

Hakbang 7: I-download ang Code

I-download ang lahat ng mga file na 'xxx.py' mula sa WiKi at i-upload ang mga ito sa ESP32.

Buksan ang LoRaDuplexCallback.py file, Kailangan mong gumawa ng ilang mga pagsasaayos upang ang iyong ESP32 ay maaaring kumonekta sa network at mag-upload ng data sa server.

Baguhin ang API_KEY na nakuha mo sa ThingSpeak (Ipapakilala ko kung paano ito makukuha sa paglaon)

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

API_KEY = 'UBHIRHVV9THUJVUI'

Baguhin ang SSID at PSW upang ikonekta ang WiFi

ssid = "Makerfabs"

pswd = "20160704"

Hakbang 8: Tumanggap ng Data

Hanapin ang pagpapaandar na on_receive (lora, payload) sa file na LoRaDuplexCallback.py, kung saan masasabi mo sa ESP32 kung ano ang gagawin pagkatapos matanggap ang data. Ang mga sumusunod na code ay parse at ipinapakita ang natanggap na data ng temperatura at halumigmig.

def on_receive (lora, payload):

lora.blink_led () rssi = lora.packetRssi () subukan: haba = len (payload) -1 myStr = str ((payload [4: haba]), 'utf-8') haba1 = myStr.find (':') myNum1 = myStr [(haba1 + 1):(haba1 + 6)] myNum2 = myStr [(haba1 + 20):(haba1 + 25)] i-print ("*** Nakatanggap ng mensahe *** / n {}". format (payload)) kung config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (payload [4: haba])), rssi) kung wlan.isconnected (): pandaigdigang msgCount print ('Nagpapadala sa network…') node = int (str (payload [5: 6], 'utf-8')) kung node == 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) maliban sa Exception bilang e: print (e) print (" with RSSI {} n ".format (rssi))

Ang paghuhusga sa numero upang makilala ang mga node, at pag-upload ng data sa Internet sa pamamagitan ng URL, maaari naming subaybayan ang malayuang data ng iba't ibang mga node anumang oras. Maaari kang magdagdag ng higit pang mga node at gumawa ng mga katulad na pagbabago sa code.

kung node == 0:

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

Hakbang 9: Gumamit ng ThingSpeak IoT

Gumamit ng ThingSpeak IoT
Gumamit ng ThingSpeak IoT
Gumamit ng ThingSpeak IoT
Gumamit ng ThingSpeak IoT
Gumamit ng ThingSpeak IoT
Gumamit ng ThingSpeak IoT

Mga Hakbang:

  1. Mag-sign up ng isang account sa https://thingspeak.com/. Kung mayroon ka na, direktang mag-sign in.
  2. Mag-click sa Bagong Channel upang lumikha ng isang bagong ThingSpeak channel.
  3. Pangalan ng input, Paglalarawan, Piliin ang Patlang 1. Pagkatapos ay i-save ang channel sa ibaba.
  4. I-click ang pagpipiliang API Keys, kopyahin ang API Key, gagamitin namin ito sa programa.

Hakbang 10: Resulta

Resulta
Resulta
Resulta
Resulta
Resulta
Resulta

Maaari mong makita ang data ng node 0 at node 1 sa screen, kahit na 2 kilometro ang layo.

Mag-log in sa iyong ThingSpeak account at mag-click sa channel na iyong nilikha, makikita mo ang na-upload na data ng temperatura at kahalumigmigan.

Ang field1 graph at ang field2 grap ay ang halumigmig at data ng temperatura ng Lora node 0, at ang field3 graph at ang field4 graph ay ang data ng halumigmig at temperatura ng Lora node 1.

Inirerekumendang: