Πίνακας περιεχομένων:
- Βήμα 1: Επίδειξη
- Βήμα 2: Συναρμολόγηση
- Βήμα 3: Συναρμολόγηση - Πίνακας
- Βήμα 4: Ubidots
- Βήμα 5: Βιβλιοθήκη SimpleDHT
- Βήμα 6: Βιβλιοθήκη PubSubClient
- Βήμα 7: Βιβλιοθήκη TinyGSM
- Βήμα 8: Βιβλιοθήκη TFT_eSPI
- Βήμα 9: Βιβλιοθήκη TFT_eSPI
- Βήμα 10: Ubidots
- Βήμα 11: Αλλαγή δεδομένων στο.ino
- Βήμα 12: GPRS_ESP32_DHT.ino - Δηλώσεις και μεταβλητές
- Βήμα 13: Καρφίτσωμα
- Βήμα 14: Ρύθμιση
- Βήμα 15: SetupDisplay
- Βήμα 16: SetupGSM
- Βήμα 17: ConnectMQTTServer
- Βήμα 18: Βρόχος
- Βήμα 19: ReadDHT
- Βήμα 20: PublishMQTT
- Βήμα 21: CreateJsonString
- Βήμα 22: ShowDataOnDisplay
- Βήμα 23: Αρχεία
Βίντεο: IOT Με δίκτυο κινητής τηλεφωνίας με ESP32: 23 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:36
Σήμερα θα συζητήσουμε για το μόντεμ GPRS, ή μάλλον, το ESP32 και τη χρήση του με το δίκτυο κινητής τηλεφωνίας. Αυτό είναι κάτι που λειτουργεί πολύ καλά. Χρησιμοποιώντας το πρωτόκολλο MQTT, στη συνέχεια θα στείλουμε δεδομένα στον πίνακα ελέγχου του Ubidots. Χρησιμοποιήστε σε αυτό το συγκρότημα μια οθόνη για ανατροφοδότηση του κυκλώματος, επιπλέον του SIM800L και ένα τσιπ κινητού τηλεφώνου. Με αυτό το έργο, επομένως, θα στείλουμε δεδομένα θερμοκρασίας και υγρασίας μέσω GPRS και MQTT και θα απεικονίσουμε τα δεδομένα σε ένα γράφημα γραμμών.
Βήμα 1: Επίδειξη
Βήμα 2: Συναρμολόγηση
Βήμα 3: Συναρμολόγηση - Πίνακας
Βήμα 4: Ubidots
Βήμα 5: Βιβλιοθήκη SimpleDHT
Στο Arduino IDE, μεταβείτε στο Sketch-> Include Library-> Manage Libraries…
Εγκαταστήστε το SimpleDHT
Βήμα 6: Βιβλιοθήκη PubSubClient
Στο Arduino IDE, μεταβείτε στο Sketch-> Include Library-> Manage Libraries…
Εγκαταστήστε το PubSubClient
Βήμα 7: Βιβλιοθήκη TinyGSM
Στο Arduino IDE, μεταβείτε στο Sketch-> Include Library-> Manage Libraries…
Εγκαταστήστε το TinyGSM
Βήμα 8: Βιβλιοθήκη TFT_eSPI
Στο Arduino IDE, μεταβείτε στο Sketch-> Include Library-> Manage Libraries…
Εγκαταστήστε το TFT_eSPI
Βήμα 9: Βιβλιοθήκη TFT_eSPI
Αλλάξτε τις καρφίτσες της οθόνης στο φάκελο lib.
Η καρφίτσα βρίσκεται στο αρχείο User_Setup.h στο
C: / Χρήστες / \ Έγγραφα / Arduino / βιβλιοθήκες / TFT_eSPI
Αλλάξτε αυτές τις προεπιλογές στις ακόλουθες τιμές στην εικόνα.
Βήμα 10: Ubidots
Συνδεθείτε στο Ubidots με το λογαριασμό σας και κάντε κλικ στο Devices
Κάντε κλικ στο κουμπί "+" στην επάνω δεξιά γωνία
Κάντε κλικ στην επιλογή Κενό
Εισαγάγετε το όνομα της συσκευής. Σημειώστε την "ετικέτα συσκευής", καθώς αυτή θα χρησιμοποιηθεί στο "θέμα" που θα χρησιμοποιήσουμε στο.ino
Στη λίστα των συσκευών, θα εμφανιστεί η συσκευή που μόλις δημιουργήσατε. Κάντε κλικ σε αυτό.
Στην οθόνη που εμφανίζεται, κάντε κλικ στο "Προσθήκη μεταβλητής". Θα εμφανιστεί ένα αναδυόμενο παράθυρο. Κάντε κλικ στο "Raw".
Κάντε κλικ στο πλαίσιο κειμένου και εισαγάγετε το όνομα της ιδιότητας.
Πρέπει να είναι ακριβώς αυτό που θα στείλουμε στο json του.ino. Επαναλάβετε αυτό για την άλλη ιδιότητα.
Επιστρέψτε στον πίνακα ελέγχου κάνοντας κλικ στο λογότυπο Ubidots.
Στον πίνακα ελέγχου, κάντε κλικ στο "Προσθήκη νέου γραφικού στοιχείου"
Στη λίστα Widgets, επιλέξτε "Διπλός άξονας"
Βήμα 11: Αλλαγή δεδομένων στο.ino
Βήμα 12: GPRS_ESP32_DHT.ino - Δηλώσεις και μεταβλητές
#define TINY_GSM_MODEM_SIM800 // Tipo de modem que estamos usando #include #include #include #include #include // Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmomopo12modo (esp32_gprs é o nome do dispositivo no Ubidots) #define TOMIC "/v1.6/devices/esp32_gprs" // id do dispositivo que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678" // URL mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino onde está o DHT22 #define DHT_PIN 27
Βήμα 13: Καρφίτσωμα
// Pinagem em User_Setup.h na pasta da bibliotecaTFT_eSPI display = TFT_eSPI (); // Intervalo entre os envios e refresh da tela #define INTERVAL 10000 // Canal serial que vamos usar para comunicarmos com o modem. Χρησιμοποιήστε το semper 1 HardwareSerial SerialGSM (1). TinyGsm modemGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Cliente MQTT, passamos a url do server, porta // e o cliente GSM PubSubClient client (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0; υγρασία πλωτήρα? // Variável onde iremos armazenar o valor da umidade float temperature? // Variável onde iremos armazenar o valor da temperatura SimpleDHT22 dht; // Objeto que realizará a leitura da umidade e temperatura
Βήμα 14: Ρύθμιση
void setup () {Serial.begin (115200); setupDisplay (); // Inicializa e configura o display setupGSM (); // Εγκατάσταση και διαμόρφωση του μόντεμ GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 segundos e limpamos o display delay (2000)? display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }
Βήμα 15: SetupDisplay
void setupDisplay () {display.init (); display.setRotation (1); display.fillScreen (TFT_BLUE); // Limpa o display com a cor azul display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca o texto como branco com fundo azul display.setTextWrap (true, true); // Ativa quebra de linha display.setTextSize (1); display.setCursor (0, 0, 2); // Posicção x, y e fonte do texto display.println ("Setup Display Complete"); }
Βήμα 16: SetupGSM
void setupGSM () {display.println ("Ρύθμιση GSM …"); // Inicializamos a serial onde está o modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); καθυστέρηση (3000)? // Περισσότερες πληροφορίες για το μόντεμ Serial.println (modemGSM.getModemInfo ()); // Inicializa ή modem if (! ModemGSM.restart ()) {display.println ("Η επανεκκίνηση του μόντεμ GSM απέτυχε"); καθυστέρηση (10000)? ESP.restart (); ΕΠΙΣΤΡΟΦΗ; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Αποτυχία σύνδεσης στο δίκτυο"); καθυστέρηση (10000)? ESP.restart (); ΕΠΙΣΤΡΟΦΗ; } // Conecta à rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("Αποτυχία σύνδεσης GPRS"); καθυστέρηση (10000)? ESP.restart (); ΕΠΙΣΤΡΟΦΗ; } display.println ("Επιτυχία εγκατάστασης GSM"); }
Βήμα 17: ConnectMQTTServer
void connectMQTTServer () {display.println ("Σύνδεση σε διακομιστή MQTT …"); // Μπορείτε να συνδέσετε τη συσκευή σας οριστικά εάν (client.connect (DEVICE_ID, TOKEN, "")) {// Se a conexão foi bem sucedida display.println ("Connected"); } else {// Se ocorreu algum erro display.print ("error ="); display.println (client.state ()); καθυστέρηση (10000)? ESP.restart (); }}
Βήμα 18: Βρόχος
void loop () {// Faz a leitura da umidade e temperatura readDHT (); // Σχετικά με τον διακομιστή MQTT εάν (! Client.connected ()) {// Mandamos conectar connectMQTTServer (); } // Tempo decorrido desde o boot em milissegundos unsigned long now = millis (); // Se passou o intervalo de envio if (now - lastTime> INTERVAL) {// Publicamos para o server mqtt publishedMQTT (); // Mostramos os dados χωρίς εμφάνιση showDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = τώρα; }}
Βήμα 19: ReadDHT
void readDHT () {float t, h; // Faz a leitura da umidade e temperatura e apenas atualiza as variáveis se foi bem sucedido if (dht.read2 (DHT_PIN, & t, & h, NULL) == SimpleDHTErrSuccess) {θερμοκρασία = t; υγρασία = h? }}
Βήμα 20: PublishMQTT
void publishedMQTT () {// Cria o json que iremos enviar para o server MQTT String msg = createJsonString (); Serial.print ("Δημοσίευση μηνύματος:"); Serial.println (msg); // Publicamos no tópico int status = client.publish (ΘΕΜΑ, msg.c_str ()); Serial.println ("Status:" + String (status)); // Status 1 se sucesso ou 0 se deu erro}
Βήμα 21: CreateJsonString
String createJsonString () {String data = "{"; εάν (! isnan (υγρασία) &&! isnan (θερμοκρασία)) {data+= "\" υγρασία / ":"; δεδομένα+= συμβολοσειρά (υγρασία, 2); δεδομένα+= ","; δεδομένα+= "\" θερμοκρασία / ":"; δεδομένα+= συμβολοσειρά (θερμοκρασία, 2); } data+= "}"; επιστροφή δεδομένων? }
Βήμα 22: ShowDataOnDisplay
void showDataOnDisplay () {// Reseta a posição do cursor e mostra umidade e temperatura lidas display.setCursor (0, 0, 2); display.println ("Υγρασία:" + Χορδή (υγρασία, 2)); display.println ("Θερμοκρασία:" + Χορδή (θερμοκρασία, 2)); }
Βήμα 23: Αρχεία
Κατεβάστε τα αρχεία
ΕΓΩ ΔΕΝ
Συνιστάται:
Δίκτυο αισθητήρων LTE CAT -M1 GSM IoT T - 15 Λεπτά .: 5 Βήματα
LTE CAT -M1 GSM IoT Sensors Network … T -15 Minutes .: Στις 08 Απριλίου 2018, η R & D Software Solutions srl [itbrainpower.net] αποκάλυψε στο κοινό την ανακοίνωση του xyz -mIoT από την ασπίδα itbrainpower.net - η πρώτη και η πιο συμπαγής πλακέτα IoT που συνδυάζει την ευελιξία του μικροελέγχου ARM0
Απλή καταγραφή δεδομένων κινητής τηλεφωνίας χρησιμοποιώντας PfodApp, Android και Arduino: 5 βήματα
Απλή καταγραφή δεδομένων για κινητά χρησιμοποιώντας PfodApp, Android και Arduino: Η καταγραφή δεδομένων Moblie έγινε απλή χρησιμοποιώντας το pfodApp, το Andriod κινητό και το Arduino. ΔΕΝ απαιτείται προγραμματισμός Android. Για τη σχεδίαση δεδομένων στο Android σας, δείτε αυτό το μεταγενέστερο Instuctable Simple Remote Data Plotting χρησιμοποιώντας Android / Arduino / pfodAppΓια σχεδίαση
Φορτιστής κινητής τηλεφωνίας έκτακτης ανάγκης χρησιμοποιώντας ηλιακό πάνελ [Πλήρης οδηγός]: 4 βήματα
Φορτιστής κινητής τηλεφωνίας έκτακτης ανάγκης χρησιμοποιώντας ηλιακό πάνελ [Πλήρης οδηγός]: Αναζητάτε έναν τρόπο φόρτισης του τηλεφώνου σας όταν είστε εντελώς εκτός επιλογών; Φτιάξτε τον εαυτό σας έναν φορτιστή κινητής τηλεφωνίας έκτακτης ανάγκης με ένα φορητό ηλιακό πάνελ που θα μπορούσε να σας φανεί χρήσιμο ειδικά όταν ταξιδεύετε ή όταν κάνετε υπαίθρια κατασκήνωση. Αυτό είναι ένα έργο χόμπι με
Ρομπότ κινητής ελεγχόμενης γραμμής ακολούθησης με αποφυγή εμποδίων: 6 βήματα
Ρομπότ ελεγχόμενης γραμμής κινητής γραμμής με αποφυγή εμποδίων: Αυτή ήταν απλώς μια ιδέα στην οποία πολλά χαρακτηριστικά όπως η αποφυγή εμποδίων, ο ακόλουθος γραμμών, το κινητό, κ.λπ. αναμειγνύονταν μαζί και γίνονταν ένα μόνο κομμάτι. Το μόνο που χρειάζεστε είναι ένα χειριστήριο με μερικούς αισθητήρες και ένα στολή για αυτήν τη ρύθμιση. Σε αυτό, έχω
Δημιουργία κινητής μπάρας - BaR2D2: 16 βήματα (με εικόνες)
Build a Mobile Bar-BaR2D2: Το BaR2D2 είναι ένα ραδιοελεγχόμενο, κινητό μπαρ που διαθέτει μηχανοκίνητο ανελκυστήρα μπύρας, μηχανοκίνητο συρτάρι πάγου/μίξερ, διανομέα βολών έξι μπουκαλιών και φωτισμό νέον με ενεργοποίηση ήχου. Το ρομπότ μπορεί να οδηγηθεί, ώστε να μπορείτε να πάρετε το πάρτι στο δρόμο! Δημιουργήθηκε