Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Dans ce didacticiel, je vais expliquer la mesure de la proximité d'un appareil et la publication des valeurs dans la plate-forme cloud Thingsai, io à l'aide d'un capteur à effet hall et d'une carte de développement esp32.
Un capteur à effet Hall est un appareil utilisé pour mesurer l'amplitude d'un champ magnétique. Sa tension de sortie est directement proportionnelle à la force du champ magnétique qui la traverse. Les capteurs à effet Hall sont utilisés pour les applications de détection de proximité, de positionnement, de détection de vitesse et de détection de courant.
Étape 1: COMPOSANTS
Composants matériels:
1. Capteur à effet Hall
2. carte de développement esp32
3. Cavaliers
Composants logiciels:
1. IDE Arduino
2. Les chosesIO. AI
Étape 2: CONNEXIONS:
Capteur à effet Hall ---------------------- esp32
Aout --------------------vp
Gnd ----------------------------- Gnd
Vcc------------------------------3V3
Étape 3: CODAGE:
#comprendre
#comprendre
#comprendre
nombre int=0, i, m, j, k;
mesure int;
broche de sortie int = A0; //ds18b20
///////////////////////////////////// TOUTES LES DECLARATIONS
pour NUAGE /////////////////////////////
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* serveur_heure =
"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;
//////////////////////////////////// HORAIRE
Fonction CALCUL /////////////////////////////////////
int GiveMeTimestamp()
{
long non signé
délai d'attente = millis();
// Client WiFiClient;
tandis que
(client.disponible() == 0)
{
si (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é
position int =
line.indexOf("\"horodatage\""); //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
connexion à un réseau Wi-Fi
WiFiMulti.addAP("nom_wifi", "Mot de 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 valeuranalogique =
analogRead(outputpin);
{
//////////////////////////////////// ENVOYER LA REQUÊTE ET
RECEVOIR LA RÉPONSE//////////////////////
mesure int
= 0;
mesure =
hallLire();Serial.print("Mesure du capteur à effet Hall: ");Serial.println(mesure);
retard(1000);Serial.print("connexion à ");Serial.println(hôte); // à l'envers défini: - hôte = devapi2.thethingscloud.com ou 139.59.26.117
/////////////////////////////////// extrait de code d'horodatage
/////////////////////////
Serial.println("à l'intérieur obtenir l'horodatage\n");
si
(!client.connect(time_server, {
revenir;
//*-*-*-*-*-*-*-*-*-*
}client.println("GET /api/timestamp HTTP/1.1"); //Qu'est-ce que cette partie fait, je n'ai pas comprisclient.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");
Chaîne PostValue =
"{"device_id\": 61121696007, \"slave_id\": 2";
PostValue =
PostValue + ", \"dts\":" +timestamp;
PostValue =
PostValue +", \"data\":{"proximity\":" + mesure +"}"+"}";Serial.println(PostValue);
/* créer 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
demander */
client.println( POST
/devices/deviceData HTTP/1.1");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.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m7tdww);client.print("Contenu-Longueur: ");client.println(PostValue.length());
client.println();client.println(PostValue);
////////////////////////////////PUBLICATION des données sur le
cloud est terminé et obtenez maintenant le formulaire de réponse serveur cloud /////////////////
Serial.print( En attente de réponse
);
tandis que
(!client.available()){
retard (50);
//Serial.print(".");
}
/* si les données sont
disponible puis recevoir et imprimer au Terminal */
tandis que
(client.disponible()) {
caractère 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 4: RÉSULTAT:
Les valeurs lues par le capteur sont envoyées avec succès au cloud IOT et le graphique est créé en tant que proximité en fonction du temps. Ainsi, le fonctionnement du capteur est analysé et utilisé en fonction des domaines d'application requis.
Étape 5: Compléter le didacticiel:
Il s'agit du projet complet pour mesurer la proximité d'un appareil à l'aide du capteur à effet Hall esp32 et de la plateforme cloud Thingsai.io. Merci