Inhoudsopgave:
- Stap 1: COMPONENTEN:
- Stap 2: BLOKDIAGRAM VERTEGENWOORDIGING VAN Esp32
- Stap 3: CODEREN:
- Stap 4: UITGANG:
- Stap 5: GRAFIEKEN:
- Stap 6:
Video: Temperatuurmeting met behulp van Esp32 en Thingsio.ai Platform - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
In deze tutorial ga ik uitleggen over het meten van de temperatuur in de omgeving met behulp van de ingebouwde temperatuursensor die aanwezig is in het esp32-ontwikkelbord. esp32 heeft veel ingebouwde sensoren zoals de hall-sensor die wordt gebruikt als de nabijheidssensor, aanraaksensor, temperatuursensor. In deze tutorial gaan we het hebben over de temperatuursensor.
Stap 1: COMPONENTEN:
Hardware:
1.esp32 ontwikkelbord
Software:
1. Arduino IDE
2. Thingsio.ai
Stap 2: BLOKDIAGRAM VERTEGENWOORDIGING VAN Esp32
Stap 3: CODEREN:
#erbij betrekken
#erbij betrekken
#erbij betrekken
#erbij betrekken
#erbij betrekken
#ifdef _cplusplus
externe "C" {
#stop als
uint8_t temprature_sens_read();
//uint8_t g_phyFuns;
#ifdef _cplusplus
}
#stop als
int telling=0, i, m, j, k;
int t, t1, t2, t3;
int outputpin = A0;//ds18b20
///////////////////////////////////////// ALLE VERKLARINGEN
voor CLOUD //////////////////////////////
const char* host = "api.thingsai.io"; // OF host =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; //
OF /api/v2/thingscloud2/_table/data_ac
const char* time_server =
"baas.thethingscloud.com"; //dit is om de tijdstempel te converteren
const int httpPort = 80;
const int httpsPort = 443;
const char* server =
"api.thingsai.io"; // Server-URL
char tijdstempel [10];
WiFiMulti WiFiMulti;
// Gebruik de WiFiClient-klasse om TCP-verbindingen te maken
WiFiClient-client;
//////////////////////////////////////// TIJDSSTEMPEL
BEREKENING functie///////////////////////////////////////
int GiveMeTimestamp()
{
niet ondertekend lang
time-out = millis();
// WiFiClient-client;
terwijl
(klant.beschikbaar() == 0)
{
als (millis() -
time-out > 50000)
{
klant.stop();
retourneer 0;
}
}
terwijl (client.available())
{
String lijn =
client.readStringUntil('\r'); //indexOf() is een functie om te zoeken naar smthng, het retourneert -1 indien niet gevonden
int pos =
line.indexOf("\"tijdstempel\""); // zoek naar "\"timestamp\"" vanaf het begin van het antwoord kreeg en kopieer daarna alle gegevens, dit is uw tijdstempel
als (pos >=
0)
{
intj = 0;voor(j=0;j<10;j++)
{tijdstempel [j] = regel [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
ongeldige setup()
{Serieel.begin(115200);
vertraging(10);
tzset();
// We beginnen met
verbinding maken met een wifi-netwerkWiFiMulti.addAP("dlink_DWR-113", "madhukar66");
Serieel.println();
Serieel.println();Serial.print("Wacht op wifi… ");while(WiFiMulti.run() != WL_CONNECTED) {Serieel.print(".");
vertraging (500);
}Serieel.println("");Serial.println("WiFi verbonden");Serial.println("IP-adres: ");Serial.println(WiFi.localIP());
vertraging (500);
}
uint8_t temp_farenheit;
zweven temp_celsius;
char strftime_buf[64];
time_t nu = 0;
struct tm tijdinfo;
char buf[256];
lege lus()
{
// int analoge waarde =
analoog lezen (uitvoerpin);
{
/////////////////////////////////////// VERZENDEN DE QUERY EN
ONTVANG HET ANTWOORD///////////////////////
//
t1=(analoge waarde/1024.0) *5000;
//
Serial.print("temp: ");
// Serieel.println(t1);
/
/ t2=(t1/10);
//
Serial.print("celc: ");
//
Seriële.println(t2);
/
/ t3=((t2 *
9)/5 + 32);
//
Serial.print("fhrn: ");
//
Seriële.println(t3); //pauze;localtime_r(&nu, &timeinfo);strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo);sprintf(buf, "scan start %02d:%02d:%02d", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
Serieafdruk
(buff);
temp_farenheit=
temprature_sens_read();
temp_celsius = (temp_farenheit - 32) / 1.8;Serial.print("Temp aan boord ");Serial.print(temp_farenheit);Serial.print("°F ");Serial.print(temp_celsius);Serial.println("°C");
vertraging (1000);
nu++;
Serial.print( verbinden
tot );Serieel.println(host); // gedefinieerde bovenkant: - host = devapi2.thethingscloud.com of 139.59.26.117
///////////////////////////////////// TIJDSTEMPEL CODESNIPPET
/////////////////////////
Serial.println("inside get timestamp\n");
indien
(!client.connect(time_server, {
opbrengst;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET /api/timestamp HTTP/1.1"); // Wat doet dit deel, ik heb het niet begrepenclient.println("Host: baas.thethingscloud.com");client.println("Cache-Control: no-cache");client.println ("Postbode-token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
klant.println();
GeefMeTijdstempel(); // het zal de. noemen
functie die de tijdstempelreactie van de server krijgt
Serial.println("tijdstempel ontvangen");
Serial.println (tijdstempel);Serial.println ("inside ThingsCloudPost");
Tekenreeks PostWaarde =
"{"device_id\": 61121695920, \"slave_id\": 2";
Postwaarde =
PostValue + ", \"dts\":" +tijdstempel;
Postwaarde =
PostValue +", \"data\":{"TEMP\":" + temp_farenheit +"}"+"}";Serial.println(PostValue);
/* maak een instantie van WiFiClientSecure */
WiFiClientSecure-client;Serial.println("Verbind met server via poort 443");
indien
(!client.connect(server, 443)){Serial.println("Verbinding mislukt!");
} anders {Serial.println("Verbonden met server!");
/* maak
verzoek */client.println("POST /devices/deviceData HTTP/1.1");client.println("Host: api.thingsai.io");//client.println ("Verbinding: sluiten");client.println ("Inhoudstype: applicatie/json");client.println("cache-control: no-cache");client.println("Autorisatie: Drager eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTk6");client.print ("Inhoudslengte: ");client.println(PostValue.length());klant.println();cliënt.println(PostValue);
//////////////////////////////////POST de gegevens op de
cloud is klaar en ontvang nu het antwoordformulier cloud server//////////////////
Serial.print( Wachten
voor antwoord );
terwijl
(!client.beschikbaar()){
vertraging (50);
//Serieel.print(".");
}
/* als gegevens zijn
beschikbaar, ontvang en print naar Terminal */
terwijl
(klant.beschikbaar()) {
char c =
klant.lezen();Serieel.schrijven(c);
}
/* als de
server verbroken, stop de client */
indien
(!client.verbonden()) {Serieel.println();Serial.println ("Server verbroken");
klant.stop();
}
}
Serial.println( ////////////////////// HET EINDE
///////////////////// );
vertraging (3000);
}
}
Stap 4: UITGANG:
Hier is de uitvoer van temperatuurwaarden die van de sensor zijn afgelezen.
Stap 5: GRAFIEKEN:
De grafische weergave van de waarden die worden afgelezen van de ingebouwde temperatuursensor.
Aanbevolen:
Temperatuurmeting met XinaBox en een thermistor: 8 stappen
Temperatuurmeting met XinaBox en een thermistor: Meet de temperatuur van een vloeistof met behulp van een analoge ingang xChip van XinaBox en een thermistorsonde
DHT-temperatuur- en vochtigheidsbewaking met behulp van de ESP8266 en het AskSensors IoT-platform: 8 stappen
DHT-temperatuur- en vochtigheidsbewaking met behulp van de ESP8266 en het AskSensors IoT-platform: in een vorige instructable presenteerde ik een stapsgewijze handleiding om aan de slag te gaan met de ESP8266-nodeMCU en het AskSensors IoT-platform. In deze tutorial sluit ik een DHT11-sensor aan naar het knooppunt MCU. De DHT11 is een veelgebruikte Temperatuur- en luchtbevochtiger
Digitale klok met netwerktijd met behulp van de ESP8266: 4 stappen (met afbeeldingen)
Digitale netwerkklok met de ESP8266: we leren hoe we een schattige kleine digitale klok kunnen bouwen die communiceert met NTP-servers en de netwerk- of internettijd weergeeft. We gebruiken de WeMos D1 mini om verbinding te maken met een wifi-netwerk, de NTP-tijd te verkrijgen en deze weer te geven op een OLED-module. De video hierboven
Vocht- en temperatuurmeting met behulp van HIH6130 en Arduino Nano: 4 stappen
Vocht- en temperatuurmeting met behulp van HIH6130 en Arduino Nano: HIH6130 is een vochtigheids- en temperatuursensor met digitale uitgang. Deze sensoren bieden een nauwkeurigheidsniveau van ±4% RV. Met toonaangevende stabiliteit op lange termijn, echte temperatuurgecompenseerde digitale I2C, toonaangevende betrouwbaarheid, energie-efficiëntie
Hoe u gebruikersniveaus van NUMA toevoegt aan uw exemplaar van N met behulp van NumADD Firefox AddOn: 4 stappen
Gebruikersniveaus van NUMA toevoegen aan uw exemplaar van N NumADD Firefox-add-on gebruiken: Elke gebruiker van Metanet's N-database op gebruikersniveau NUMA weet hoe onhandig de interface is voor het kopiëren van door gebruikers gemaakte niveaus naar uw exemplaar van het spel. NumADD, elimineert de noodzaak van kopiëren en plakken en maakt het overzetten van niveaus het werk van één muisklik