Sommario:

Rilevatore di movimento utilizzando la piattaforma Iot Cloud Thingsai.io: 6 passaggi
Rilevatore di movimento utilizzando la piattaforma Iot Cloud Thingsai.io: 6 passaggi

Video: Rilevatore di movimento utilizzando la piattaforma Iot Cloud Thingsai.io: 6 passaggi

Video: Rilevatore di movimento utilizzando la piattaforma Iot Cloud Thingsai.io: 6 passaggi
Video: Sensore Fibaro (in offerta) e tutorial di Illuminazione Intelligente! 2024, Dicembre
Anonim
Rilevatore di movimento che utilizza la piattaforma Iot Cloud Thingsai.io
Rilevatore di movimento che utilizza la piattaforma Iot Cloud Thingsai.io

In questo tutorial spiegherò il rilevamento del movimento utilizzando un sensore PIR e Esp32 insieme a una piattaforma cloud IOT Thingai.io

Passaggio 1: componenti

Componenti
Componenti
Componenti
Componenti

COMPONENTI HARDWARE;

Scheda di sviluppo 1.esp32

2. Sensore PIR

3. Cavi dei ponticelli

SOFTWARE:

1. Arduino IDE

2. Account Thingsai.io

Fase 2: CONNESSIONI

CONNESSIONI
CONNESSIONI

I collegamenti sono abbastanza semplici.

PIN PIR ------------ PIN ESP32

VCC--------------------3V3 su esp32

GND------------------GND su esp32

OUT-------------------D22 su esp32

Passaggio 3: CODIFICA

Incolla questo codice nel tuo IDE Arduino con qualche aggiornamento, il tuo sensore di movimento fornirà l'output in modo impeccabile.

#includere

#includere

#includere

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

int t, t1, t2, t3;

int pin = 22;

//////////////////////////////////////// TUTTE LE DICHIARAZIONI per CLOUD ////// ////////////////////////

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

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

const char* time_server = "baas.thethingscloud.com"; //questo serve per convertire il timestamp

const int httpPort = 80;

const int httpsPort = 443;

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

char timestamp[10];

WiFi Multi WiFi Multi;

// Usa la classe WiFiClient per creare connessioni TCP

client WiFi Client;

/////////////////////////////////////// Funzione CALCOLO ORA//////// ///////////////////////////////

int GiveMeTimestamp()

{

timeout lungo senza segno = millis();

//client WiFiClient;

while (client.disponibile() == 0)

{

if (millis() - timeout > 50000)

{

cliente.stop();

restituisce 0;

}

}

mentre (client.disponibile())

{

Stringa riga = client.readStringUntil('\r'); //indexOf() è una funzione per cercare smthng, restituisce -1 se non trovata

int pos = line.indexOf("\"timestamp\""); //cerca "\"timestamp\"" dall'inizio della risposta ottenuta e copia tutti i dati dopo, sarà il tuo timestamp

se (pos >= 0)

{

intj = 0;

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

{

timestamp[j] = riga[pos + 12 + j];

}

}

}

}

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

configurazione nulla()

{

Serial.begin(115200);

ritardo(10);

pinMode(pin, INGRESSO);

// Iniziamo connettendoci a una rete WiFi

WiFiMulti.addAP("nome_wifi", "password_Wifi");

Serial.println();

Serial.println();

Serial.print("Attendi WiFi… ");

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

Serial.print(".");

ritardo (500);

}

Serial.println("");

Serial.println("WiFi connesso");

Serial.println("Indirizzo IP: ");

Serial.println(WiFi.localIP());

ritardo (500);

}

ciclo vuoto()

{

int AnalogValue = analogRead(outputpin);

{

////////////////////////////////////// INVIARE LA DOMANDA E RICEVERE LA RISPOSTA//// ///////////////////

{

bool isDetected = digitalRead(pin);

if(isDetected){

Serial.println("Presenza rilevata");

}

ritardo (500);

}

Serial.print("connessione a ");

Serial.println(host); // rialzo definito: - host = devapi2.thethingscloud.com o 139.59.26.117

//////////////////////////////////// SNIPPET DEL CODICE TIMESTAMP ////////// ///////////////

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

if (!client.connect(time_server, {

Restituzione; //*-*-*-*-*-*-*-*-*-*

}

client.println("OTTIENI /api/timestamp HTTP/1.1"); //Cosa sta facendo questa parte, non l'ho capito

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

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

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

client.println();

GiveMeTimestamp(); // chiamerà la funzione che otterrà la risposta del timestamp dal server

Serial.println("timestamp ricevuto");

Serial.println(timestamp);

Serial.println("dentro ThingsCloudPost");

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

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

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

Serial.println(PostValue);

/* crea un'istanza di WiFiClientSecure */

client WiFiClientSecure;

Serial.println("Connetti al server tramite la porta 443");

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

Serial.println("Connessione fallita!");

} altro {

Serial.println("Connesso al server!");

/* crea una richiesta HTTP */

client.println( POST /devices/deviceData

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

//client.println("Connessione: chiudi");

client.println("Tipo di contenuto: application/json");

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

client.println( Autorizzazione: Portatore eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlkXNqC2PNTy);

client.print("Lunghezza contenuto: ");

client.println(PostValue.length());

client.println();

client.println(PostValue);

/////////////////////////////////POSTARE i dati sul cloud è fatto e ora ottieni il modulo di risposta cloud server//////////////////

Serial.print("In attesa di risposta");

mentre (!client.available()){

ritardo(50); //

Serial.print(".");

}

/* se i dati sono disponibili, riceve e stampa su Terminale */

mentre (client.disponibile()) {

char c = client.read();

Serial.write(c);

}

/* se il server si è disconnesso, ferma il client */

if (!client.connected()) {

Serial.println();

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

cliente.stop();

}

}

Serial.println("////////////////////// LA FINE ///////////////////// ");

ritardo (3000);

}

}

Fase 4: USCITA

PRODUZIONE
PRODUZIONE

Questa è la rappresentazione del grafico a barre dei valori letti dal sensore nella piattaforma thingsai, io cloud,

Passaggio 5: grafico

Grafico
Grafico

Questa è la rappresentazione grafica dei valori del sensore. Dal grafico sopra possiamo analizzare l'applicazione del sensore. Grazie

Consigliato: