Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Dans ce tutoriel, je vais expliquer comment mesurer la température dans l'environnement en utilisant un capteur de température intégré présent dans la carte de développement esp32. esp32 a de nombreux capteurs intégrés comme le capteur à effet hall utilisé comme capteur de proximité, capteur tactile, capteur de température. Dans ce tutoriel, nous allons discuter du capteur de température.
Étape 1: COMPOSANTS:
Matériel:
carte de développement 1.esp32
Logiciel:
1. IDE Arduino
2. Thingsio.ai
Étape 2: REPRÉSENTATION DU SCHÉMA DE BLOC DE Esp32
Étape 3: CODAGE:
#comprendre
#comprendre
#comprendre
#comprendre
#comprendre
#ifdef _cplusplus
externe "C" {
#fin si
uint8_t temprature_sens_read();
//uint8_t g_phyFuns;
#ifdef _cplusplus
}
#fin si
nombre int=0, i, m, j, k;
entier t, t1, t2, t3;
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 WiFiClient;
//////////////////////////////////// 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);
tzset();
// On commence par
connexion à un réseau Wi-FiWiFiMulti.addAP("dlink_DWR-113", "madhukar66");
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);
}
uint8_t temp_farenheit;
float temp_celsius;
char strftime_buf[64];
time_t maintenant = 0;
struct tm timeinfo;
char buf[256];
boucle vide()
{
// int valeuranalogique =
analogRead(outputpin);
{
//////////////////////////////////// ENVOYER LA REQUÊTE ET
RECEVOIR LA RÉPONSE//////////////////////
//
t1=(analogValue/1024.0) *5000;
//
Serial.print("temp: ");
// Serial.println(t1);
/
/ t2=(t1/10);
//
Serial.print("celc: ");
//
Serial.println(t2);
/
/ t3=((t2 *
9)/5 + 32);
//
Serial.print("fhrn: ");
//
Serial.println(t3); //Pause;localtime_r(&now, &timeinfo);strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo);sprintf(buf, "début de l'analyse %02d:%02d:%02d ", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
Impression.série
(buff);
temp_farenheit=
temprature_sens_read();
temp_celsius = (temp_farenheit - 32) / 1,8;Serial.print("Temp onBoard ");Serial.print(temp_farenheit);Serial.print("°F ");Serial.print(temp_celsius);Serial.println("°C");
retard(1000);
maintenant++;
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 le
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\": 61121695920, \"slave_id\": 2";
PostValue =
PostValue + ", \"dts\":" +timestamp;
PostValue =
PostValue +", \"data\":{"TEMP\":" + temp_farenheit +"}"+"}";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.kaY6OMj5cYlWNqC2PNTyfV6);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
pour la 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 la
serveur déconnecté, arrêter le client */
si
(!client.connected()) {Serial.println();Serial.println("Serveur déconnecté");
client.stop();
}
}
Serial.println( ///////////////////// LA FIN
///////////////////// );
retard(3000);
}
}
Étape 4: SORTIE:
Voici la sortie des valeurs de température lues par le capteur.
Étape 5: GRAPHIQUES:
La représentation graphique des valeurs lues par le capteur de température embarqué.