Inhaltsverzeichnis:

Bewegungsmelder mit Thingsai.io Iot Cloud-Plattform - Gunook
Bewegungsmelder mit Thingsai.io Iot Cloud-Plattform - Gunook

Video: Bewegungsmelder mit Thingsai.io Iot Cloud-Plattform - Gunook

Video: Bewegungsmelder mit Thingsai.io Iot Cloud-Plattform - Gunook
Video: Connected Things Hub - IoT Plattform zum effizienten Aufbau digitaler Lösungen 2024, November
Anonim
Bewegungsmelder mit Thingsai.io Iot Cloud-Plattform
Bewegungsmelder mit Thingsai.io Iot Cloud-Plattform

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

Komponenten
Komponenten
Komponenten
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

ANSCHLÜSSE
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

AUSGANG
AUSGANG

Dies ist die Balkendiagrammdarstellung der vom Sensor gelesenen Werte in der Thingsai, io Cloud-Plattform.

Schritt 5: Grafik

Graph
Graph

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: