Bewegingsdetector met behulp van Thingsai.io Iot Cloud Platform - Ajarnpa
Bewegingsdetector met behulp van Thingsai.io Iot Cloud Platform - Ajarnpa

Video: Bewegingsdetector met behulp van Thingsai.io Iot Cloud Platform - Ajarnpa

Video: Bewegingsdetector met behulp van Thingsai.io Iot Cloud Platform - Ajarnpa
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2025, Januari-
Anonim
Bewegingsdetector met behulp van Thingsai.io IoT Cloud Platform
Bewegingsdetector met behulp van Thingsai.io IoT Cloud Platform

In deze tutorial ga ik uitleggen over bewegingsdetectie met behulp van een PIR-sensor en Esp32 samen met een IOT-cloudplatform Thingai.io

Stap 1: Componenten

Componenten
Componenten
Componenten
Componenten

HARDWARE ONDERDELEN;

1.esp32 Ontwikkelingsbord

2. PIR-sensor

3. Doorverbindingsdraden

SOFTWARE:

1. Arduino IDE

2. Thingsai.io-account

Stap 2: VERBINDINGEN

AANSLUITINGEN
AANSLUITINGEN

De aansluitingen zijn stil eenvoudig.

PIR PINS ------------ ESP32 PINS

VCC-------------------3V3 op esp32

GND ------------------ GND op esp32

UIT ------------------- D22 op esp32

Stap 3: CODEREN

Plak deze code in je Arduino IDE met wat update, je bewegingssensor geeft de uitvoer foutloos.

#erbij betrekken

#erbij betrekken

#erbij betrekken

int telling=0, i, m, j, k;

int t, t1, t2, t3;

int-pin = 22;

//////////////////////////////////////// ALLE VERKLARINGEN voor CLOUD ////// ////////////////////////

const char* host = "api.thingsai.io"; // OF host = devapi2.thethingscloud.com

const char* post_url = "/devices/deviceData"; // OF /api/v2/thingscloud2/_table/data_ac

const char* time_server = "baas.thethingscloud.com"; //dit is om de tijdstempel te converteren

const int httpPort = 80;

const int httpsPort = 443;

const char* server = "api.thingsai.io"; // Server-URL

char tijdstempel [10];

WiFiMulti WiFiMulti;

// Gebruik de WiFiClient-klasse om TCP-verbindingen te maken

WiFiClient-client;

/////////////////////////////////////// TIMESTAMP BEREKENING functie//////// ///////////////////////////////

int GiveMeTimestamp()

{

niet-ondertekende lange time-out = millis();

// WiFiClient-client;

while (client.available() == 0)

{

if (millis() - time-out > 50000)

{

klant.stop();

retourneer 0;

}

}

terwijl (client.available())

{

String line = client.readStringUntil('\r'); //indexOf() is een functie om te zoeken naar smthng, het retourneert -1 indien niet gevonden

int pos = line.indexOf("\"tijdstempel\""); // zoek naar "\"timestamp\"" vanaf het begin van het antwoord kreeg en kopieer daarna alle gegevens, dit is uw tijdstempel

als (pos >= 0)

{

intj = 0;

voor(j=0;j<10;j++)

{

tijdstempel [j] = regel [pos + 12 + j];

}

}

}

}

////////////////////////////////////////////////////////////////////////////////////////////////////////

ongeldige setup()

{

Serieel.begin(115200);

vertraging(10);

pinMode (pin, INGANG);

// We beginnen door verbinding te maken met een wifi-netwerk

WiFiMulti.addAP("wifi_name", "Wifi_password");

Serieel.println();

Serieel.println();

Serial.print("Wacht op wifi… ");

while(WiFiMulti.run() != WL_CONNECTED) {

Serieel.print(".");

vertraging (500);

}

Serieel.println("");

Serial.println("WiFi verbonden");

Serial.println("IP-adres: ");

Serial.println(WiFi.localIP());

vertraging (500);

}

lege lus()

{

int analogValue = analogRead (outputpin);

{

/////////////////////////////////////// STUUR DE QUERY EN ONTVANG DE ANTWOORD//// ///////////////////

{

bool is gedetecteerd = digitalRead (pin);

als (is gedetecteerd){

Serial.println("Aanwezigheid gedetecteerd");

}

vertraging (500);

}

Serial.print("verbinden met ");

Serieel.println(host); // gedefinieerde bovenkant: - host = devapi2.thethingscloud.com of 139.59.26.117

///////////////////////////////////// TIJDSTEMPEL CODESNIPPET ////////// ///////////////

Serial.println("inside get timestamp\n");

if (!client.connect(time_server, {

opbrengst; //*-*-*-*-*-*-*-*-*-*

}

client.println ("GET /api/timestamp HTTP/1.1"); // Wat doet dit deel, ik heb het niet begrepen

client.println("Host: baas.thethingscloud.com");

client.println("Cache-Control: no-cache");

client.println ("Postbode-token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

klant.println();

GeefMeTijdstempel(); // het zal de functie aanroepen die de tijdstempelreactie van de server zal krijgen

Serial.println("tijdstempel ontvangen");

Serial.println (tijdstempel);

Serial.println ("inside ThingsCloudPost");

String PostValue = "{"device_id\": 61121695839, \"slave_id\": 2";

PostValue = PostValue + ", \"dts\":" +tijdstempel;

PostValue = PostValue +", \"data\":{"PIR\":" + pin +"}"+"}";

Serial.println(PostValue);

/* maak een instantie van WiFiClientSecure */

WiFiClientSecure-client;

Serial.println("Verbind met server via poort 443");

if (!client.connect(server, 443)){

Serial.println("Verbinding mislukt!");

} anders {

Serial.println("Verbonden met server!");

/* HTTP-verzoek maken */

client.println( POST /devices/deviceData

client.println("Host: api.thingsai.io");

//client.println ("Verbinding: sluiten");

client.println ("Inhoudstype: applicatie/json");

client.println("cache-control: no-cache");

client.println("Autorisatie: Drager eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTk6");

client.print ("Inhoudslengte: ");

client.println(PostValue.length());

klant.println();

cliënt.println(PostValue);

//////////////////////////////////Het plaatsen van de gegevens in de cloud is voltooid en ontvang nu het reactieformulier cloud server//////////////////

Serial.print("Wachten op antwoord ");

while (!client.available()){

vertraging (50); //

Serieel.print(".");

}

/* als gegevens beschikbaar zijn, ontvangen en afdrukken naar Terminal */

while (client.available()) {

char c = cliënt.lezen();

Serieel.schrijven(c);

}

/* als de server de verbinding heeft verbroken, stop de client */

if (!client.connected()) {

Serieel.println();

Serial.println("Server verbroken");javascript:;

klant.stop();

}

}

Serial.println("////////////////////// HET EINDE ///////////////////// ");

vertraging (3000);

}

}

Stap 4: UITGANG

UITGANG
UITGANG

Dit is de staafgrafiekweergave van de waarden die worden afgelezen van de sensor in het thingsai, io cloudplatform,

Stap 5: Grafiek

Grafiek
Grafiek

Dit is de grafische weergave van de waarden van de sensor. Uit de bovenstaande grafiek kunnen we de toepassing van de sensor analyseren. Bedankt