Мазмуну:

Lora Gateway MicroPython ESP32 негизинде: 10 кадам (Сүрөттөр менен)
Lora Gateway MicroPython ESP32 негизинде: 10 кадам (Сүрөттөр менен)

Video: Lora Gateway MicroPython ESP32 негизинде: 10 кадам (Сүрөттөр менен)

Video: Lora Gateway MicroPython ESP32 негизинде: 10 кадам (Сүрөттөр менен)
Video: Использование комплекта Wi-Fi Heltec ESP32 OLED 2024, Июль
Anonim
Lora Gateway MicroPython ESP32 негизинде
Lora Gateway MicroPython ESP32 негизинде
Lora Gateway MicroPython ESP32 негизинде
Lora Gateway MicroPython ESP32 негизинде

Лора акыркы жылдары абдан популярдуу болуп калды. Бул технологияны колдонгон зымсыз байланыш модулу, адатта, арзан (бекер спектрди колдонуу менен), кичине өлчөмдө, энергияны үнөмдөөчү жана байланыштын узак аралыкына ээ жана негизинен IoT терминалдарынын ортосундагы өз ара байланыш же хост менен маалымат алмашуу үчүн колдонулат. Рынокто көптөгөн LoRa модулдары бар, мисалы RFM96W, ал абдан кичинекей SX1278 (шайкеш) чип менен жабдылган. Мен аны 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 түйүнү

Бул Maduino Lora радиосунун схемасы.

Arduino Lora Radio модулу LoRa түйүнү катары биз аны шлюзга температура жана нымдуулук маалыматын жөнөтүү үчүн колдонобуз.

(Бул WiKi Maduino Lora радиосун кантип колдонууну жана маалыматтарды жөнөтүүнү жана кабыл алууну таанытат)

3 -кадам: түйүн жана сенсор туташуусу

Түйүн жана сенсор байланышы
Түйүн жана сенсор байланышы
Түйүн жана сенсор байланышы
Түйүн жана сенсор байланышы

VCC жана GND DHT11 3V3 жана GND Maduino менен туташкан, ал эми DATA пини Maduino D4 менен туташкан.

0 түйүн паркта, 1 түйүн компаниянын жанындагы офистик имаратта, алар 2 километрдей аралыкта, анан мен алардын температурасы жана нымдуулугу жөнүндө маалыматтарды үйдөн алам

4 -кадам: маалыматтарды шлюзга жөнөтүү

TransmitterDHT11.ino жүктөп алыңыз, аны Arduino IDEде ачыңыз.

Түйүн кошуп жатканда, түйүндүн номерин ошого жараша өзгөртүңүз. Мисалы, азыр 2 түйүндү колдонуңуз, биринчи түйүн = nodenum = 0 программаны иштетүү үчүн, экинчи nodenum = 1 программаны иштетүү үчүн, жана башкалар, сиз дагы түйүн кошо аласыз.

int16_t packetnum = 0; // пакет эсептегич, биз xmission күнүнө көбөйтөбүз

int16_t nodenum = 0; // Түйүндүн номерин өзгөртүү

Маалыматтарды чогултуп, басып чыгарыңыз

String message = "#"+(String) nodenum+"Нымдуулук:"+(String) нымдуулук+"% Температура:"+(String) температура+"C"+"num:"+(String) packetnum; Serial.println (билдирүү); packetnum ++;

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

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.blink_led () rssi = lora.packetRssi () аракет кылыңыз: узундук = лен (жүктөө) -1 myStr = str ((жүктөм [4: узундук)), 'utf-8') узундук = = MyStr.find (':') myNum1 = myStr [(length1+1):(length1+6)] myNum2 = myStr [(length1+20):(length1+25)] print ("*** Алынган билдирүү *** / n {}"). format (payload)) if config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (payload [4: length])), rssi) if wlan.isconnected (): глобалдык msgCount басып чыгаруу ('Тармакка жөнөтүлүүдө…') node = int (str (payload [5: 6], 'utf-8')) if node == 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) print (res.text) in except Exception as e: print (e) print (" with RSSI {} n ".format (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 эсебиңизге кириңиз жана өзүңүз түзгөн каналды чыкылдатыңыз, жүктөлгөн температура жана нымдуулук маалыматын көрө аласыз.

Талаа1 графасы жана талаа2 графалары - бул Лора түйүнүнүн 0 нымдуулугу жана температурасы маалыматы, ал эми талаа3 графасы менен талаа4 графасы - Лора түйүнүнүн 1 нымдуулугу жана температурасы жөнүндө маалымат.

Сунушталууда: