Table des matières:
- Étape 1: Création et connexion à la plateforme THINGSIO
- Étape 2: Création d'un nouveau projet
- Étape 3: Création d'un nouvel appareil
- Étape 4: Définition des paramètres de l'appareil
- Étape 5: mise à jour de l'appareil
- Étape 6: Codage
- Étape 7: Sélection de la carte et du port de communication
- Étape 8: Connexions des circuits
- Étape 9: compiler et télécharger
- Étape 10: Moniteur série
- Étape 11: Lectures
- Étape 12: Représentation graphique
- Étape 13:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
HEY…..aujourd'hui, nous allons apprendre à mesurer l'intensité de la lumière et à publier les valeurs dans la plate-forme cloud THINGSAI IOT en utilisant ESP32.
Les conditions requises pour réaliser ce projet sont
1. Carte de développement ESP32 (j'ai utilisé ESP32 DEVKIT V1)
2. Capteur LDR
3. Fils de cavalier
4. Compte dans THINGSAI IOT PLATFORM
Étape 1: Création et connexion à la plateforme THINGSIO
Connectez-vous au compte THINGS AI. Si vous êtes nouveau, enregistrez-vous sur le compte en appuyant sur le bouton d'enregistrement et remplissez toutes les informations d'identification. Votre compte sera créé et à partir de là vous pourrez travailler sur la plateforme cloud et créer votre projet personnalisé
Étape 2: Création d'un nouveau projet
Après vous être connecté au compte, pour créer un projet, cliquez simplement sur le nouveau projet, puis donnez le nom du projet.
Étape 3: Création d'un nouvel appareil
après avoir créé le projet, la prochaine chose que vous devez faire est de créer un nouvel appareil. Donnez le nom de l'appareil et entrez l'ID de l'appareil manuellement ou généré par le système.
Étape 4: Définition des paramètres de l'appareil
Donner le paramètre de l'appareil puis sélectionner le type de paramètre
Étape 5: mise à jour de l'appareil
Sélectionnez le paramètre puis mettez à jour l'appareil
Étape 6: Codage
À partir des exemples de codes, sélectionnez le code d'esp32, copiez-le, puis collez-le dans l'IDE arduino et apportez les modifications nécessaires en fonction des besoins. j'ai donné le code ci-dessous
#include #include
#comprendre
nombre int=0, i, m, j, k;
int t; broche de sortie int = A0; //ds18b20
valeur du capteur int;
///////////////////////////////////// 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 WiFiClient;
///////////////////////////////////// Fonction CALCUL TIMESTAMP ///////// ////////////////////////////// int GiveMeTimestamp() { long timeout 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);
// On commence par se connecter à un réseau WiFi
WiFiMulti.addAP("wifi", "pswrd");
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/// ////////////////////
valeurducapteur = lectureanalogique(A0); // lecture de la broche d'entrée analogique 0
valeurcapteur=valeurcapteur/100;
Serial.print (valeur du capteur, DEC); // imprime la valeur lue
Serial.print(" \n"); // imprime un espace entre les nombres
retard(1000); // attendre 100 ms pour la prochaine lecture
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 obtenu client.println("Host: 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("timestamp receieved");
Serial.println(horodatage);
Serial.println("à l'intérieur de ThingsCloudPost");
String PostValue = "{"device_id\": 61121695844, \"slave_id\": 2";
PostValue = PostValue + ", \"dts\":" +timestamp;
PostValue = PostValue +", \"data\":{"INTENSITY\":" + \sensorvalue +"}"+"}";
Serial.println(PostValue);
/* crée une instance de WiFiClientSecure */ client WiFiClientSecure;
Serial.println("Connectez-vous au serveur via le port 443");
si (!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"); cl
ient.println("Type de contenu: application/json");
client.println("cache-control: no-cache");
client.println("Autorisation: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC9KajtW6s_AG7); 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 */
tandis que (client.available())
{
char c = client.read();
Serial.write(c);
}
/* si le serveur s'est déconnecté, arrête le client */
si (!client.connected())
{
Serial.println();
Serial.println("Serveur déconnecté");
client.stop();
}
} Serial.println("//////////////////// LA FIN /////////////////// /");
retard(3000); } }
Étape 7: Sélection de la carte et du port de communication
Dans les outils, sélectionnez la carte, puis sélectionnez le port com
Étape 8: Connexions des circuits
Le codage est effectué puis effectuez les connexions suivantes comme indiqué ci-dessous
CONNEXIONS:
GND de esp32 à GND du capteur LDR
3V3 0f esp32 au Vcc de la LDR
VP d'esp32 à l'A0 de la LDR
Étape 9: compiler et télécharger
compilez et téléchargez le code dans l'esp32, puis lisez les lectures du moniteur série. Cela montrerait un résultat quelque chose comme ça
Étape 10: Moniteur série
Les valeurs sont obtenues sur le moniteur série puis envoyées à la plateforme THINGSAI IOT Cloud.
Étape 11: Lectures
Cela montre les valeurs obtenues à partir de la carte esp32.
Étape 12: Représentation graphique
Il s'agit de la représentation graphique des valeurs obtenues. C'est la fin du tutoriel. J'espère que vous avez compris. Merci