ESP32 сенсорлық торабы бар Lora Thingspeak шлюзі: 9 қадам
ESP32 сенсорлық торабы бар Lora Thingspeak шлюзі: 9 қадам
Anonim
Сенсорлық торабы бар ESP32 Lora Thingspeak шлюзі
Сенсорлық торабы бар ESP32 Lora Thingspeak шлюзі

Бұл IoT жобасында мен ESP32 LoRa шлюзі мен ESP32 LoRa сенсорлық түйінін сенсордың оқуын бірнеше шақырым қашықтықтан сымсыз бақылау үшін жасадым. Жіберуші DHT11 Sensor көмегімен ылғалдылық пен температура туралы ақпаратты оқиды. Содан кейін ол LoRa Radio арқылы деректерді жібереді. Деректерді қабылдау модулі қабылдайды. Содан кейін қабылдағыш мәліметтерді Thingspeak Server -ге белгілі бір аралықтан кейін жібереді.

1 -қадам: Қажетті компоненттер

1. ESP32 тақтасы - 2

2. Lora модулі SX1278/SX1276

3. DHT11 ылғалдылық температурасы сенсоры

4. Нан тақтасы

5. Өткізгіш сымдарды қосу

2 -қадам: Қажетті кітапханаларды орнату

Алдымен біз әр түрлі кітапханаларды орнатуымыз керек:

1. DHT11 кітапханасы

2. LoRa кітапханасы

3 -қадам: ESP32 LoRa Thingspeak шлюзі

ESP32 LoRa Thingspeak шлюзі
ESP32 LoRa Thingspeak шлюзі
ESP32 LoRa Thingspeak шлюзі
ESP32 LoRa Thingspeak шлюзі

Енді ESP32 LoRa шлюзі мен сенсорлық түйінді құруға арналған жіберуші мен қабылдағыш схемасын көрейік. Мен схеманы екеуін де тақтаға жинадым. Қаласаңыз, оны ПХД -да жасай аласыз.

Міне, ESP32 LoRa модулі SX1278 шлюзінің схемасы. Бұл бөлім қабылдағыш ретінде жұмыс істейді. Ылғалдылық пен температура туралы мәліметтер LoRa Radio көмегімен қабылданады және Thingspeak Server -ге жүктеледі.

4 -қадам: ESP32 LoRa сенсорлық торабы

ESP32 LoRa сенсорлық торабы
ESP32 LoRa сенсорлық торабы
ESP32 LoRa сенсорлық торабы
ESP32 LoRa сенсорлық торабы

Мұнда DHT11 сенсоры бар ESP32 LoRa сенсорлық түйін тізбегі. Бұл бөлік таратқыш ретінде жұмыс істейді. Ылғалдылық пен температура туралы мәліметтерді DHT11 ылғалдылық температурасы сенсоры оқиды және LoRa радиосының көмегімен жібереді.

5 -қадам: Thingspeak бағдарламасын орнату

Thingspeak орнату
Thingspeak орнату

Thingspeak серверіндегі сенсорлық деректерді бақылау үшін алдымен Thingspeak параметрлерін орнату қажет. Thingspeak серверін орнату үшін https://thingspeak.com/ сайтына кіріңіз. Есептік жазба жасаңыз немесе есептік жазбаны бұрын жасаған болсаңыз, жүйеге кіріңіз. Содан кейін келесі мәліметтермен жаңа арна жасаңыз.

6 -қадам: шлюз коды

#қосу

