Orodha ya maudhui:

Lango la ESP32 Lora Thingspeak na Node ya Sensorer: Hatua 9
Lango la ESP32 Lora Thingspeak na Node ya Sensorer: Hatua 9

Video: Lango la ESP32 Lora Thingspeak na Node ya Sensorer: Hatua 9

Video: Lango la ESP32 Lora Thingspeak na Node ya Sensorer: Hatua 9
Video: Знакомство с платой разработки Heltec LoRa CubeCell HTCC-AB01 2024, Novemba
Anonim
Lango la ESP32 Lora Thingspeak na Node ya Sensorer
Lango la ESP32 Lora Thingspeak na Node ya Sensorer

katika Mradi huu wa IoT, nilibuni ESP32 LoRa Gateway na pia ESP32 LoRa Sensor Node kufuatilia kusoma kwa sensorer bila waya kutoka umbali wa kilomita chache. Mtumaji atasoma unyevu na data ya joto kwa kutumia Sensorer ya DHT11. Halafu inasambaza data kupitia Radi ya LoRa. Takwimu zinapokelewa na moduli ya mpokeaji. Mpokeaji kisha atatuma data hiyo kwa seva ya Thingspeak baada ya muda fulani.

Hatua ya 1: Vipengele vinahitajika

1. Bodi ya ESP32 - 2

2. Moduli ya Lora SX1278 / SX1276

3. Sensorer ya joto ya unyevu wa DHT11

4. Bodi ya mkate

5. Kuunganisha waya za Jumper

Hatua ya 2: Kufunga Maktaba Inayohitajika

Tunahitaji kufunga maktaba tofauti kwanza:

1. Maktaba ya DHT11

2. Maktaba ya LoRa

Hatua ya 3: ESP32 LoRa Thingspeak Gateway

Lango la ESP32 LoRa Thingspeak
Lango la ESP32 LoRa Thingspeak
Lango la ESP32 LoRa Thingspeak
Lango la ESP32 LoRa Thingspeak

Sasa wacha tuone mzunguko wa mtumaji na mpokeaji wa kujenga ESP32 LoRa Gateway & Node ya Sensor. Nilikusanya mzunguko wote kwenye ubao wa mkate. Unaweza kuifanya kwenye PCB ikiwa unataka.

Hapa kuna Mzunguko wa Lango la ESP32 LoRa SX1278. Sehemu hii inafanya kazi kama Mpokeaji. Takwimu za unyevu na joto hupokelewa kwa kutumia Radi ya LoRa na kupakiwa kwenye seva ya Thingspeak.

Hatua ya 4: Node ya Sensor ya ER32 ya ESP32

Node ya Sensorer ya ESP32
Node ya Sensorer ya ESP32
Node ya Sensorer ya ESP32
Node ya Sensorer ya ESP32

Hapa kuna Mzunguko wa Node ya Sura ya ESP32 na Sense ya DHT11. Sehemu hii inafanya kazi kama mpitishaji. Takwimu za unyevu na joto husomwa na Sensor ya Joto la unyevu wa DHT11 na hupitishwa kwa kutumia Radi ya LoRa.

Hatua ya 5: Kuanzisha Mambo ya Kusema

Kuanzisha Mazungumzo
Kuanzisha Mazungumzo

Ili Kufuatilia Takwimu za Sensorer kwenye Seva ya Thingspeak, unahitaji kwanza kuanzisha Usanifu. Kuanzisha Seva ya Thingspeak, tembelea https://thingspeak.com/. Unda akaunti au ingia tu ikiwa umeunda akaunti mapema. Kisha unda kituo kipya na maelezo yafuatayo.

Hatua ya 6: Nambari ya lango

# pamoja

