Inhaltsverzeichnis:
- Schritt 1: Komponenten
- Schritt 2: ANSCHLÜSSE
- Schritt 3: CODIERUNG
- Schritt 4: AUSGANG
- Schritt 5: Grafik
- Schritt 6: Hier ist ein Video von Breif Erklärung
Video: Bewegungsmelder mit Thingsai.io Iot Cloud-Plattform - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
In diesem Tutorial werde ich die Bewegungserkennung mit einem PIR-Sensor und Esp32 zusammen mit einer IOT-Cloud-Plattform Thingai.io erklären
Schritt 1: Komponenten
HARDWARE-KOMPONENTEN;
1.esp32-Entwicklungsboard
2. PIR-Sensor
3. Überbrückungsdrähte
SOFTWARE:
1. Arduino-IDE
2. Thingsai.io-Konto
Schritt 2: ANSCHLÜSSE
Die Anschlüsse sind recht einfach.
PIR PINS------------ESP32 PINS
VCC-------------------3V3 auf esp32
GND------------------GND auf esp32
OUT------------------D22 auf esp32
Schritt 3: CODIERUNG
Fügen Sie diesen Code mit einigen Aktualisierungen in Ihre Arduino-IDE ein. Ihr Bewegungssensor gibt die Ausgabe einwandfrei aus.
#enthalten
#enthalten
#enthalten
int count = 0, i, m, j, k;
int t, t1, t2, t3;
int-Pin = 22;
/////////////////////////////////////// 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;
////////////////////////////////////// Funktion ZEITSTEMPELBERECHNUNG ///////// /////////////////////////////////////////////
int GiveMeTimestamp()
{
lange Zeitüberschreitung ohne Vorzeichen = millis();
// WiFiClient-Client;
while (client.verfügbar() == 0)
{
if (millis() - Zeitüberschreitung > 50000)
{
client.stop();
0 zurückgeben;
}
}
while (client.verfügbar())
{
String line = 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);
Verzögerung(10);
PinMode (Pin, EINGANG);
// Wir beginnen mit der Verbindung mit einem WiFi-Netzwerk
WiFiMulti.addAP("wifi_name", "Wifi_password");
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-Adresse:");
Serial.println (WiFi.localIP());
Verzögerung (500);
}
Leere Schleife ()
{
int analogValue = analogRead (Ausgangspin);
{
////////////////////////////////////// ANFRAGE SENDEN UND ANTWORT ERHALTEN//// ///////////////////
{
bool isDetected = digitalRead (pin);
wenn (wird erkannt) {
Serial.println ("Anwesenheit erkannt");
}
Verzögerung (500);
}
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");
if (!client.connect(time_server, {
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\": 61121695839, \"slave_id\": 2";
PostValue = PostValue + ", \"dts\":" +Zeitstempel;
PostValue = PostValue +", \"data\":{"PIR\":" + Pin +"}"+"}";
Serial.println (PostValue);
/* eine Instanz von WiFiClientSecure erstellen */
WiFiClientSecure-Client;
Serial.println("Verbindung zum Server über Port 443 herstellen");
if (!client.connect(server, 443)){
Serial.println ("Verbindung fehlgeschlagen!");
} anders {
Serial.println("Mit Server verbunden!");
/* HTTP-Anfrage erstellen */
client.println( POST /devices/deviceData
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);
/////////////////////////////////POSTING der Daten in die Cloud ist abgeschlossen und jetzt erhalten Sie das Antwortformular cloud Server//////////////////
Serial.print ("Warten auf Antwort");
while (!client.verfügbar()){
Verzögerung (50); //
Serial.print(".");
}
/* wenn Daten verfügbar sind, dann empfangen und an Terminal drucken */
while (client.verfügbar()) {
char c = client.read();
Serial.write (c);
}
/* Wenn der Server getrennt wurde, stoppen Sie den Client */
if (!client.connected()) {
Serial.println();
Serial.println("Server getrennt");javascript:;
client.stop();
}
}
Serial.println("///////////////////// DAS ENDE ///////////////////// ");
Verzögerung (3000);
}
}
Schritt 4: AUSGANG
Dies ist die Balkendiagrammdarstellung der vom Sensor gelesenen Werte in der Thingsai, io Cloud-Plattform.
Schritt 5: Grafik
Dies ist die grafische Darstellung der Werte des Sensors. Aus der obigen Grafik können wir die Anwendung des Sensors analysieren. 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 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
Bodenfeuchtesensor und ESP8266 mit der AskSensors IoT Cloud verbinden – wikiHow
So verbinden Sie Bodenfeuchtigkeitssensor und ESP8266 mit der AskSensors IoT Cloud: Diese Anleitung zeigt Ihnen, wie Sie Ihren Bodenfeuchtigkeitssensor und ESP8266 mit der IoT-Cloud verbinden. Für dieses Projekt verwenden wir ein Knoten MCU ESP8266 WiFi-Modul und einen Bodenfeuchtigkeitssensor das misst den volumetrischen Inhalt des Wassers in der so