Table des matières:
- Étape 1: COMPOSANTS:
- Étape 2: REPRÉSENTATION DU SCHÉMA DE BLOC DE Esp32
- Étape 3: CODAGE:
- Étape 4: SORTIE:
- Étape 5: GRAPHIQUES:
- Étape 6:
Vidéo: Mesure de la température à l'aide de la plate-forme Esp32 et Thingsio.ai : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
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é.
Conseillé:
Mesure de température à l'aide de XinaBox et d'une thermistance : 8 étapes
Mesure de température à l'aide de la XinaBox et d'une thermistance : Mesurez la température d'un liquide à l'aide d'une entrée analogique xChip de la XinaBox et d'une sonde à thermistance
Mesure de la température à l'aide de l'AD7416ARZ et du Raspberry Pi : 4 étapes
Mesure de la température à l'aide de l'AD7416ARZ et du Raspberry Pi : L'AD7416ARZ est un capteur de température 10 bits avec quatre convertisseurs analogique-numérique à canal unique et un capteur de température intégré qui y est intégré. Le capteur de température sur les pièces est accessible via les canaux du multiplexeur. Cette température de haute précision
Mesure de la température à l'aide de STS21 et Arduino Nano : 4 étapes
Mesure de la température à l'aide de STS21 et Arduino Nano : le capteur de température numérique STS21 offre des performances supérieures et un encombrement réduit. Il fournit des signaux calibrés et linéarisés au format numérique I2C. La fabrication de ce capteur est basée sur la technologie CMOSens, qui attribue à la qualité supérieure
Mesure de la température à l'aide de l'ADT75 et de l'Arduino Nano : 4 étapes
Mesure de la température à l'aide de l'ADT75 et de l'Arduino Nano : l'ADT75 est un capteur de température numérique très précis. Il comprend un capteur de température à bande interdite et un convertisseur analogique-numérique 12 bits pour surveiller et numériser la température. Son capteur très sensible le rend assez compétent pour moi
Mesure de l'humidité et de la température à l'aide de HIH6130 et Arduino Nano : 4 étapes
Mesure d'humidité et de température à l'aide de HIH6130 et Arduino Nano : HIH6130 est un capteur d'humidité et de température avec sortie numérique. Ces capteurs offrent un niveau de précision de ±4% HR. Avec une stabilité à long terme de pointe, une véritable I2C numérique à compensation de température, une fiabilité de pointe, une efficacité énergétique