// Maktaba za LoRa # pamoja na # pamoja # kufafanua pini zinazotumiwa na moduli ya transceiver ya LoRa #fafanua ss 5 #fafanua rst 14 #fafanua dio0 2 #fafanua BAND 433E6 // 433E6 kwa Asia, 866E6 kwa Ulaya, 915E6 kwa Amerika ya Kaskazini // Badilisha na sifa za mtandao wako String apiKey = "14K8UL2QEK8BTHN6"; // Ingiza kitufe chako cha Andika API kutoka ThingSpeak const char * ssid = "Wifi SSID"; // badilisha na wifi ssid yako na wpa2 key const char * password = "Nenosiri"; const char * server = "api.thingspeak.com"; Mteja wa Wateja wa WiFi; // Anzisha vigezo kupata na kuhifadhi data ya LoRa int rssi; Kamba ya loRaMessage; Joto la kamba; Unyevu wa kamba; Kusoma kwa kamba; // Inachukua nafasi ya mmiliki wa nafasi na maadili ya DHT Kichakataji cha Kamba (const String & var) {//Serial.println(var); ikiwa (var == "TEMPERATURE") {joto la kurudi; } kingine ikiwa (var == "HUMIDITY") {kurudi unyevu; } kingine ikiwa (var == "RRSI") {Return String (rssi); } Rudisha Kamba (); } usanidi batili () {Serial.begin (115200); int counter; // kuanzisha moduli ya transceiver ya LoRa LoRa.setPins (ss, rst, dio0); // kuanzisha moduli ya transceiver ya LoRa wakati (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); kaunta ++; kuchelewa (2000); } ikiwa (counter == 10) {// Kuongeza kusoma kwa kila kusoma mpya Serial.println ("Kuanzisha LoRa imeshindwa!"); } Serial.println ("Uanzishaji wa LoRa Sawa!"); kuchelewa (2000); // Unganisha kwenye mtandao wa Wi-Fi na SSID na nenosiri Serial.print ("Kuunganisha kwa"); Serial.println (ssid); Kuanza kwa WiFi (ssid, password); wakati (WiFi.status ()! = WL_CONNECTED) {kuchelewesha (2000); Printa ya serial ("."); } // Chapisha anwani ya IP ya ndani na uanze seva ya wavuti Serial.println (""); Serial.println ("WiFi imeunganishwa."); Serial.println ("Anwani ya IP:"); Serial.println (WiFi.localIP ()); } // Soma pakiti ya LoRa na upate usomaji wa sensa utupu wa kitanzi () {int packetSize = LoRa.parsePacket (); ikiwa (packetSize) {Serial.print ("pakiti ya Lora imepokea:"); wakati (LoRa haipatikani ()) // Soma pakiti {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); kusomaID = LoRaData.substring (0, pos1); // Pata joto la kusomaID = LoRaData.substring (pos1 1, pos2); // Pata unyevu wa joto = LoRaData.substring (pos2 + 1, LoRaData.length ()); // Pata unyevu} rssi = LoRa.packetRssi (); // Pata RSSI Serial.print ("na RSSI"); Serial.println (rssi); } ikiwa (mteja.connect (seva, 80)) // "184.106.153.149" au api.thingspeak.com {String postStr = apiKey; postStr + = "& uwanja1 ="; postStr + = Kamba (kusomaID); postStr + = "& shamba2 ="; postStr + = Kamba (joto); postStr + = "& uwanja3 ="; postStr + = Kamba (unyevu); postStr + = "& uwanja4 ="; postStr + = Kamba (rssi); postStr + = "\ r / n / r / n / r / n / r / n"; alama ya mteja ("POST / sasisha HTTP / 1.1 / n"); mteja.print ("Mwenyeji: api.thingspeak.com / n"); alama ya mteja ("Uunganisho: funga / n"); alama ya mteja ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); mteja.print ("Aina ya Maudhui: matumizi / x-www-form-urlencoded / n"); alama ya mteja ("Urefu wa Yaliyomo:"); alama ya mteja (postStr.length ()); alama ya mteja ("\ n / n"); alama ya mteja (postStr); } // kuchelewa (30000); }

Hatua ya 7: Nambari ya Nambari ya Sensorer

# pamoja

# pamoja na // Maktaba za LoRa # pamoja na "DHT.h" #fafanua DHTPIN 4 // pini ambapo dht11 imeunganishwa DHT dht (DHTPIN, DHT11); // fafanua pini zinazotumiwa na moduli ya transceiver ya LoRa #fafanua ss 5 #fasili rst 14 #fafanua dio0 2 #fafanua BAND 433E6 // 433E6 kwa Asia, 866E6 kwa Ulaya, 915E6 kwa Amerika ya Kaskazini // pakiti ya kukabiliana na kusomaID = 0; int counter = 0; Kamba ya LoRaMessage = ""; joto la kuelea = 0; unyevu wa kuelea = 0; // Anzisha moduli ya LoRa batili startLoRA () {LoRa.setPins (ss, rst, dio0); // kuanzisha moduli ya transceiver ya LoRa wakati (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); kaunta ++; kuchelewesha (500); } ikiwa (counter == 10) {// Kuongeza kusoma kwa kila kusoma kwa kusomaID ++; Serial.println ("Kuanzia LoRa imeshindwa!"); } Serial.println ("Uanzishaji wa LoRa Sawa!"); kuchelewa (2000); } kuanza batiliDHT () {if (isnan (humidity) || isnan (joto)) {Serial.println ("Imeshindwa kusoma kutoka kwa sensorer ya DHT!"); kurudi; }} utupu wa kusoma () {unyevu = dht.readHumidity (); joto = dht. soma Joto (); Printa ya serial (F ("Unyevu:")); Printa ya serial (unyevu); Serial.print (F ("% Joto:")); Printa ya serial (joto); Serial.println (F ("° C")); } batili sendReadings () {LoRaMessage = Kamba (kusomaID) + "/" + Kamba (joto) + "&" + Kamba (unyevu); // Tuma pakiti ya LoRa kwa mpokeaji LoRa.beginPacket (); Printa ya LoRa (LoRaMessage); LoRa.endPacket (); Serial.print ("Kutuma pakiti:"); Serial.println (kusomaID); kusomaID ++; Serial.println (LoRaMessage); } kuanzisha batili () {// kuanzisha Serial Monitor Serial.begin (115200); kuanza (); AnzaDHT (); AnzaLoRA (); } kitanzi batili () {getReadings (); tumaSoma (); kuchelewesha (500); }

Hatua ya 8: Fuatilia Takwimu kwenye Seva ya Thingspeak

Fuatilia Takwimu kwenye Seva ya Thingspeak
Fuatilia Takwimu kwenye Seva ya Thingspeak
Fuatilia Takwimu kwenye Seva ya Thingspeak
Fuatilia Takwimu kwenye Seva ya Thingspeak

Mara tu nambari imepakiwa, unaweza kufungua Monitor Monitor kwa wote Mzunguko wa Lango na Sura ya Sura. Utatuma data na kupokea ikiwa nambari ni sahihi. Sasa unaweza kutembelea Mtazamo wa Kibinafsi wa Thingspeak. Huko unaweza kuona data ya Nambari ya Pakiti, Joto, Unyevu na Lango limepakiwa baada ya muda wa sekunde 15.

Hatua ya 9: Marejeleo

1.

2.

Ilipendekeza: