Inhaltsverzeichnis:
- Schritt 1: Demonstration
- Schritt 2: Montage
- Schritt 3: Montage - Tisch
- Schritt 4: Ubidots
- Schritt 5: SimpleDHT-Bibliothek
- Schritt 6: PubSubClient-Bibliothek
- Schritt 7: TinyGSM-Bibliothek
- Schritt 8: TFT_eSPI-Bibliothek
- Schritt 9: TFT_eSPI-Bibliothek
- Schritt 10: Ubidots
- Schritt 11: Ändern der Daten in.ino
- Schritt 12: GPRS_ESP32_DHT.ino - Deklarationen und Variablen
- Schritt 13: Anheften
- Schritt 14: Einrichtung
- Schritt 15: SetupDisplay
- Schritt 16: SetupGSM
- Schritt 17: ConnectMQTTServer
- Schritt 18: Schleife
- Schritt 19: ReadDHT
- Schritt 20: MQTT veröffentlichen
- Schritt 21: CreateJsonString
- Schritt 22: ShowDataOnDisplay
- Schritt 23: Dateien
Video: IOT mit Mobilfunknetz mit ESP32 - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Heute werden wir über das GPRS-Modem oder besser gesagt den ESP32 und seine Verwendung mit dem Mobilfunknetz diskutieren. Dies ist etwas, das sehr gut funktioniert. Über das MQTT-Protokoll senden wir dann Daten an das Ubidots-Dashboard. Verwenden Sie in dieser Baugruppe neben dem SIM800L und einem Handychip ein Display zur Rückmeldung der Schaltung. Bei diesem Projekt werden wir daher Temperatur- und Feuchtigkeitsdaten über GPRS und MQTT senden und die Daten in einem Liniendiagramm visualisieren.
Schritt 1: Demonstration
Schritt 2: Montage
Schritt 3: Montage - Tisch
Schritt 4: Ubidots
Schritt 5: SimpleDHT-Bibliothek
Gehen Sie in der Arduino-IDE zu Sketch-> Include Library-> Manage Libraries …
Installieren Sie SimpleDHT
Schritt 6: PubSubClient-Bibliothek
Gehen Sie in der Arduino IDE zu Sketch-> Include Library-> Manage Libraries …
PubSubClient installieren
Schritt 7: TinyGSM-Bibliothek
Gehen Sie in der Arduino-IDE zu Sketch-> Include Library-> Manage Libraries …
TinyGSM installieren
Schritt 8: TFT_eSPI-Bibliothek
Gehen Sie in der Arduino-IDE zu Sketch-> Include Library-> Manage Libraries …
TFT_eSPI installieren
Schritt 9: TFT_eSPI-Bibliothek
Ändern Sie die Anzeigestifte im lib-Ordner.
Das Anheften befindet sich in der Datei User_Setup.h in
C: / Benutzer / \ Dokumente / Arduino / Bibliotheken / TFT_eSPI
Ändern Sie diese Standardwerte in die folgenden Werte im Bild.
Schritt 10: Ubidots
Melden Sie sich mit Ihrem Konto bei Ubidots an und klicken Sie auf Geräte
Klicken Sie oben rechts auf die Schaltfläche "+"
Klicken Sie auf Leer
Geben Sie den Gerätenamen ein. Beachten Sie die "Gerätebezeichnung", da diese in dem "Thema" verwendet wird, das wir in.ino. verwenden werden
In der Geräteliste erscheint das soeben erstellte Gerät. Klick es an.
Klicken Sie auf dem angezeigten Bildschirm auf "Variable hinzufügen". Ein Popup wird angezeigt. Klicken Sie auf "Roh".
Klicken Sie auf das Textfeld und geben Sie den Namen der Eigenschaft ein.
Es muss genau das sein, was wir im JSON der.ino senden werden. Wiederholen Sie dies für die andere Eigenschaft.
Kehren Sie zum Dashboard zurück, indem Sie auf das Ubidots-Logo klicken.
Klicken Sie im Dashboard auf "Neues Widget hinzufügen"
Wählen Sie in der Liste der Widgets "Doppelachse"
Schritt 11: Ändern der Daten in.ino
Schritt 12: GPRS_ESP32_DHT.ino - Deklarationen und Variablen
#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-abcdefghijklmnopqrstuvwxyz0123" (esp32_gprs oder nome do dispositivo no Ubidots) #define TOPIC "/v1.6/devices/esp32_gprs" //id dispositiv que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678" #define "MQTT-Server" mqtt://things.ubidots.com" //Porta padrão do MQTT #define MQTT_PORT 1883 //Pino onde está o DHT22 #define DHT_PIN 27
Schritt 13: Anheften
//Pinagem em User_Setup.h na Pasta da bibliotecaTFT_eSPI display = TFT_eSPI(); //Intervalo entre os envios e refresh da tela #define INTERVAL 10000 //Kanalserienque vamos usar para comunicarmos com o modem. Verwenden Sie semper 1 HardwareSerial SerialGSM(1); TinyGsm-ModemGSM(SerialGSM); TinyGsmClient gsmClient (modemGSM); //Client MQTT, passamos a URL-Do-Server, ein Porta //e o Client GSM PubSubClient client(MQTT_SERVER, MQTT_PORT, gsmClient); //Tempo em que o ultimo envio/refresh foi feito uint32_t lastTime = 0; Schwebefeuchtigkeit; //Variável onde iremos armazenar o valor da umidade Schwimmertemperatur; //Variável onde iremos armazenar oder valor da temperatura SimpleDHT22 dht; //Objeto que realizará a leitura da umidade e temperatura
Schritt 14: Einrichtung
Void setup () { Serial.begin (115200); setupDisplay(); //Inicialize e configura o display setupGSM(); //Inicialize e configura o Modem GSM connectMQTTServer(); //Conectamos ao mqtt server //Espera 2 segundos e limpamos o display delay(2000); display.fillScreen (TFT_BLUE); display.setCursor(0, 0); }
Schritt 15: SetupDisplay
Void setupDisplay () {display.init (); display.setRotation(1); display.fillScreen (TFT_BLUE); //Limpa oder Display mit Cor Azul display.setTextColor (TFT_WHITE, TFT_BLUE); //Coloca oder 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"); }
Schritt 16: SetupGSM
Void setupGSM () {display.println ("GSM einrichten …"); // Initialisierung einer seriellen Verbindung zum Modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); Verzögerung (3000); // Meiste Informationen über Modem Serial.println (modemGSM.getModemInfo ()); // Initialisierung des Modems if (!modemGSM.restart()) {display.println("Neustart des GSM-Modems fehlgeschlagen"); Verzögerung (10000); ESP.restart(); Rückkehr; } //Espera pela rede if (!modemGSM.waitForNetwork()) {display.println("Verbindung zum Netzwerk fehlgeschlagen"); Verzögerung (10000); ESP.restart(); Rückkehr; } //Conecta à rede gprs (APN, usuário, senha) if (!modemGSM.gprsConnect("", "", "")) { display.println("GPRS-Verbindung fehlgeschlagen"); Verzögerung (10000); ESP.restart(); Rückkehr; } display.println("GSM-Erfolg einrichten"); }
Schritt 17: ConnectMQTTServer
void connectMQTTServer() { display.println("Verbindung mit MQTT-Server…"); //Se conecta ao device que definimos if (client.connect(DEVICE_ID, TOKEN, "")) { //Sehen Sie eine Verbindung von der Suche nach display.println ("Connected"); aufrechtzuerhalten. Else {//Se ocorreu Algum erro display.print ("Fehler = "); display.println(client.state()); Verzögerung (10000); ESP.restart(); } }
Schritt 18: Schleife
Void Schleife () {//Faz eine Leitura von Umidade und Temperatur readDHT (); //Se desconectou do Server MQTT if(!client.connected()) { //Mandamos conectar connectMQTTServer(); } //Tempo decorrido desde o boot em milissegundos unsigned long now = millis(); //Se passou oder intervallo de envio if(now - lastTime > INTERVAL) { //Publicamos para o server mqtt publishMQTT(); //Mostramos os dados keine Anzeige showDataOnDisplay(); //Atualizamos oder tempo em que foi feito oder último envio lastTime = now; } }
Schritt 19: ReadDHT
Void readDHT () { Float t, h; //Faz a leitura da umidade e temperature e apenas atualiza as variáveis se foi bem sucedido if (dht.read2(DHT_PIN, &t, &h, NULL) == SimpleDHTErrSuccess) { temperature = t; Feuchtigkeit = h; } }
Schritt 20: MQTT veröffentlichen
void publishMQTT () {//Cria oder json que iremos enviar para o server MQTT String msg = createJsonString (); Serial.print ("Nachricht veröffentlichen: "); Serial.println (msg); //Publicamos kein Thema int status = client.publish(TOPIC, msg.c_str()); Serial.println ("Status: " + String (status)); // Status 1 se sucesso oder 0 se deu erro }
Schritt 21: CreateJsonString
String createJsonString() { String data = "{"; if(!isnan(Luftfeuchtigkeit) && !isnan(Temperatur)) { data+="\"Luftfeuchtigkeit\":"; data+=String(Luftfeuchtigkeit, 2); Daten+=", "; data+="\"temperatur\":"; data+=String(Temperatur, 2); } Daten+="}"; Daten zurückgeben; }
Schritt 22: ShowDataOnDisplay
Void showDataOnDisplay () {// Zurücksetzen einer Position des Cursors und der Temperaturanzeige display.setCursor (0, 0, 2); display.println("Luftfeuchtigkeit: " + String(Luftfeuchtigkeit, 2)); display.println("Temperatur: " + String(temperatur, 2)); }
Schritt 23: Dateien
Laden Sie die Dateien herunter
INO
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
So verbinden Sie einen ESP32 mit der IoT-Cloud: 8 Schritte
So verbinden Sie einen ESP32 mit der IoT-Cloud: Diese Anleitung enthält eine Reihe von Artikeln zum Anschließen von Hardware wie Arduino und ESP8266 an die Cloud. Ich werde Ihnen erklären, wie Sie Ihren ESP32-Chip mit dem AskSensors IoT-Dienst mit der Cloud verbinden. Warum ESP32?Nach dem großen Erfolg
So veröffentlichen Sie ESP32-Daten mit NTP-Zeitstempel in der IoT-Cloud – wikiHow
So veröffentlichen Sie ESP32-Daten mit NTP-Zeitstempel in der IoT-Cloud: In vielen Anwendungen müssen Benutzer ihre Daten zusammen mit dem lokalen Zeitstempel der in der Nutzlast zu sendenden Werte an die AskSensors-IoT-Cloud senden. Das Zeitstempelformat ist die Zeit der UNIX-Epoche: die Anzahl der Millisekunden, die seit Januar