Inhoudsopgave:

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 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
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

Aanbevolen: