Мазмұны:
- 1 -қадам: ҚҰРАМДАР:
- 2 -қадам: Esp32 БЛОКТЫҚ ДИАГРАММАСЫН ӨКІЛДЕУ
- 3 -қадам: КОД:
- 4 -қадам: ШЫҒУ:
- 5 -қадам: ГРАФИКА:
- 6 -қадам:
Бейне: Esp32 және Thingsio.ai платформасы арқылы температураны өлшеу: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Бұл оқулықта мен esp32 әзірлеу тақтасында орнатылған кіріктірілген температура сенсоры арқылы айналадағы температураны өлшеуді түсіндіремін. esp32 -де жақындық сенсоры, сенсорлық сенсор, температура сенсоры ретінде пайдаланылатын зал сенсоры сияқты көптеген кіріктірілген сенсорлар бар. Бұл оқулықта біз температура сенсоры туралы сөйлесетін боламыз.
1 -қадам: ҚҰРАМДАР:
Жабдық:
1.esp32 дамыту тақтасы
Бағдарламалық қамтамасыз ету:
1. Arduino IDE
2. Thingsio.ai
2 -қадам: Esp32 БЛОКТЫҚ ДИАГРАММАСЫН ӨКІЛДЕУ
3 -қадам: КОД:
#қосу
#қосу
#қосу
#қосу
#қосу
#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
///////////////////////////////////////// БАРЛЫҚ ДЕКЛАРАЦИЯ
CLOUD үшін ///////////////////////////////
const char* host = «api.thingsai.io»; // НЕМЕСЕ хост =
devapi2.thethingscloud.com
const char* post_url = «/devices/deviceData»; //
НЕМЕСЕ/api/v2/thingscloud2/_table/data_ac
const char* time_server =
«baas.thethingscloud.com»; // бұл уақыт белгісін түрлендіру
const int httpPort = 80;
const int httpsPort = 443;
const char* сервер =
«api.thingsai.io»; // Сервердің URL мекенжайы
таңбаның уақыт белгісі [10];
WiFiMulti WiFiMulti;
// TCP қосылымдарын жасау үшін WiFiClient класын қолданыңыз
WiFiClient клиенті;
////////////////////////////////////////// TIMESTAMP
Есептеу функциясы ////////////////////////////////////////////////////////////////////////////////////////////
int GiveMeTimestamp ()
{
қол қойылмаған ұзақ
күту уақыты = millis ();
// WiFiClient клиенті;
кезінде
(client.available () == 0)
{
егер (миллис () -
күту уақыты> 50000)
{
client.stop ();
қайтару 0;
}
}
while (client.available ())
{
Жол жолы =
client.readStringUntil ('\ r'); // indexOf () -smthng іздеу функциясы, ол табылмаса -1 қайтарады
int pos =
line.indexOf («\» уақыт белгісі / «»); // жауаптың басынан бастап «\» уақыт белгісін / «» іздеңіз және содан кейін барлық деректерді көшіріңіз, бұл сіздің уақыт белгісі болады
егер (pos> =
0)
{
int j = 0;үшін (j = 0; j <10; j ++)
{уақыт белгісі [j] = жол [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
жарамсыз орнату ()
{Serial.begin (115200);
кешіктіру (10);
tzset ();
// Біз бастаймыз
WiFi желісіне қосылуWiFiMulti.addAP («dlink_DWR-113», «madhukar66»);
Serial.println ();
Serial.println ();Serial.print («WiFi күтіңіз …»);while (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print («.»);
кешіктіру (500);
}Serial.println («»);Serial.println («WiFi қосылған»);Serial.println («IP мекенжайы:»);Serial.println (WiFi.localIP ());
кешіктіру (500);
}
uint8_t temp_farenheit;
float temp_celsius;
char strftime_buf [64];
time_t now = 0;
tm timeinfo құрылымы;
char buf [256];
бос цикл ()
{
// int analogValue =
analogRead (шығыс түйреуі);
{
////////////////////////////////////////// СҰРАҚТЫ Жіберу ЖӘНЕ
ЖАУАП АЛУ ///////////////////////
//
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); // үзіліс;localtime_r (& қазір, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), «%c», & timeinfo);sprintf (buf, «сканерлеудің басталуы%02d:%02d:%02d», timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
Сериялық баспа
(қате);
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»);
кешіктіру (1000);
қазір ++;
Serial.print («қосылу
дейін «);Serial.println (хост); // жоғарыдан анықталған:- хост = devapi2.thethingscloud.com немесе 139.59.26.117
///////////////////////////////////////////////////// УАҚЫТТЫҢ КОДЫН СНИППЕТ
/////////////////////////
Serial.println («ішінде уақыт белгісін алу / n»);
егер
(! client.connect (time_server, {
қайтару;
//*-*-*-*-*-*-*-*-*-*
}client.println («GET/api/уақыт белгісі HTTP/1.1»); // Бұл бөлім не істейді, мен түсінбедімclient.println («Хост: baas.thethingscloud.com»);client.println («Кэшті басқару: кэшсіз»);client.println («Пошташы-Токен: ea3c18c6-09ba-d049-ccf3-369a22a284b8»);
client.println ();
GiveMeTimestamp (); // ол шақырады
серверден уақыт белгісінің жауабын алатын функция
Serial.println («уақыт белгісі алынды»);
Serial.println (уақыт белгісі);Serial.println («ThingsCloudPost ішінде»);
Жолдың мәні =
«{» device_id / «: 61121695920, \» slave_id / «: 2»;
PostValue =
PostValue + «, \» dts / «:» + уақыт белгісі;
PostValue =
PostValue +«, \» data / «: {» TEMP / «:» +temp_farenheit +«}» +«}»;Serial.println (PostValue);
/ * WiFiClientSecure данасын жасаңыз */
WiFiClientSecure клиенті;Serial.println («443 порт арқылы серверге қосылу»);
егер
(! client.connect (сервер, 443)) {Serial.println («Байланыс сәтсіз болды!»);
} басқа {Serial.println («Серверге қосылды!»);
/* HTTP құру
сұраныс */client.println («POST/devices/deviceData HTTP/1.1»);client.println («Хост: api.thingsai.io»);//client.println( Байланыс: жабу «);client.println («Content-Type: application/json»);client.println («кэшті басқару: кэшсіз»);client.println («Авторизация: жеткізуші eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNT»)client.print («Content-Length:»);client.println (PostValue.length ());client.println ();client.println (PostValue);
Деректерді орналастыру //
бұлт жасалды, енді бұлт серверінің жауап формасын алыңыз /////////////////
Serial.print («Күтуде
жауап үшін «);
кезінде
(! client.available ()) {
кешіктіру (50);
//Serial.print («.»);
}
/* егер деректер болса
қол жетімді, содан кейін алыңыз және Терминалға басып шығарыңыз */
кезінде
(client.available ()) {
char c =
client.read ();Serial.write (c);
}
/* егер
сервер ажыратылды, клиентті тоқтату */
егер
(! client.connected ()) {Serial.println ();Serial.println («Сервер ажыратылды»);
client.stop ();
}
}
Serial.println («////////////////////// СОҢЫ
///////////////////// );
кешіктіру (3000);
}
}
4 -қадам: ШЫҒУ:
Бұл сенсордан оқылатын температура мәндерінің шығуы.
5 -қадам: ГРАФИКА:
Борттық температура сенсорынан оқылатын мәндердің графикалық көрінісі.
Ұсынылған:
AD7416ARZ және Raspberry Pi көмегімен температураны өлшеу: 4 қадам
AD7416ARZ және Raspberry Pi көмегімен температураны өлшеу: AD7416ARZ-бұл цифрлық түрлендіргіштерге аналогты төрт бір арналы аналогы бар 10 биттік температура сенсоры және оған қосылған борттық температура сенсоры. Бөлшектердегі температура сенсорына мультиплексорлық арналар арқылы қол жеткізуге болады. Бұл жоғары дәлдіктегі температура
STS21 және Arduino Nano көмегімен температураны өлшеу: 4 қадам
STS21 және Arduino Nano көмегімен температураны өлшеу: STS21 сандық температура сенсоры жоғары өнімділікті және кеңістікті үнемдеуге мүмкіндік береді. Ол сандық, I2C форматында калибрленген, сызықты сигналдарды береді. Бұл сенсорды жасау CMOSens технологиясына негізделген, ол жоғары деңгейге жатады
Температураны автоматты түрде өлшеу және дауыстық ақпарат: 5 қадам (суреттермен)
Температураны автоматты түрде өлшеу және дауыстық ақпарат: Соңғы күні бүкіл әлем Covid19 вирусымен күресуде. Алдымен зардап шеккен адамдарды (немесе күдіктіні) тексеру - дене температурасын өлшеу. Осылайша, бұл жоба дене температурасын автоматты түрде өлшейтін және дыбыс арқылы хабарлауға болатын модельге арналған
ADT75 және Arduino Nano көмегімен температураны өлшеу: 4 қадам
ADT75 және Arduino Nano көмегімен температураны өлшеу: ADT75 - бұл өте дәл, сандық температура сенсоры. Ол температуралық диапазон мен цифрландыруға арналған диапазондағы 12-биттік аналогтық диапазоннан тұрады. Оның жоғары сезімтал сенсоры оны маған жеткілікті сауатты етеді
Esp32 және Thingsio.ai платформасы арқылы топырақ ылғалдылығын өлшеу: 6 қадам
Esp32 және Thingsio.ai платформасы арқылы топырақ ылғалдылығын өлшеу: Бұл оқулықта мен esp32 көмегімен топырақтағы ылғалдылықтың оқылуы, содан кейін мәндерді thingsio.ai IoT бұлтты платформасына жіберу туралы түсіндіремін