Sisällysluettelo:
- Vaihe 1: Tarvittavat komponentit
- Vaihe 2: Tarvittavien kirjastojen asennus
- Vaihe 3: ESP32 LoRa Thingspeak Gateway
- Vaihe 4: ESP32 LoRa -anturisolmu
- Vaihe 5: Asetuspuheen määrittäminen
- Vaihe 6: Yhdyskäytäväkoodi
- Vaihe 7: Anturisolmukoodi
- Vaihe 8: Tarkkaile Thingspeak -palvelimen tietoja
- Vaihe 9: Viitteet
Video: ESP32 Lora Thingspeak Gateway anturisolmulla: 9 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Tässä IoT -projektissa suunnittelin ESP32 LoRa Gatewayn ja myös ESP32 LoRa -anturisolmun seuraamaan anturin lukemaa langattomasti muutaman kilometrin etäisyydeltä. Lähettäjä lukee kosteus- ja lämpötilatiedot DHT11 -anturin avulla. Sitten se lähettää tiedot LoRa -radion kautta. Vastaanotinmoduuli vastaanottaa tiedot. Vastaanotin lähettää tiedot tietyn ajan kuluttua Thingspeak Serverille.
Vaihe 1: Tarvittavat komponentit
1. ESP32 -kortti - 2
2. Lora -moduuli SX1278/SX1276
3. DHT11 -kosteuslämpötila -anturi
4. Leipälauta
5. Hyppyjohtojen liittäminen
Vaihe 2: Tarvittavien kirjastojen asennus
Meidän on ensin asennettava erilaisia kirjastoja:
1. DHT11 -kirjasto
2. LoRa -kirjasto
Vaihe 3: ESP32 LoRa Thingspeak Gateway
Katsotaanpa nyt lähetin- ja vastaanotinpiiriä ESP32 LoRa -yhdyskäytävän ja anturisolmun rakentamiseksi. Kokosin molemmat piirilevyt leipälaudalle. Voit tehdä sen PCB: lle, jos haluat.
Tässä on ESP32 LoRa -moduuli SX1278 -yhdyskäytäväpiiri. Tämä osa toimii vastaanottimena. Kosteus- ja lämpötilatiedot vastaanotetaan LoRa -radion avulla ja ladataan Thingspeak -palvelimelle.
Vaihe 4: ESP32 LoRa -anturisolmu
Tässä on ESP32 LoRa -anturisolupiiri, jossa on DHT11 -anturi. Tämä osa toimii lähettimenä. Kosteus- ja lämpötilatiedot luetaan DHT11 -kosteuslämpötila -anturilla ja lähetetään LoRa -radion avulla.
Vaihe 5: Asetuspuheen määrittäminen
Jotta voit seurata Thingspeak -palvelimen anturitietoja, sinun on ensin määritettävä Thingspeak. Asenna Thingspeak -palvelin osoitteessa https://thingspeak.com/. Luo tili tai kirjaudu sisään, jos loit tilin aiemmin. Luo sitten uusi kanava, jossa on seuraavat tiedot.
Vaihe 6: Yhdyskäytäväkoodi
#sisältää
// LoRa -kirjastot #include #include // määrittele LoRa -lähetin -vastaanotinmoduulin käyttämät nastat #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 Aasiassa, 866E6 Euroopassa, 915E6 Pohjois -Amerikassa // Korvaa verkkotunnuksillasi String apiKey = "14K8UL2QEK8BTHN6"; // Kirjoita Write API -avaimesi ThingSpeakista const char *ssid = "Wifi SSID"; // korvaa wifi -palvelimellasi ja wpa2 -avaimellasi const char *password = "Password"; const char* palvelin = "api.thingspeak.com"; WiFiClient -asiakas; // Alusta muuttujat LoRa -tietojen hakemiseksi ja tallentamiseksi int rssi; Merkkijono loRaMessage; Merkkijonon lämpötila; String kosteus; Merkkijonon lukeminenID; // Korvaa paikkamerkin DHT -arvoilla String -prosessori (const String & var) {//Serial.println(var); if (var == "TEMPERATURE") {paluulämpötila; } else if (var == "KOSTEUS") {paluu kosteus; } else if (var == "RRSI") {return String (rssi); } palautusmerkkijono (); } void setup () {Serial.begin (115200); int laskuri; // LoRa -lähetinvastaanotinmoduulin asennus LoRa.setPins (ss, rst, dio0); // Asenna LoRa -lähetinvastaanotinmoduuli, kun (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); laskuri ++; viive (2000); } if (laskuri == 10) {// Lisää lukutunnusta jokaisella uudella Serial.println -lukemalla ("LoRan käynnistäminen epäonnistui!"); } Serial.println ("LoRan alustus OK!"); viive (2000); // Yhdistä Wi-Fi-verkkoon SSID: llä ja salasanalla Serial.print ("Yhdistäminen"); Sarja.println (ssid); WiFi.begin (ssid, salasana); while (WiFi.status ()! = WL_CONNECTED) {delay (2000); Serial.print ("."); } // Tulosta paikallinen IP -osoite ja käynnistä verkkopalvelin Serial.println (""); Serial.println ("WiFi kytketty."); Serial.println ("IP -osoite:"); Serial.println (WiFi.localIP ()); } // Lue LoRa -paketti ja hanki anturin lukemat void loop () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print ("Lora -paketti vastaanotettu:"); while (LoRa.available ()) // Lue paketti {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); readID = LoRaData.substring (0, pos1); // Hae lukuID lämpötila = LoRaData.substring (pos1 +1, pos2); // Hae lämpötila kosteus = LoRaData.substring (pos2+1, LoRaData.length ()); // Hanki kosteus} rssi = LoRa.packetRssi (); // Hae RSSI Serial.print ("RSSI: n kanssa"); Sarja.println (rssi); } if (client.connect (palvelin, 80)) // "184.106.153.149" tai api.thingspeak.com {String postStr = apiKey; postStr += "& field1 ="; postStr += Jono (lukuID); postStr += "& field2 ="; postStr += Merkkijono (lämpötila); postStr += "& field3 ="; postStr += Merkkijono (kosteus); postStr += "& field4 ="; postStr += Jono (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /päivitä HTTP /1.1 / n"); client.print ("Isäntä: api.thingspeak.com / n"); client.print ("Yhteys: sulje / 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); } // viive (30000); }
Vaihe 7: Anturisolmukoodi
#sisältää
#include // LoRa -kirjastot #include "DHT.h" #define DHTPIN 4 // pin, johon dht11 on kytketty DHT dht (DHTPIN, DHT11); // määrittele LoRa -lähetinvastaanotinmoduulin käyttämät nastat #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 Aasiassa, 866E6 Euroopassa, 915E6 Pohjois -Amerikassa // pakettilaskuri int readingID = 0; int laskuri = 0; Jono LoRaMessage = ""; kellukkeen lämpötila = 0; kellukkeen kosteus = 0; // Alusta LoRa -moduuli void startLoRA () {LoRa.setPins (ss, rst, dio0); // Asenna LoRa -lähetinvastaanotinmoduuli, kun (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); laskuri ++; viive (500); } if (laskuri == 10) {// Lisää lukutunnusta jokaisella uudella lukemalla ID ++; Serial.println ("LoRan käynnistys epäonnistui!"); } Serial.println ("LoRan alustus OK!"); viive (2000); } void startDHT () {if (isnan (kosteus) || isnan (lämpötila)) {Serial.println ("DHT -anturin lukeminen epäonnistui!"); palata; }} void getReadings () {kosteus = dht.readHumidity (); lämpötila = dht.readTemperature (); Serial.print (F ("Kosteus:")); Sarjajälki (kosteus); Sarjajälki (F ("% lämpötila:")); Sarjajälki (lämpötila); Sarja.println (F ("° C")); } void sendReadings () {LoRaMessage = Jono (lukuID) + "/" + Jono (lämpötila) + "&" + Jono (kosteus); // Lähetä LoRa -paketti vastaanottimelle LoRa.beginPacket (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Lähetyspaketti:"); Serial.println (luku ID); lukuID ++; Serial.println (LoRaMessage); } void setup () {// alustaa Serial Monitor Serial.begin (115200); dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); viive (500); }
Vaihe 8: Tarkkaile Thingspeak -palvelimen tietoja
Kun koodi on ladattu, voit avata sarjamonitorin sekä yhdyskäytävän että anturisolmun piirissä. Lähetät ja vastaanotat tiedot, jos koodi on oikea. Nyt voit vierailla Thingspeakin yksityisessä näkymässä. Siellä näet paketin numeron, lämpötilan, kosteuden ja yhdyskäytävän tiedot 15 sekunnin kuluttua.
Vaihe 9: Viitteet
1.
2.
Suositeltava:
MuMo - LoRa Gateway: 25 vaihetta (kuvilla)
MuMo-LoRa Gateway: ### UPDATE 10.3.2021 // uusimmat tiedot/päivitykset ovat saatavilla github-sivulla: https: //github.com/MoMu-Antwerp/MuMo Mikä on MuMo? MuMo on yhteistyö tuotekehitys (Antwerpenin yliopiston laitos)
Lora Gateway (Dragino LG01-P): 6 vaihetta
Lora Gateway (Dragino LG01-P): LoRa on punainen LPWAN, joka on siglas en inglés (LOW POWER WIDE AREA NETWORK). Tämä on punainen de largo -alcance ja bajo consumo de energyía, ihanteellinen IoT: n sijoittamiseen. Entre las aplicaciones más comunes se encuentran; Ciudades inteligentes, Agricultur
LoRa Gateway ESP8266 Arduino DIY: 5 vaihetta
LoRa Gateway ESP8266 Arduino DIY: Tämä ohje auttaa sinua luomaan The World -yhteensopivan LoRa -yhdyskäytävän kaikille maailman alueille käyttämällä ESP8266: a yhdessä RFM95/96 -radiomoduulin kanssa. Mukana on myös lähdekoodi sen toimimiseksi, ja sen mukana tulee integroitu
Lora Gateway perustuu MicroPython ESP32: 10 askelta (kuvilla)
Lora Gateway perustuu MicroPython ESP32: Lora on ollut erittäin suosittu viime vuosina. Tätä tekniikkaa käyttävä langaton viestintämoduuli on yleensä halpa (käyttäen vapaata taajuutta), pieni, energiatehokas ja sillä on pitkä tiedonsiirtoetäisyys, ja sitä käytetään pääasiassa keskinäiseen viestintään
15 $ LoRa Gateway/Node ESP8266 Rakenna piirilevy 3cmX8cm Koko: 6 vaihetta
15 $ LoRa Gateway/Node ESP8266 Rakenna piirilevy 3cmX8cm Koko: Hei, mitä kuuluu, kaverit? Akarsh täällä CETechistä. Tänään aiomme tehdä projektin, joka on yksinkertainen LoRa -solmu ja voit jopa käyttää sitä yhden kanavan yhdyskäytävänä. Tässä käyttämäni mikro -ohjain on ESR8266, joka on kytketty LoRa -kortteihin