// LoRa кітапханалары #include #include // LoRa трансивер модулі қолданатын түйреуіштерді анықтаңыз #define ss 5 #define rst 14 #define dio0 2 #deandine BAND 433E6 // 433E6 Азия үшін, Еуропа үшін 866E6, Солтүстік Америка үшін 915E6 // Желі тіркелгі деректерімен алмастырыңыз String apiKey = «14K8UL2QEK8BTHN6»; // ThingSpeak const char *ssid = «Wifi SSID» ішінен Write API кілтін енгізіңіз; // wifi ssid және wpa2 key const char *password = «Password» арқылы ауыстырыңыз; const char* server = «api.thingspeak.com»; WiFiClient клиенті; // LoRa деректерін int rssi алу және сақтау үшін айнымалыларды инициализациялаңыз; LoRaMessage жолы; Жолдың температурасы; Жолдың ылғалдылығы; Жолды оқу ID; // Толтырғышты DHT мәндерімен ауыстырады String процессоры (const String & var) {//Serial.println(var); if (var == «TEMPERATURE») {қайтару температурасы; } else if (var == «HUMIDITY») {қайтаратын ылғалдылық; } else if (var == «RRSI») {return String (rssi); } String () қайтару; } void setup () {Serial.begin (115200); int санауыш; // LoRa қабылдағыш модулін орнату LoRa.setPins (ss, rst, dio0); // LoRa қабылдағыш модулін орнату кезінде (! LoRa.begin (BAND) && counter <10) {Serial.print («.»); есептегіш ++; кешіктіру (2000); } if (counter == 10) {// Serial.println («LoRa -ны іске қосу сәтсіз болды!») әрбір жаңа оқылымда оқуды ұлғайту; } Serial.println («LoRa инициализациясы жақсы!»); кешіктіру (2000); // SSID және Serial.print паролімен Wi-Fi желісіне қосылыңыз («Қосылу»); Serial.println (ssid); WiFi.begin (ssid, құпия сөз); while (WiFi.status ()! = WL_CONNECTED) {delay (2000); Serial.print («.»); } // Жергілікті IP -адресті басып шығарыңыз және Serial.println («») веб -серверін іске қосыңыз; Serial.println («WiFi қосылған.»); Serial.println («IP мекенжайы:»); Serial.println (WiFi.localIP ()); } // LoRa пакетін оқыңыз және датчиктің оқуларының void циклін алыңыз () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print («Lora пакеті алынды:»); while (LoRa.available ()) // Пакетті оқу {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); readID = LoRaData.substring (0, pos1); // ReadID температурасын алу = LoRaData.substring (pos1 +1, pos2); // Температураның ылғалдылығын алу = LoRaData.substring (pos2+1, LoRaData.length ()); // Ылғалдылықты алу} rssi = LoRa.packetRssi (); // RSSI Serial.print алу («RSSI көмегімен»); Serial.println (rssi); } if (client.connect (сервер, 80)) // «184.106.153.149» немесе api.thingspeak.com {String postStr = apiKey; postStr += «& field1 =»; postStr += Жол (оқу ID); postStr += «& field2 =»; postStr += Жол (температура); postStr += «& field3 =»; postStr += Жол (ылғалдылық); postStr += «& field4 =»; postStr += Жол (rssi); postStr += «\ r / n / r / n / r / n / r / n»; client.print («POST /HTTP жаңарту /1.1 / n»); client.print («Хост: api.thingspeak.com / n»); client.print («Байланыс: жабу / n»); client.print («X-THINGSPEAKAPIKEY:» + apiKey + «\ n»); client.print («Content-Type: application/x-www-form-urlencoded / n»); client.print («Content-Length:»); client.print (postStr.length ()); client.print («\ n / n»); client.print (postStr); } // кешіктіру (30000); }

7 -қадам: сенсорлық түйін коды

#қосу

#include // LoRa үшін кітапханалар #«DHT.h» қосу #DHTPIN 4 анықтаңыз // dht11 DHT dht (DHTPIN, DHT11) қосылған түйреуіш; // LoRa трансивер модулі пайдаланатын түйреуіштерді анықтаңыз #define ss 5 #define rst 14 #define dio0 2 #deandine BAND 433E6 // 433E6 Азия үшін, Еуропа үшін 866E6, Солтүстік Америка үшін 915E6 // packet counter int readingID = 0; int есептегіш = 0; LoRaMessage жолы = «»; қалқу температурасы = 0; қалқыма ылғалдылығы = 0; // LoLa модулін іске қосу void startLoRA () {LoRa.setPins (ss, rst, dio0); // LoRa қабылдағыш модулін орнату кезінде (! LoRa.begin (BAND) && counter <10) {Serial.print («.»); есептегіш ++; кешіктіру (500); } if (counter == 10) {// Әрбір жаңа оқылымда IDID ұлғайтуID ++; Serial.println («LoRa іске қосылмады!»); } Serial.println («LoRa инициализациясы жақсы!»); кешіктіру (2000); } void startDHT () {if (isnan (ылғалдылық) || isnan (температура)) {Serial.println («DHT сенсорынан оқу мүмкін болмады!»); қайтару; }} void getReadings () {ылғалдылық = dht.readHumidity (); температура = dht.readTemperature (); Serial.print (F («Ылғалдылық:»)); Сериялық баспа (ылғалдылық); Serial.print (F («% Температура:»)); Сериялық баспа (температура); Serial.println (F («° C»)); } void sendReadings () {LoRaMessage = Жол (оқу ID) + «/» + Жол (температура) + «&» + Жол (ылғалдылық); // LoRa пакетін LoRa.beginPacket қабылдағышқа жіберу (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print («Пакет жіберілуде:»); Serial.println (оқу ID); оқу ID ++; Serial.println (LoRaMessage); } void setup () {// Serial Monitor Serial.begin (115200) инициализациялау; dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); кешіктіру (500); }

8 -қадам: Thingspeak серверіндегі деректерді бақылау

Thingspeak серверіндегі деректерді бақылау
Thingspeak серверіндегі деректерді бақылау
Thingspeak серверіндегі деректерді бақылау
Thingspeak серверіндегі деректерді бақылау

Код жүктелгеннен кейін сіз шлюз мен сенсор түйіндерінің тізбегіндегі сериялық мониторды аша аласыз. Егер код дұрыс болса, сіз деректерді жібересіз және қабылдайсыз. Енді сіз Thingspeak Private View сайтына кіре аласыз. Онда сіз пакет нөмірі, температура, ылғалдылық және шлюз туралы деректерді 15 секундтан кейін жүктелгенін көре аласыз.

9 -қадам: Әдебиеттер

1.

2.

Ұсынылған: