Inhaltsverzeichnis:
- Schritt 1: KOMPONENTEN
- Schritt 2: ANSCHLÜSSE
- Schritt 3: CODIERUNG:
- Schritt 4: AUSGABE:
- Schritt 5: GRAFIK
- Schritt 6:
Video: Messung des Bodenfeuchtigkeitsgehalts mit Esp32 und der Thingsio.ai-Plattform - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
In diesem Tutorial werde ich erklären, wie man den Feuchtigkeitsgehalt im Boden mit Hilfe von esp32 ausliest und die Werte dann an die Thingsio.ai IoT Cloud-Plattform sendet.
Schritt 1: KOMPONENTEN
Hardware-Komponenten:
1. esp32-Entwicklungsboard
2. Bodensensor
3. Überbrückungsdrähte
Software:
1. Arduino-IDE
2. Thingsio.ai
Schritt 2: ANSCHLÜSSE
Bodenfeuchtesensor----------------------esp32 Board
VCC---------------------------------------------------3V3
GND-------------------------- GND
A0----------------------------------------------------VP
Schritt 3: CODIERUNG:
#enthalten
#enthalten
#enthalten
int count = 0, i, m, j, k;
int t;
int sensor_pin = A0;
int-Wert;
/////////////////////////////////////// ALLE ERKLÄRUNGEN
für CLOUD //////////////////////////////
const char* host = "api.thingsai.io"; // ODER-Host =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // ODER
/api/v2/thingscloud2/_table/data_ac
const char* time_server =
"baas.thethingscloud.com"; // dies ist zum Konvertieren des Zeitstempels
const int httpPort = 80;
const int httpsPort = 443;
const char* server =
"api.thingsai.io"; // Server-URL
char-Zeitstempel[10];
WiFiMulti WiFiMulti;
// Verwenden Sie die WiFiClient-Klasse, um TCP-Verbindungen zu erstellen
WiFiClient-Client;
////////////////////////////////////// TIMESTAMP
BERECHNUNGS-Funktion //////////////////////////////////////
int GiveMeTimestamp()
{
lange nicht signiert
Zeitüberschreitung = Millis();
// WiFiClient-Client;
während
(client.verfügbar() == 0)
{
if (millis() -
Zeitüberschreitung > 50000)
{
client.stop();
0 zurückgeben;
}
}
while (client.verfügbar())
{
Schnurlinie =
client.readStringUntil('\r'); //indexOf() ist eine Funktion, um nach smthng zu suchen, es gibt -1 zurück, wenn es nicht gefunden wird
int pos =
line.indexOf("\"Zeitstempel\""); // suche nach "\"timestamp\"" vom Anfang der erhaltenen Antwort und kopiere alle Daten danach, es wird dein Zeitstempel sein
wenn (pos >=
0)
{
intj = 0;für(j=0;j<10;j++)
{Zeitstempel[j] = Zeile[pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
Void-Setup ()
{Serial.begin(115200);Serial.println ("Lesen vom Sensor …");
Verzögerung (2000);
// Wir beginnen mit
Verbindung mit einem WLAN-Netzwerk
WiFiMulti.addAP("Wifi_name", "WLAN Passwort");
Serial.println();
Serial.println();Serial.print("Warten Sie auf WLAN…");while(WiFiMulti.run() != WL_CONNECTED) {Serial.print(".");
Verzögerung (500);
}Serial.println("");Serial.println ("WiFi verbunden");
Serial.println( IP
die Anschrift: );Serial.println (WiFi.localIP());
Verzögerung (500);
}
Leere Schleife ()
{
{
////////////////////////////////////// ANFRAGE SENDEN UND
ANTWORT ERHALTEN ///////////////////////
Wert=
analogRead (sensor_pin);
// Wert =
map(Wert, 550, 0, 0, 100);Serial.print ("Feuchtigkeit: ");Serial.print (Wert);Serial.println("%");Verzögerung (1000);Serial.print ("Verbindung zu");Serial.println (Host); // oben definiert: - host = devapi2.thethingscloud.com oder 139.59.26.117
//////////////////////////////////// TIMESTAMP CODE SNIPPET
/////////////////////////
Serial.println("innerhalb Zeitstempel abrufen\n");
wenn
(!client.connect(Zeitserver, {
Rückkehr;
//*-*-*-*-*-*-*-*-*-*
}client.println("GET /api/timestamp HTTP/1.1"); // Was macht dieser Teil, ich habe es nicht verstanden?client.println("Host: baas.thethingscloud.com");client.println("Cache-Steuerung: kein Cache");client.println("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println();
GiveMeTimestamp();
// es ruft die Funktion auf, die die Zeitstempelantwort vom Server erhält
Serial.println ("Zeitstempel erhalten");
Serial.println (Zeitstempel);Serial.println ("innerhalb von ThingsCloudPost");
String PostValue =
"{"device_id\": 61121695918, \"slave_id\": 2";
PostValue =
PostValue + ", \"dts\":" +Zeitstempel;
PostValue =
PostValue +", \"data\":{"MOIST\":" + Wert +"}"+"}";Serial.println (PostValue);
/* eine Instanz von WiFiClientSecure erstellen */
WiFiClientSecure-Client;Serial.println("Verbindung zum Server über Port 443 herstellen");
wenn
(!client.connect(server, 443)){Serial.println ("Verbindung fehlgeschlagen!");
} anders {Serial.println("Mit Server verbunden!");
/* HTTP erstellen
Anfrage */client.println("POST /devices/deviceData HTTP/1.1");client.println("Host: api.thingsai.io");//client.println("Verbindung: schließen");client.println("Inhaltstyp: Anwendung/json");
client.println( Cache-Steuerung:
kein Cache");client.println("Berechtigung: Inhaber eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTykXs9ajP);client.print("Inhaltslänge: ");
client.println(PostValue.length());client.println();client.println (PostWert);
//////////////////////////////////POSTEN die Daten auf die
cloud ist fertig und erhalte jetzt das Antwortformular cloud server //////////////////
Serial.print( Warten auf Antwort
);
während
(!client.verfügbar()){
Verzögerung (50);
//Serial.print(".");
}
/* wenn Daten. sind
verfügbar, dann empfangen und an Terminal drucken */
während
(client.verfügbar()) {
char c = client.read();Serial.write (c);
}
/* wenn die
Server getrennt, Client stoppen */
wenn
(!client.connected()) {Serial.println();Serial.println("Server getrennt");
client.stop();
}
}
Serial.println( ////////////////////// DAS ENDE
///////////////////// );
Verzögerung (3000);
}
}
Schritt 4: AUSGABE:
Die Ausgabe des Codes wird angezeigt.
Schritt 5: GRAFIK
Dies ist die grafische Darstellung der vom Sensor gelesenen Werte.
Schritt 6:
Hier ist das komplette Video des Projekts. Danke schön.
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
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 erstellen Sie einen Smart Pot mit NodeMCU, der von der App gesteuert wird – wikiHow
So erstellen Sie einen Smart Pot mit NodeMCU, der von einer App gesteuert wird: In dieser Anleitung bauen wir einen Smart Pot, der von einem ESP32 und einer Anwendung für Smartphones (iOS und Android) gesteuert wird. Wir verwenden NodeMCU (ESP32) für die Konnektivität und die Blynk-Bibliothek für das Cloud-IoT und die Anwendung auf dem Smartphone. Endlich haben wir
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