Sommario:
- Fase 1: COMPONENTI:
- Fase 2: RAPPRESENTAZIONE SCHEMA A BLOCCHI DI Esp32
- Fase 3: CODIFICA:
- Fase 4: USCITA:
- Fase 5: GRAFICI:
- Passaggio 6:
Video: Misurazione della temperatura utilizzando la piattaforma Esp32 e Thingsio.ai: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
In questo tutorial spiegherò come misurare la temperatura nell'ambiente circostante utilizzando il sensore di temperatura integrato presente nella scheda di sviluppo esp32. esp32 ha molti sensori integrati come il sensore hall utilizzato come sensore di prossimità, sensore tattile, sensore di temperatura. In questo tutorial parleremo del sensore di temperatura.
Fase 1: COMPONENTI:
Hardware:
Scheda di sviluppo 1.esp32
Software:
1. Arduino IDE
2. Thingsio.ai
Fase 2: RAPPRESENTAZIONE SCHEMA A BLOCCHI DI Esp32
Fase 3: CODIFICA:
#includere
#includere
#includere
#includere
#includere
#ifdef _cplusplus
esterno "C" {
#finisci se
uint8_t temprature_sens_read();
//uint8_t g_phyFuns;
#ifdef _cplusplus
}
#finisci se
int conteggio=0, i, m, j, k;
int t, t1, t2, t3;
int outputpin= A0;//ds18b20
//////////////////////////////////////// TUTTE LE DICHIARAZIONI
per CLOUD //////////////////////////////
const char* host = "api.thingsai.io"; // OPPURE host =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; //
OPPURE /api/v2/thingscloud2/_table/data_ac
const char* time_server =
"baas.thethingscloud.com"; //questo serve per convertire il timestamp
const int httpPort = 80;
const int httpsPort = 443;
const char* server =
"api.thingsai.io"; // URL del server
char timestamp[10];
WiFi Multi WiFi Multi;
// Usa la classe WiFiClient per creare connessioni TCP
client WiFi Client;
////////////////////////////////////// ORARIO
Funzione CALCOLO//////////////////////////////////////
int GiveMeTimestamp()
{
unsigned lungo
timeout = millis();
//client WiFiClient;
mentre
(cliente.disponibile() == 0)
{
if (milli() -
timeout > 50000)
{
cliente.stop();
restituisce 0;
}
}
mentre (client.disponibile())
{
Linea di stringa =
client.readStringUntil('\r'); //indexOf() è una funzione per cercare smthng, restituisce -1 se non trovata
int pos =
line.indexOf("\"timestamp\""); //cerca "\"timestamp\"" dall'inizio della risposta ottenuta e copia tutti i dati dopo, sarà il tuo timestamp
if (pos >=
0)
{
intj = 0;for(j=0;j<10;j++)
{timestamp[j] = riga[pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
configurazione nulla()
{Serial.begin(115200);
ritardo(10);
tzset();
// Iniziamo da
connessione a una rete WiFiWiFiMulti.addAP("dlink_DWR-113", "madhukar66");
Serial.println();
Serial.println();Serial.print("Attendi WiFi… ");while(WiFiMulti.run() != WL_CONNECTED) {Serial.print(".");
ritardo (500);
}Serial.println("");Serial.println("WiFi connesso");Serial.println("Indirizzo IP: ");Serial.println(WiFi.localIP());
ritardo (500);
}
uint8_t temp_farenheit;
float temp_celsius;
char strftime_buf[64];
ora_t ora = 0;
struct tm timeinfo;
char buf[256];
ciclo vuoto()
{
// int AnalogValue =
analogRead(pin di uscita);
{
/////////////////////////////////////// INVIA LA DOMANDA E
RICEVERE LA RISPOSTA///////////////////////
//
t1=(ValoreAnalogico/1024.0) *5000;
//
Serial.print("temp: ");
// Serial.println(t1);
/
/t2=(t1/10);
//
Serial.print("cel: ");
//
Serial.println(t2);
/
/t3=((t2 *
9)/5 + 32);
//
Serial.print("fhrn: ");
//
Serial.println(t3); //rottura;localtime_r(&now, &timeinfo);strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo);sprintf(buf, "avvio scansione %02d:%02d:%02d ", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
Stampa.seriale
(bu);
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");
ritardo(1000);
ora++;
Serial.print( connessione
a );Serial.println(host); // rialzo definito: - host = devapi2.thethingscloud.com o 139.59.26.117
//////////////////////////////////// SNIPPET DI CODICE TIMESTAMP
/////////////////////////
Serial.println("inside ottieni timestamp\n");
Se
(!client.connect(time_server, {
Restituzione;
//*-*-*-*-*-*-*-*-*-*
}client.println("OTTIENI /api/timestamp HTTP/1.1"); //Cosa sta facendo questa parte, non l'ho capitoclient.println("Host: baas.thethingscloud.com");client.println("Cache-Control: no-cache");client.println("Token postino: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println();
GiveMeTimestamp(); // chiamerà il
funzione che otterrà la risposta del timestamp dal server
Serial.println("timestamp ricevuto");
Serial.println(timestamp);Serial.println("dentro ThingsCloudPost");
Stringa PostValue =
"{"id_dispositivo\": 61121695920, \"id_slave\": 2";
PostValue =
PostValue + ", \"dts\":" + timestamp;
PostValue =
PostValue +", \"data\":{"TEMP\":" + temp_farenheit +"}"+"}";Serial.println(PostValue);
/* crea un'istanza di WiFiClientSecure */
client WiFiClientSecure;Serial.println("Connetti al server tramite la porta 443");
Se
(!client.connect(server, 443)){Serial.println("Connessione fallita!");
} altro {Serial.println("Connesso al server!");
/* crea
richiesta */client.println("POST /devices/deviceData HTTP/1.1");client.println("Host: api.thingsai.io");//client.println("Connessione: chiudi");client.println("Tipo di contenuto: application/json");client.println("cache-control: no-cache");client.println("Autorizzazione: Portatore eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlkXNqC2PNTy);client.print("Lunghezza contenuto: ");client.println(PostValue.length());client.println();client.println(PostValue);
/////////////////////////////////INSERIRE i dati sul
cloud è fatto e ora ottieni il modulo di risposta server cloud//////////////////
Serial.print( In attesa
per risposta );
mentre
(!client.disponibile()){
ritardo(50);
//Serial.print(".");
}
/* se i dati sono
disponibile quindi ricevi e stampa su Terminale */
mentre
(cliente.disponibile()) {
carattere c =
client.read();Serial.write(c);
}
/* se la
server disconnesso, arresta il client */
Se
(!client.connected()) {Serial.println();Serial.println("Server disconnesso");
cliente.stop();
}
}
Serial.println( ////////////////////// FINE
///////////////////// );
ritardo (3000);
}
}
Fase 4: USCITA:
Ecco l'output dei valori di temperatura letti dal sensore.
Fase 5: GRAFICI:
La rappresentazione grafica dei valori letti dal sensore di temperatura di bordo.
Consigliato:
Misurazione della temperatura utilizzando XinaBox e un termistore: 8 passaggi
Misurazione della temperatura utilizzando XinaBox e un termistore: misurare la temperatura di un liquido utilizzando un ingresso analogico xChip di XinaBox e una sonda a termistore
Monitoraggio della temperatura e dell'umidità DHT utilizzando ESP8266 e la piattaforma IoT AskSensors: 8 passaggi
Monitoraggio della temperatura e dell'umidità DHT utilizzando ESP8266 e la piattaforma IoT AskSensors: in una precedente istruzione, ho presentato una guida passo passo per iniziare con il nodeMCU ESP8266 e la piattaforma IoT AskSensors. In questo tutorial, sto collegando un sensore DHT11 al nodo MCU. Il DHT11 è un sensore di temperatura e umidità comunemente usato
ESP8266 Nodemcu Monitoraggio della temperatura utilizzando DHT11 su un server Web locale - Ottieni la temperatura e l'umidità della stanza sul tuo browser: 6 passaggi
ESP8266 Nodemcu Monitoraggio della temperatura utilizzando DHT11 su un server Web locale | Ottieni la temperatura e l'umidità della stanza sul tuo browser: Ciao ragazzi, oggi faremo un'umidità e l'umidità; sistema di monitoraggio della temperatura utilizzando ESP 8266 NODEMCU & Sensore di temperatura DHT11. La temperatura e l'umidità saranno ottenute da DHT11 Sensor & può essere visto su un browser quale pagina web verrà gestita
Piattaforma IoT di base con RaspberryPi, WIZ850io: Driver del dispositivo della piattaforma: 5 passaggi (con immagini)
Piattaforma IoT di base con RaspberryPi, WIZ850io: Driver del dispositivo della piattaforma: conosco la piattaforma RaspberryPi per IoT. Recentemente WIZ850io è stato annunciato da WIZnet. Quindi ho implementato un'applicazione RaspberryPi tramite la modifica del SW Ethernet perché posso gestire facilmente un codice sorgente. Puoi testare Platform Device Driver tramite RaspberryPi
Misurazione del contenuto di umidità del suolo utilizzando la piattaforma Esp32 e Thingsio.ai: 6 passaggi
Misurazione del contenuto di umidità del suolo utilizzando la piattaforma Esp32 e Thingsio.ai: in questo tutorial spiegherò la lettura del contenuto di umidità nel suolo utilizzando esp32 e quindi l'invio dei valori alla piattaforma cloud IoT thingsio.ai