Мазмұны:

MicroPython ESP32 негізіндегі Lora шлюзі: 10 қадам (суреттермен)
MicroPython ESP32 негізіндегі Lora шлюзі: 10 қадам (суреттермен)

Бейне: MicroPython ESP32 негізіндегі Lora шлюзі: 10 қадам (суреттермен)

Бейне: MicroPython ESP32 негізіндегі Lora шлюзі: 10 қадам (суреттермен)
Бейне: Introduction to M5Stack Core2 ESP32 2" Display Development Module -Robojax 2024, Шілде
Anonim
Lora шлюзі MicroPython ESP32 негізінде
Lora шлюзі MicroPython ESP32 негізінде
Lora шлюзі MicroPython ESP32 негізінде
Lora шлюзі MicroPython ESP32 негізінде

Лора соңғы жылдары өте танымал болды. Бұл технологияны қолданатын сымсыз байланыс модулі әдетте арзан (бос спектрді қолдана отырып), көлемі шағын, энергияны үнемдейтін және ұзақ байланыс қашықтығына ие және негізінен IoT терминалдары арасындағы өзара байланыс немесе хостпен мәліметтер алмасу үшін қолданылады. Нарықта RFM96W сияқты көптеген LoRa модульдері бар, ол өте кіші 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 радио модулі LoRa түйіні ретінде біз температура мен ылғалдылық туралы ақпаратты шлюзге жіберу үшін қолданамыз.

(Бұл WiKi Maduino Lora радиосын қалай пайдалану керектігін және деректерді жіберу мен қабылдауды ұсынады)

3 -қадам: түйін мен сенсордың қосылуы

Түйін мен сенсордың қосылуы
Түйін мен сенсордың қосылуы
Түйін мен сенсордың қосылуы
Түйін мен сенсордың қосылуы

DHT11 VCC және GND 3V3 және GND Maduino -ға қосылған, ал DATA түйрегіші D4 Maduino -ға қосылған.

0 -торап саябақта, 1 -түйін компанияның жанындағы кеңсе ғимаратында, олар бір -бірінен шамамен 2 км қашықтықта орналасқан, содан кейін мен олардың температурасы мен ылғалдылығын үйде білемін.

4 -қадам: Деректерді шлюзге жіберіңіз

TransmitterDHT11.ino жүктеп алыңыз, оны Arduino IDE -де ашыңыз.

Түйінді қосқанда, сәйкесінше түйін нөмірін өзгертіңіз. Мысалы, енді 2 түйінді қолданыңыз, бағдарламаны іске қосу үшін түйінді = 0 өзгерту үшін бірінші түйін, бағдарламаны іске қосу үшін түйінді = 1 өзгерту үшін екінші түйін және т.б., сіз басқа түйін қосуға болады.

int16_t packetnum = 0; // пакеттік есептегіш, біз бір жіберілімге көбейеміз

int16_t түйін = 0; // Түйін нөмірін өзгертіңіз

Деректерді жинап, басып шығарыңыз

Жолдық хабар = «#»+(Жол) түйін+«Ылғалдылық:»+(Жол) ылғалдылық+«% Температура:»+(Жол) температура+«С»+«сан:»+(Жол) пакеттік нөмірі; 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,00С саны: 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 () тырысыңыз: length = len (пайдалы жүктеме) -1 myStr = str ((жүктеме [4: ұзындық]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(length1+1):(length1+6)] myNum2 = myStr [(length1+20):(length1+25)] басып шығару («*** Алынған хабар *** / n {}». format (пайдалы жүктеме)) if config_lora. IS_LORA_OLED: lora.show_packet ((«{}». формат (жүктеме [4: ұзындық])), rssi) егер wlan.isconnected (): жаһандық msgCount басып шығару ('Желіге жіберілуде…') 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 түйіні == 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 арнасын жасау үшін New Channel түймесін басыңыз.
  3. Енгізу аты, сипаттамасы, 1 -өрісті таңдаңыз. Содан кейін арнаны төменгі жағына сақтаңыз.
  4. API кілттері опциясын басыңыз, API кілтін көшіріңіз, біз оны бағдарламада қолданамыз.

10 -қадам: Нәтиже

Нәтиже
Нәтиже
Нәтиже
Нәтиже
Нәтиже
Нәтиже

0 және 1 түйіннің мәліметтерін экранда көруге болады, бірақ олардың арақашықтығы 2 шақырым.

ThingSpeak есептік жазбаңызға кіріңіз және сіз жасаған арнаны басыңыз, сіз жүктелген температура мен ылғалдылық туралы деректерді көре аласыз.

Өріс1 графасы мен өріс2 графикасы - бұл Lora 0 түйінінің ылғалдылығы мен температуралық деректері, ал өріс3 графигі мен өріс4 графигі - Лора 1 түйінінің ылғалдылығы мен температуралық мәліметтері.

Ұсынылған: