Съдържание:

Lora Gateway, базиран на MicroPython ESP32: 10 стъпки (със снимки)
Lora Gateway, базиран на MicroPython ESP32: 10 стъпки (със снимки)

Видео: Lora Gateway, базиран на MicroPython ESP32: 10 стъпки (със снимки)

Видео: Lora Gateway, базиран на MicroPython ESP32: 10 стъпки (със снимки)
Видео: КАК Я ИЗБАВИЛСЯ ОТ ПРЫЩЕЙ 2024, Юли
Anonim
Lora Gateway, базиран на MicroPython ESP32
Lora Gateway, базиран на MicroPython ESP32
Lora Gateway базиран на MicroPython ESP32
Lora Gateway базиран на MicroPython ESP32

Lora е много популярна през последните години. Модулът за безжична комуникация, използващ тази технология, обикновено е евтин (използва свободен спектър), малък по размер, енергийно ефективен и има голямо разстояние за комуникация и се използва главно за взаимна комуникация между IoT терминали или обмен на данни с хост. На пазара има много модули LoRa, като RFM96W, който е оборудван със SX1278 (съвместим) чип, който е много малък. Използвам го с MakePython ESP32 като шлюз.

След това ще използвам два възела LoRa, за да изпратя данните за температурата и влажността до шлюза и след това да ги кача в интернет през шлюза. Тук ще научите как да качвате отдалечени данни от множество LoRa възли в облака през шлюза.

Стъпка 1: Консумативи

Консумативи
Консумативи

1*MakePython ESP32

MakePython ESP32 е платка ESP32 с вграден SSD1306 OLED дисплей.

2*Радио Maduino LoRa

Maduino Lora Radio е IoT (Интернет на нещата) решение, базирано на Atmega328P MCU и модул Lora. Това може да бъде истински проект за 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 е свързан към D4 на Maduino.

Възел 0 е в парка, възел 1 е в офис сградата в близост до компанията, те са на около 2 километра един от друг и след това получавам техните данни за температурата и влажността у дома

Стъпка 4: Изпратете данни към шлюза

Изтеглете TransmitterDHT11.ino, отворете го в Arduino IDE.

Когато добавяте възел, променете съответно номера на възела. Например, сега използвайте 2 възли, първият възел за промяна на nodenum = 0 за изпълнение на програмата, вторият възел за промяна на nodenum = 1 за изпълнение на програмата и т.н., можете да добавите още възел.

int16_t пакетно число = 0; // брояч на пакети, увеличаваме на xmission

int16_t ноден = 0; // Промяна на номера на възела

Съберете данни и ги отпечатайте

Низово съобщение = "#"+(String) nodenum+"Влажност:"+(String) влажност+"% Температура:"+(String) температура+"C"+"num:"+(String) пакетно число; 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 Gateway

LoRaWAN шлюз
LoRaWAN шлюз

LoRaWAN е широкообхватна мрежа с ниска мощност, базирана на LoRa, която може да осигури такава: ниска консумация на енергия, мащабируемост, високо качество на услугата и безопасна безжична мрежа на дълги разстояния.

Сглобете MakePython Lora и ESP32, за да направите шлюз, който да получава отдалечени данни и да ги качва в Интернет.

Стъпка 7: Изтеглете кода

Изтеглете всички файлове „xxx.py“от WiKi и ги качете в ESP32.

Отворете файла LoRaDuplexCallback.py, Трябва да направите някои корекции, така че вашият ESP32 да може да се свърже с мрежата и да качи данни на сървъра.

Променете API_KEY, който сте получили в ThingSpeak (ще ви представя по -късно как да го получите)

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

API_KEY = 'UBHIRHVV9THUJVUI'

Променете SSID и PSW, за да свържете WiFi

ssid = "Makerfabs"

pswd = "20160704"

Стъпка 8: Получаване на данни

Намерете функцията on_receive (lora, полезен товар) във файла LoRaDuplexCallback.py, където можете да кажете на ESP32 какво да прави след получаване на данните. Следният код анализира и показва получените данни за температурата и влажността.

def on_receive (lora, полезен товар):

lora.blink_led () rssi = lora.packetRssi () try: length = len (полезен товар) -1 myStr = str ((полезен товар [4: дължина]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(length1+1):(length1+6)] myNum2 = myStr [(length1+20):(length1+25)] print ("*** Получено съобщение *** / n {}". формат (полезен товар)), ако config_lora. IS_LORA_OLED: lora.show_packet (("{}". формат (полезен товар [4: дължина])), rssi), ако wlan.isconnected (): глобален msgCount печат ('Изпращане до мрежата …') възел = 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 ".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 Keys, копирайте API ключа, ние ще го използваме в програмата.

Стъпка 10: Резултат

Резултат
Резултат
Резултат
Резултат
Резултат
Резултат

Можете да видите данните на възел 0 и възел 1 на екрана, въпреки че са на 2 километра една от друга.

Влезте в профила си в ThingSpeak и кликнете върху канала, който сте създали, можете да видите качените данни за температурата и влажността.

Графиката field1 и field2 графиките са данните за влажността и температурата на възел Lora 0, а графиката field3 и графиката field4 са данните за влажността и температурата на възел Lora 1.

Препоръчано: