Агуулгын хүснэгт:
- Алхам 1: Бүрэлдэхүүн хэсгүүд:
- Алхам 2: Esp32 -ийн диаграмыг Блоклох
- Алхам 3: Кодлох:
- Алхам 4: ГАРАХ:
- Алхам 5: ГРАФИК:
- Алхам 6:
Видео: Esp32 болон Thingsio.ai платформ ашиглан температур хэмжилт: 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Энэхүү гарын авлагад би орчны температурыг хэмжих талаар esp32 хөгжлийн самбарт суурилуулсан температур мэдрэгчийг ашиглан тайлбарлах болно. esp32 нь ойрхон мэдрэгч, мэдрэгч, температур мэдрэгч болгон ашигладаг танхимын мэдрэгч гэх мэт олон мэдрэгчтэй. Энэ гарын авлагад бид температур мэдрэгчийн талаар ярилцах болно.
Алхам 1: Бүрэлдэхүүн хэсгүүд:
Техник хангамж:
1.esp32 хөгжүүлэх самбар
Програм хангамж:
1. Arduino IDE
2. Thingsio.ai
Алхам 2: Esp32 -ийн диаграмыг Блоклох
Алхам 3: Кодлох:
#оруулах
#оруулах
#оруулах
#оруулах
#оруулах
#ifdef _cplusplus
гадаад "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* хост = "api.thingsai.io"; // OR хост =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; //
OR/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 ("\" цагийн тэмдэг / ""); // хариултын эхэн үеэс эхлэн "\" timestamp / "" гэж хайгаад дараа нь бүх өгөгдлийг хуулж авбал энэ нь таны цаг хугацааны тэмдэг болно
хэрэв (pos> =
0)
{
int j = 0;(j = 0; j <10; j ++)
{цагийн тэмдэг [j] = мөр [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
хүчингүй тохиргоо ()
{Цуваа.begin (115200);
саатал (10);
tzset ();
// Бид эхэлж байна
WiFi сүлжээнд холбогдохWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");
Serial.println ();
Serial.println ();Serial.print ("WiFi хүлээнэ үү …");байхад (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 (outputpin);
{
////////////////////////////////////////// Асуулгыг илгээх ба
Хариултыг хүлээн авна уу ///////////////////////
//
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, "scan start%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");Цуваа.хэвлэх (temp_farenheit);Цуваа.хэвлэх ("° F");Цуваа.хэвлэх (temp_celsius);Serial.println ("° C");
саатал (1000);
одоо ++;
Serial.print ( холбож байна
руу );Serial.println (хост); // дээшээ тодорхойлсон:- хост = devapi2.thethingscloud.com эсвэл 139.59.26.117
//////////////////////////////////////// TIMESTAMP CODE SNIPPET
/////////////////////////
Serial.println ("дотор цаг хугацааны тэмдэг авах / n");
хэрэв
(! client.connect (time_server, {
буцах;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/timestamp HTTP/1.1"); // Энэ хэсэг юу хийж байна, би ойлгосонгүйclient.println ("Хөтлөгч: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Шууданч-Токен: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // үүнийг дуудах болно
серверээс цагийн тэмдгийн хариуг авах функц
Serial.println ("цагийн тэмдэг хүлээн авсан");
Serial.println (цагийн тэмдэг);Serial.println ("ThingsCloudPost дотор");
String PostValue =
"{" 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 ("Агуулгын төрөл: application/json");client.println ("cache-control: no-cache");client.println ("Зөвшөөрөл: эзэмшигч eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNT"client.print ("Агуулга-Урт:");client.println (PostValue.length ());client.println ();client.println (PostValue);
////////////////////////////////////// Өгөгдлийг байршуулах
үүл дууссан бөгөөд одоо үүл серверийн хариултын маягтыг авна уу /////////////////
Serial.print ( Хүлээж байна
хариу өгөх );
байхад
(! client.available ()) {
саатал (50);
//Serial.print (".");
}
/* өгөгдөл байгаа бол
бэлэн болсны дараа хүлээн авч Терминал руу хэвлэх боломжтой */
байхад
(client.available ()) {
char c =
client.read ();Цуваа бичих (c);
}
/* хэрэв
сервер салгагдсан, үйлчлүүлэгчийг зогсоо */
хэрэв
(! client.connected ()) {Serial.println ();Serial.println ("Сервер салгагдсан");
client.stop ();
}
}
Serial.println ( ////////////////////// ТӨГСГӨЛ
///////////////////// );
саатал (3000);
}
}
Алхам 4: ГАРАХ:
Мэдрэгчээс уншсан температурын утгуудын гаралтыг энд харуулав.
Алхам 5: ГРАФИК:
Онгоцны температур мэдрэгчээс уншсан утгуудын график дүрслэл.
Зөвлөмж болгож буй:
ESP8266 болон AskSensors IoT платформ ашиглан DHT -ийн температур ба чийгшлийн хяналт: 8 алхам
ESP8266 болон AskSensors IoT платформыг ашиглан DHT -ийн температур ба чийгшлийн хяналт: Өмнөх зааварчилгаанд би ESP8266 nodeMCU болон AskSensors IoT платформыг эхлүүлэх алхам алхмаар гарын авлагыг танилцуулсан. Энэ хичээлд би DHT11 мэдрэгчийг холбож байна. MCU зангилаа руу. DHT11 бол түгээмэл хэрэглэгддэг температур ба чийгшил юм
H3LIS331DL болон Arduino Nano ашиглан хурдатгалын хэмжилт: 4 алхам
H3LIS331DL ба Arduino Nano ашиглан хурдатгалын хэмжилт: H3LIS331DL нь дижитал I²C серийн интерфэйстэй, "нано" гэр бүлд хамаарах, бага хүчин чадалтай, 3 тэнхлэгтэй, 3 тэнхлэгтэй хурдны хэмжигч юм. H3LIS331DL нь хэрэглэгчийн сонгох боломжтой бүрэн масштабтай ± 100g/± 200g/± 400g бөгөөд хурдатгалыг хэмжих чадвартай
RaspberryPi, WIZ850io бүхий IoT үндсэн платформ: Платформ төхөөрөмжийн драйвер: 5 алхам (зурагтай)
RaspberryPi, WIZ850io бүхий IoT үндсэн платформ: Платформ төхөөрөмжийн драйвер: IoT -д зориулсан RaspberryPi платформыг би мэднэ. Саяхан WIZ850io -ийг WIZnet зарлаж байна. Тиймээс би эх кодыг хялбархан зохицуулж чаддаг тул Ethernet SW өөрчлөлтөөр RaspberryPi програмыг хэрэгжүүлсэн. Та платформ төхөөрөмжийн драйверийг RaspberryPi -ээр туршиж үзэх боломжтой
EC/pH/ORP өгөгдлийг TICK Stack болон NoCAN платформ ашиглан хадгалах ба графиклах: 8 алхам
EC/pH/ORP өгөгдлийг TICK Stack болон NoCAN платформоор хадгалах ба графиклах: Энэ нь NoCAN платформыг Omzlo болон uFire мэдрэгч ашиглан EC, pH, ORP хэмжихэд ашиглах болно. Тэдний вэбсайтын хэлснээр заримдаа мэдрэгчийн зангилаа руу зарим кабелийг ажиллуулах нь илүү хялбар байдаг. CAN нь харилцаа холбоо, хүч чадлын нэг давуу талтай
Esp32 болон Thingsio.ai платформ ашиглан хөрсний чийгийн агууламжийг хэмжих: 6 алхам
Esp32 болон Thingsio.ai платформыг ашиглан хөрсний чийгийн агууламжийг хэмжих нь: Энэхүү гарын авлагад би хөрсний чийгийн агууламжийг esp32 ашиглан уншиж, дараа нь утгыг thingsio.ai IoT үүл платформ руу илгээх талаар тайлбарлах болно