Πίνακας περιεχομένων:
- Βήμα 1: Απαιτούνται εξαρτήματα
- Βήμα 2: Εγκατάσταση των απαιτούμενων βιβλιοθηκών
- Βήμα 3: ESP32 LoRa Thingspeak Gateway
- Βήμα 4: Κόμβος αισθητήρα ESP32 LoRa
- Βήμα 5: Ρύθμιση του Thingspeak
- Βήμα 6: Κωδικός πύλης
- Βήμα 7: Κωδικός κόμβου αισθητήρα
- Βήμα 8: Παρακολούθηση δεδομένων στον διακομιστή Thingspeak
- Βήμα 9: Αναφορές
Βίντεο: ESP32 Lora Thingspeak Gateway With Sensor Node: 9 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:33
σε αυτό το έργο IoT, σχεδίασα το ESP32 LoRa Gateway & επίσης το ESP32 LoRa Sensor Node για να παρακολουθώ τον αισθητήρα να διαβάζει ασύρματα από αποστάσεις μερικών χιλιομέτρων. Ο αποστολέας θα διαβάσει τα δεδομένα υγρασίας και θερμοκρασίας χρησιμοποιώντας τον αισθητήρα DHT11. Στη συνέχεια μεταδίδει τα δεδομένα μέσω του LoRa Radio. Τα δεδομένα λαμβάνονται από τη μονάδα δέκτη. Στη συνέχεια, ο δέκτης θα στείλει τα δεδομένα στον διακομιστή Thingspeak μετά από ένα ορισμένο διάστημα.
Βήμα 1: Απαιτούνται εξαρτήματα
1. Πίνακας ESP32 - 2
2. Lora Module SX1278/SX1276
3. Αισθητήρας θερμοκρασίας υγρασίας DHT11
4. Breadboard
5. Σύνδεση καλωδίων βραχυκυκλωτήρα
Βήμα 2: Εγκατάσταση των απαιτούμενων βιβλιοθηκών
Πρέπει πρώτα να εγκαταστήσουμε διαφορετικές βιβλιοθήκες:
1. Βιβλιοθήκη DHT11
2. Βιβλιοθήκη LoRa
Βήμα 3: ESP32 LoRa Thingspeak Gateway
Τώρα ας δούμε το κύκλωμα αποστολέα και δέκτη για την κατασκευή του κόμβου ESP32 LoRa Gateway & Sensor. Συναρμολόγησα και τα δύο κυκλώματα σε μια σανίδα ψωμιού. Μπορείτε να το φτιάξετε σε PCB αν θέλετε.
Εδώ είναι ένα κύκλωμα πύλης ESP32 LoRa Module SX1278. Αυτό το μέρος λειτουργεί ως δέκτης. Τα δεδομένα υγρασίας και θερμοκρασίας λαμβάνονται μέσω του LoRa Radio και μεταφορτώνονται στον Thingspeak Server.
Βήμα 4: Κόμβος αισθητήρα ESP32 LoRa
Εδώ είναι ένα κύκλωμα κόμβου αισθητήρα ESP32 LoRa με αισθητήρα DHT11. Αυτό το μέρος λειτουργεί ως πομπός. Τα δεδομένα υγρασίας και θερμοκρασίας διαβάζονται από τον αισθητήρα θερμοκρασίας υγρασίας DHT11 και μεταδίδονται με χρήση του LoRa Radio.
Βήμα 5: Ρύθμιση του Thingspeak
Για να παρακολουθήσετε τα δεδομένα αισθητήρα στον διακομιστή Thingspeak, πρέπει πρώτα να ρυθμίσετε το Thingspeak. Για να ρυθμίσετε τον διακομιστή Thingspeak, επισκεφτείτε τη διεύθυνση https://thingspeak.com/. Δημιουργήστε έναν λογαριασμό ή απλώς συνδεθείτε εάν δημιουργήσατε τον λογαριασμό νωρίτερα. Στη συνέχεια, δημιουργήστε ένα νέο κανάλι με τις ακόλουθες λεπτομέρειες.
Βήμα 6: Κωδικός πύλης
#περιλαμβάνω
// Βιβλιοθήκες για LoRa #include #include // καθορίστε τις ακίδες που χρησιμοποιούνται από τη μονάδα πομποδέκτη LoRa #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 για την Ασία, 866E6 για την Ευρώπη, 915E6 για τη Βόρεια Αμερική // Αντικαταστήστε με τα διαπιστευτήρια δικτύου σας String apiKey = "14K8UL2QEK8BTHN6"; // Εισαγάγετε το κλειδί εγγραφής API από το ThingSpeak const char *ssid = "Wifi SSID"; // αντικαταστήστε με το wifi ssid και το κλειδί wpa2 const char *password = "Password"; const char* server = "api.thingspeak.com"; Πελάτης WiFiClient. // Αρχικοποίηση μεταβλητών για λήψη και αποθήκευση δεδομένων LoRa int rssi; Συμβολοσειρά loRaMessage; Θερμοκρασία συμβολοσειράς Υγρασία συμβολοσειράς String readID; // Αντικαθιστά το σύμβολο κράτησης θέσεων με τιμές DHT Επεξεργαστής συμβολοσειράς (const String & var) {//Serial.println(var); εάν (var == "ΘΕΡΜΟΚΡΑΣΙΑ") {θερμοκρασία επιστροφής? } else if (var == "ΥΓΡΑΣΙΑ") {επιστροφή υγρασίας? } else if (var == "RRSI") {return String (rssi); } επιστροφή συμβολοσειράς (); } void setup () {Serial.begin (115200); int counter? // setup LoRa module module LoRa.setPins (ss, rst, dio0); // setup LoRa module module while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); μετρητής ++; καθυστέρηση (2000). } if (counter == 10) {// Αύξηση αναγνωστικού αναγνωριστικού σε κάθε νέα ανάγνωση Serial.println ("Η εκκίνηση του LoRa απέτυχε!"); } Serial.println ("LoRa Initialization OK!"); καθυστέρηση (2000). // Σύνδεση σε δίκτυο Wi-Fi με SSID και κωδικό πρόσβασης Serial.print ("Σύνδεση σε"). Serial.println (ssid); WiFi.begin (ssid, κωδικός πρόσβασης); while (WiFi.status ()! = WL_CONNECTED) {καθυστέρηση (2000); Serial.print ("."); } // Εκτύπωση τοπικής διεύθυνσης IP και εκκίνηση διακομιστή ιστού Serial.println (""); Serial.println ("WiFi συνδεδεμένο."); Serial.println ("Διεύθυνση IP:"); Serial.println (WiFi.localIP ()); } // Διαβάστε το πακέτο LoRa και λάβετε τις ενδείξεις των αισθητήρων void loop () {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 ('&'); ανάγνωσηςID = LoRaData.substring (0, pos1); // Λάβετε θερμοκρασία αναγνώρισης = 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 += Συμβολοσειρά (αναγνωστικό αναγνωστικό); postStr += "& field2 ="; postStr += String (θερμοκρασία); postStr += "& field3 ="; postStr += String (υγρασία); postStr += "& field4 ="; postStr += String (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /ενημέρωση HTTP /1.1 / n"); client.print ("Host: api.thingspeak.com / n"); client.print ("Σύνδεση: κλείσιμο / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Τύπος περιεχομένου: application/x-www-form-urlencoded / n"); client.print ("Περιεχόμενο-Μήκος:"); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); } // καθυστέρηση (30000); }
Βήμα 7: Κωδικός κόμβου αισθητήρα
#περιλαμβάνω
#include // Βιβλιοθήκες για LoRa #include "DHT.h" #define DHTPIN 4 // pin όπου το dht11 είναι συνδεδεμένο DHT dht (DHTPIN, DHT11). // καθορίστε τις ακίδες που χρησιμοποιούνται από τη μονάδα πομποδέκτη LoRa #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 για την Ασία, 866E6 για την Ευρώπη, 915E6 για τη Βόρεια Αμερική // πακέτο μετρητή int ανάγνωση ID = 0; int counter = 0; String LoRaMessage = ""; θερμοκρασία πλωτήρα = 0; υγρασία επίπλευσης = 0; // Αρχικοποίηση λειτουργικής μονάδας LoRa void startLoRA () {LoRa.setPins (ss, rst, dio0); // setup LoRa module module while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); μετρητής ++; καθυστέρηση (500)? } if (μετρητής == 10) {// Αύξηση αναγνωστικού αναγνωριστικού σε κάθε νέα ανάγνωση ανάγνωσης ID ++; Serial.println ("Η εκκίνηση του LoRa απέτυχε!"); } Serial.println ("LoRa Initialization OK!"); καθυστέρηση (2000). } void startDHT () {if (isnan (υγρασία) || isnan (θερμοκρασία)) {Serial.println ("Η ανάγνωση από τον αισθητήρα DHT απέτυχε!"); ΕΠΙΣΤΡΟΦΗ; }} void getReadings () {υγρασία = dht.readHumidity (); θερμοκρασία = dht.readTemperature (); Serial.print (F ("Υγρασία:")); Serial.print (υγρασία)? Serial.print (F ("% Temperature:")); Serial.print (θερμοκρασία) Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = String (readID) + "/" + String (θερμοκρασία) + "&" + String (υγρασία); // Αποστολή πακέτου LoRa στον παραλήπτη LoRa.beginPacket (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Αποστολή πακέτου:"); Serial.println (αναγνωστικό αναγνωστικό); ανάγνωση ID ++; Serial.println (LoRaMessage); } void setup () {// αρχικοποίηση Serial Monitor Serial.begin (115200); dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); καθυστέρηση (500)? }
Βήμα 8: Παρακολούθηση δεδομένων στον διακομιστή Thingspeak
Μόλις μεταφορτωθεί ο κώδικας, μπορείτε να ανοίξετε τη Σειριακή οθόνη στο κύκλωμα Gateway & Sensor Node Circuit. Θα στείλετε και θα λάβετε δεδομένα εάν ο κωδικός είναι σωστός. Τώρα μπορείτε να επισκεφθείτε το Thingspeak Private View. Εκεί μπορείτε να δείτε τα δεδομένα για τον αριθμό πακέτου, τη θερμοκρασία, την υγρασία και την πύλη που μεταφορτώνονται μετά από ένα διάστημα 15 δευτερολέπτων.
Βήμα 9: Αναφορές
1.
2.
Συνιστάται:
MuMo - LoRa Gateway: 25 βήματα (με εικόνες)
MuMo-LoRa Gateway: ### UPDATE 10-03-2021 // οι τελευταίες πληροφορίες/ενημερώσεις θα είναι διαθέσιμες στη σελίδα github: https: //github.com/MoMu-Antwerp/MuMoΤι είναι το MuMo; Το MuMo είναι μια συνεργασία μεταξύ ανάπτυξη προϊόντων (τμήμα του Πανεπιστημίου της Αμβέρσας) στο πλαίσιο
LoRa Gateway ESP8266 Arduino DIY: 5 Βήματα
LoRa Gateway ESP8266 Arduino DIY: Αυτό το εκπαιδευτικό θα σας βοηθήσει να δημιουργήσετε μια LoRa Gateway συμβατή με το The Things Network, για όλες τις περιοχές του κόσμου, χρησιμοποιώντας ένα ESP8266 μαζί με μια ραδιοφωνική μονάδα RFM95/96. Παρέχεται επίσης ο πηγαίος κώδικας για να λειτουργήσει και συνοδεύεται από ενσωματωμένο
Lora Gateway με βάση το MicroPython ESP32: 10 βήματα (με εικόνες)
Lora Gateway Βασισμένο στο MicroPython ESP32: Η Lora ήταν πολύ δημοφιλής τα τελευταία χρόνια. Η μονάδα ασύρματης επικοινωνίας που χρησιμοποιεί αυτήν την τεχνολογία είναι συνήθως φθηνή (χρησιμοποιώντας ελεύθερο φάσμα), μικρή σε μέγεθος, ενεργειακά αποδοτική και έχει μεγάλη απόσταση επικοινωνίας και χρησιμοποιείται κυρίως για αμοιβαία επικοινωνία
Έλεγχος οικιακών συσκευών μέσω LoRa - LoRa in Home Automation - Τηλεχειριστήριο LoRa: 8 βήματα
Έλεγχος οικιακών συσκευών μέσω LoRa | LoRa στο Home Automation | Τηλεχειριστήριο LoRa: Ελέγξτε και αυτοματοποιήστε τις ηλεκτρικές σας συσκευές από μεγάλες αποστάσεις (Χιλιόμετρα) χωρίς την παρουσία του διαδικτύου. Αυτό είναι δυνατό μέσω του LoRa! Ρε παιδιά τι γίνεται; Akarsh εδώ από το CETech. Αυτό το PCB διαθέτει επίσης οθόνη OLED και 3 ρελέ τα οποία
15 $ LoRa Gateway/Node ESP8266 Build PCB 3cmX8cm Μέγεθος: 6 Βήματα
15 $ LoRa Gateway/Node ESP8266 Build PCB 3cmX8cm Μέγεθος: Γεια σας, τι συμβαίνει, παιδιά; Akarsh εδώ από τη CETech. Σήμερα θα κάνουμε ένα έργο που είναι ένας απλός κόμβος LoRa και μπορείτε ακόμη και να το χρησιμοποιήσετε ως πύλη ενός καναλιού. Εδώ ο μικροελεγκτής που χρησιμοποίησα είναι ο ESP8266, ο οποίος είναι συνδεδεμένος με τις πλακέτες LoRa