Table des matières:

Mesure de la température à l'aide de la plate-forme Esp32 et Thingsio.ai : 6 étapes
Mesure de la température à l'aide de la plate-forme Esp32 et Thingsio.ai : 6 étapes

Vidéo: Mesure de la température à l'aide de la plate-forme Esp32 et Thingsio.ai : 6 étapes

Vidéo: Mesure de la température à l'aide de la plate-forme Esp32 et Thingsio.ai : 6 étapes
Vidéo: Création d'une station météo - Microcontrôleur ESP8266 et serveur Web 2024, Novembre
Anonim
Mesure de la température à l'aide de la plate-forme Esp32 et Thingsio.ai
Mesure de la température à l'aide de la plate-forme Esp32 et Thingsio.ai

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:

COMPOSANTS
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

SCHÉMA DE BLOC REPRÉSENTATION DE Esp32
SCHÉMA DE BLOC REPRÉSENTATION 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:

SORTIR
SORTIR

Voici la sortie des valeurs de température lues par le capteur.

Étape 5: GRAPHIQUES:

GRAPHIQUES
GRAPHIQUES
GRAPHIQUES
GRAPHIQUES

La représentation graphique des valeurs lues par le capteur de température embarqué.

Conseillé: