Table des matières:

Détecteur de mouvement utilisant Thingsai.io Iot Cloud Platform : 6 étapes
Détecteur de mouvement utilisant Thingsai.io Iot Cloud Platform : 6 étapes

Vidéo: Détecteur de mouvement utilisant Thingsai.io Iot Cloud Platform : 6 étapes

Vidéo: Détecteur de mouvement utilisant Thingsai.io Iot Cloud Platform : 6 étapes
Vidéo: 150-WGAN-TV | Intro to SIMLAB SIM-ON + Matterport - IoT via KNX, SmartThings and Fibaro 2024, Novembre
Anonim
Détecteur de mouvement utilisant Thingsai.io Iot Cloud Platform
Détecteur de mouvement utilisant Thingsai.io Iot Cloud Platform

Dans ce tutoriel, je vais expliquer la détection de mouvement en utilisant un capteur PIR et Esp32 avec une plate-forme cloud IOT Thingai.io

Étape 1: Composants

Composants
Composants
Composants
Composants

COMPOSANTS MATÉRIELS;

Carte de développement 1.esp32

2. Capteur PIR

3. Fils de cavalier

LOGICIEL:

1. IDE Arduino

2. Compte Thingsai.io

Étape 2: CONNEXIONS

CONNEXIONS
CONNEXIONS

Les connexions sont assez simples.

BROCHES PIR ------------ BROCHES ESP32

VCC------------------3V3 sur esp32

GND ------------------ GND sur esp32

SORTIE --------------------D22 sur esp32

Étape 3: CODAGE

Collez ce code dans votre IDE Arduino avec quelques mises à jour, votre capteur de mouvement donnera la sortie parfaitement.

#comprendre

#comprendre

#comprendre

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

entier t, t1, t2, t3;

broche int = 22;

///////////////////////////////////// TOUTES LES DÉCLARATIONS pour CLOUD ////// ///////////////////////

const char* hôte = "api.thingsai.io"; // OU hôte = devapi2.thethingscloud.com

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

const char* time_server = "baas.thethingscloud.com"; // c'est pour convertir l'horodatage

const int httpPort = 80;

const int httpsPort = 443;

const char* serveur = "api.thingsai.io"; // URL du serveur

horodatage du char[10];

WiFiMulti WiFiMulti;

// Utiliser la classe WiFiClient pour créer des connexions TCP

Client WiFi;

///////////////////////////////////// Fonction CALCUL TIMESTAMP ///////// //////////////////////////////

int GiveMeTimestamp()

{

délai d'attente long non signé = millis();

// Client WiFiClient;

while (client.available() == 0)

{

if (millis() - délai d'attente > 50000)

{

client.stop();

renvoie 0;

}

}

tandis que (client.available())

{

Ligne de chaîne = client.readStringUntil('\r'); //indexOf() est une fonction pour rechercher smthng, il renvoie -1 s'il n'est pas trouvé

int pos = line.indexOf("\"timestamp\""); //recherchez "\"timestamp\"" à partir du début de la réponse et copiez toutes les données après cela, ce sera votre horodatage

si (pos >= 0)

{

entier j = 0;

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

{

horodatage[j] = ligne[pos + 12 + j];

}

}

}

}

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

void setup()

{

Serial.begin(115200);

retard(10);

pinMode(pin, INPUT);

// On commence par se connecter à un réseau WiFi

WiFiMulti.addAP("nom_wifi", "mot_passe_Wifi");

Serial.println();

Serial.println();

Serial.print("Attendez le WiFi… ");

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

Serial.print(".");

retard (500);

}

Serial.println("");

Serial.println("WiFi connecté");

Serial.println("Adresse IP: ");

Serial.println(WiFi.localIP());

retard (500);

}

boucle vide()

{

int analogValue = analogRead(outputpin);

{

//////////////////////////////////// ENVOYER LA REQUÊTE ET RECEVOIR LA RÉPONSE//// ///////////////////

{

bool isDetected = digitalRead(pin);

si (est détecté){

Serial.println("Présence détectée");

}

retard (500);

}

Serial.print("connexion à ");

Serial.println(hôte); // à l'envers défini: - hôte = devapi2.thethingscloud.com ou 139.59.26.117

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

Serial.println("à l'intérieur obtenir l'horodatage\n");

if (!client.connect(time_server, {

revenir; //*-*-*-*-*-*-*-*-*-*

}

client.println("GET /api/timestamp HTTP/1.1"); //Qu'est-ce que cette partie fait, je n'ai pas compris

client.println("Hôte: baas.thethingscloud.com");

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

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

client.println();

GiveMeTimestamp(); //il appellera la fonction qui obtiendra la réponse d'horodatage du serveur

Serial.println("horodatage reçu");

Serial.println(horodatage);

Serial.println("à l'intérieur de ThingsCloudPost");

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

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

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

Serial.println(PostValue);

/* créer une instance de WiFiClientSecure */

Client WiFiClientSecure;

Serial.println("Connectez-vous au serveur via le port 443");

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

Serial.println("La connexion a échoué !");

} autre {

Serial.println("Connecté au serveur !");

/* créer une requête HTTP */

client.println( POST /devices/deviceData

client.println("Hôte: api.thingsai.io");

//client.println("Connexion: fermer");

client.println("Type de contenu: application/json");

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

client.println( Autorisation: Porteur eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTyfV6);

client.print("Contenu-Longueur: ");

client.println(PostValue.length());

client.println();

client.println(PostValue);

//////////////////////////////// L'AFFICHAGE des données sur le cloud est terminé et récupérez maintenant le formulaire de réponse cloud serveur//////////////////

Serial.print("En attente de réponse ");

while (!client.available()){

retard (50); //

Serial.print(".");

}

/* si les données sont disponibles alors recevoir et imprimer au terminal */

while (client.available()) {

char c = client.read();

Serial.write(c);

}

/* si le serveur s'est déconnecté, arrête le client */

if (!client.connected()) {

Serial.println();

Serial.println("Serveur déconnecté");javascript:;

client.stop();

}

}

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

retard(3000);

}

}

Étape 4: SORTIE

SORTIR
SORTIR

Il s'agit de la représentation graphique à barres des valeurs lues par le capteur dans la plate-forme cloud Thingsai, io,

Étape 5: Graphique

Graphique
Graphique

Il s'agit de la représentation graphique des valeurs du capteur. À partir du graphique ci-dessus, nous pouvons analyser l'application du capteur. Merci

Conseillé: