Innehållsförteckning:
- Steg 1: KOMPONENTER:
- Steg 2: BLOCK DIAGRAM REPRESENTATION AV Esp32
- Steg 3: KODNING:
- Steg 4: UTGÅNG:
- Steg 5: GRAFIK:
- Steg 6:
Video: Temperaturmätning med Esp32 och Thingsio.ai -plattformen: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
I denna handledning ska jag förklara hur man mäter temperaturen i omgivningen med hjälp av inbyggd temperatursensor som finns i esp32 utvecklingsbräda. esp32 har många inbyggda sensorer som hallsensorn som används som närhetssensor, beröringssensor, temperatursensor. I denna handledning kommer vi att diskutera om temperaturgivaren.
Steg 1: KOMPONENTER:
Hårdvara:
1.esp32 utvecklingskort
Programvara:
1. Arduino IDE
2. Thingsio.ai
Steg 2: BLOCK DIAGRAM REPRESENTATION AV Esp32
Steg 3: KODNING:
#omfatta
#omfatta
#omfatta
#omfatta
#omfatta
#ifdef _cplusplus
extern "C" {
#endif
uint8_t temprature_sens_read ();
// uint8_t g_phyFuns;
#ifdef _cplusplus
}
#endif
int count = 0, i, m, j, k;
int t, t1, t2, t3;
int outputpin = A0; // ds18b20
///////////////////////////////////////////////////////////////////////////////
för CLOUD ////////////////////////////////////
const char* host = "api.thingsai.io"; // ELLER värd =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; //
ELLER/api/v2/thingscloud2/_table/data_ac
const char* time_server =
"baas.thethingscloud.com"; // detta är att konvertera tidsstämpel
const int httpPort = 80;
const int httpsPort = 443;
const char* server =
"api.thingsai.io"; // Server -URL
rödstämpel [10];
WiFiMulti WiFiMulti;
// Använd WiFiClient -klass för att skapa TCP -anslutningar
WiFiClient -klient;
/////////////////////////////////////// TIDSSTÄMPEL
BERÄKNING funktion ////////////////////////////////////////
int GiveMeTimestamp ()
{
osignerad lång
timeout = millis ();
// WiFiClient -klient;
medan
(client.available () == 0)
{
om (millis () -
timeout> 50000)
{
client.stop ();
returnera 0;
}
}
medan (client.available ())
{
Stränglinje =
client.readStringUntil ('\ r'); // indexOf () är en funktion för att söka efter smthng, den returnerar -1 om den inte hittas
int pos =
line.indexOf ("\" tidsstämpel / ""); // sök efter "\" tidsstämpel / "" från början av svaret och kopiera all data efter det, det blir din tidsstämpel
om (pos> =
0)
{
int j = 0;för (j = 0; j <10; j ++)
{tidsstämpel [j] = rad [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup ()
{Serial.begin (115200);
fördröjning (10);
tzset ();
// Vi börjar med
ansluta till ett WiFi -nätverkWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");
Serial.println ();
Serial.println ();Serial.print ("Vänta på WiFi …");medan (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");
fördröjning (500);
}Serial.println ("");Serial.println ("WiFi ansluten");Serial.println ("IP -adress:");Serial.println (WiFi.localIP ());
fördröjning (500);
}
uint8_t temp_farenheit;
flyta temp_celsius;
char strftime_buf [64];
time_t nu = 0;
struct tm timeinfo;
röding buf [256];
void loop ()
{
// int analogValue =
analogRead (outputpin);
{
//////////////////////////////////////////// SKICKA FRÅGAN OCH
MOTTA SVARET /////////////////////////
//
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); //ha sönder;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);
Serial.print
(buf);
temp_farenheit =
temprature_sens_read ();
temp_celsius = (temp_farenheit - 32) / 1,8;Serial.print ("Temp ombord");Serial.print (temp_farenheit);Serial.print ("° F");Serial.print (temp_celsius);Serial.println ("° C");
fördröjning (1000);
nu ++;
Serial.print ( anslutning
till );Serial.println (värd); // definierad uppåt:- host = devapi2.thethingscloud.com eller 139.59.26.117
//////////////////////////////
/////////////////////////
Serial.println ("inside get timestamp / n");
om
(! client.connect (time_server, {
lämna tillbaka;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/tidsstämpel HTTP/1.1"); // Vad gör den här delen, jag förstod inteclient.println ("Värd: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // det ringer
funktion som kommer att få tidsstämpelns svar från servern
Serial.println ("tidsstämpel mottagen");
Serial.println (tidsstämpel);Serial.println ("inside ThingsCloudPost");
String PostValue =
"{" device_id / ": 61121695920, \" slave_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + tidsstämpel;
PostValue =
PostValue +", \" data / ": {" TEMP / ":" +temp_farenheit +"}" +"}";Serial.println (PostValue);
/ * skapa en instans av WiFiClientSecure */
WiFiClientSecure -klient;Serial.println ("Anslut till servern via port 443");
om
(! client.connect (server, 443)) {Serial.println ("Anslutningen misslyckades!");
} annat {Serial.println ("Ansluten till server!");
/* skapa
begär */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Värd: api.thingsai.io");//client.println("Connection: close ");client.println ("Innehållstyp: applikation/json");client.println ("cache-control: no-cache");client.println ("Auktorisation: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC9PN5s9x59y7j9y7s9y7j9j7j9j5j9j5jjjj9JyJjjj9JjjJjJjJjJjJjjjJjJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJclient.print ("Content-Length:");client.println (PostValue.length ());client.println ();client.println (PostValue);
///////////////////////////////////////
molnet är klart och få nu svarsformuläret molnserver ////////////////////
Serial.print ( Väntar
för svar );
medan
(! client.available ()) {
fördröjning (50);
//Serial.print (".");
}
/* om data är
tillgänglig, ta sedan emot och skriv ut till Terminal */
medan
(client.available ()) {
char c =
client.read ();Serial.write (c);
}
/* om
servern frånkopplad, stoppa klienten */
om
(! client.connected ()) {Serial.println ();Serial.println ("Server bortkopplad");
client.stop ();
}
}
Serial.println ( ////////////////////////// ENDEN
///////////////////// );
fördröjning (3000);
}
}
Steg 4: UTGÅNG:
Här är utmatningen av värden för temperatur avlästa från sensorn.
Steg 5: GRAFIK:
Den grafiska framställningen av värdena som läses från den inbyggda temperaturgivaren.
Rekommenderad:
Temperaturmätning med hjälp av XinaBox och en termistor: 8 steg
Temperaturmätning med hjälp av XinaBox och en termistor: Mät temperaturen på en vätska med en analog ingång xChip från XinaBox och en termistorsond
Temperaturmätning med STS21 och Arduino Nano: 4 steg
Temperaturmätning med STS21 och Arduino Nano: STS21 digital temperatursensor erbjuder överlägsen prestanda och ett platsbesparande fotavtryck. Den ger kalibrerade, lineariserade signaler i digitalt I2C -format. Tillverkningen av denna sensor är baserad på CMOSens -teknik, som tillskrivs den överlägsna
Temperaturmätning Automatisk och röstinformation: 5 steg (med bilder)
Temperaturmätning Automatisk och röstinformation: Den senaste dagen kämpar hela världen med virus Covid19. Första kontrollen av påverkade personer (eller misstänks ha påverkats) mäter kroppstemperatur. Så det här projektet är utformat efter en modell som kan mäta kroppstemperaturen automatiskt och informera via vo
Temperaturmätning med MCP9803 och Arduino Nano: 4 steg
Temperaturmätning med MCP9803 och Arduino Nano: MCP9803 är en 2-trådig temperatursensor med hög noggrannhet. De är förkroppsligade med användarprogrammerbara register som underlättar temperaturavkänningstillämpningar. Denna sensor är lämplig för mycket sofistikerat temperaturövervakningssystem med flera zoner.
Temperaturmätning med TMP112 och Arduino Nano: 4 steg
Temperaturmätning med hjälp av TMP112 och Arduino Nano: TMP112 hög precision, låg effekt, digital temperatursensor I2C MINI-modul. TMP112 är idealisk för utökad temperaturmätning. Denna enhet erbjuder en noggrannhet på ± 0,5 ° C utan att kräva kalibrering eller extern komponentsignalkonditionering. Jag