
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03

W tym tutorialu wyjaśnię jak mierzyć temperaturę w otoczeniu za pomocą wbudowanego w płytkę rozwojową esp32 czujnika temperatury. esp32 ma wiele wbudowanych czujników, takich jak czujnik halla używany jako czujnik zbliżeniowy, czujnik dotykowy, czujnik temperatury. W tym samouczku omówimy czujnik temperatury.
Krok 1: KOMPONENTY:

Sprzęt:
1. płyta rozwojowa esp32
Oprogramowanie:
1. Arduino IDE
2. Thingsio.ai
Krok 2: SCHEMAT BLOKOWY REPREZENTACJI Esp32

Krok 3: KODOWANIE:
#włączać
#włączać
#włączać
#włączać
#włączać
#ifdef _cplusplus
zewnętrzne „C” {
#endif
uint8_t temprature_sens_read();
//uint8_t g_phyFuns;
#ifdef _cplusplus
}
#endif
liczba int=0, i, m, j, k;
int t, t1, t2, t3;
int outputpin= A0;//ds18b20
/////////////////////////////////////// WSZYSTKIE OŚWIADCZENIA
dla CHMURY /////////////////////////////
const char* host = "api.thingsai.io"; // LUB host =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; //
LUB /api/v2/thingscloud2/_table/data_ac
const char* serwer_czasu =
"baas.thethingscloud.com"; //to jest konwersja znacznika czasu
const int httpPort = 80;
const int httpsPort = 443;
const char* serwer =
"api.thingsai.io"; // Serwer URL
znacznik czasu znaków[10];
Wi-FiWiele Wi-FiWiele;
// Użyj klasy WiFiClient do tworzenia połączeń TCP
Klient WiFiClient;
/////////////////////////////////////// ZNAK CZASU
funkcja OBLICZENIA//////////////////////////////////////
int PodajMeTimestamp()
{
długi bez znaku
limit czasu = mili();
// Klient WiFiClient;
podczas
(klient.dostępny() == 0)
{
jeśli (millis() -
limit czasu > 50000)
{
klient.stop();
zwróć 0;
}
}
while (klient.dostępny())
{
Linia ciągu =
klient.odczytajStringUntil('\r'); //indexOf() to funkcja do wyszukiwania smthng, zwraca -1 jeśli nie znaleziono
wew poz =
line.indexOf("\"znacznik czasu\""); //wyszukaj "\"timestamp\"" od początku otrzymanej odpowiedzi i skopiuj wszystkie dane po tym, będzie to Twoja sygnatura czasowa
jeśli (poz >=
0)
{
intj = 0;dla(j=0;j<10;j++)
{znacznik czasu[j] = linia[poz + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
pusta konfiguracja()
{Serial.początek(115200);
opóźnienie(10);
tzset();
// Zaczynamy od
łączenie z siecią Wi-FiWiFiMulti.addAP("dlink_DWR-113", "madhukar66");
Serial.println();
Serial.println();Serial.print("Czekaj na Wi-Fi… ");while(WiFiMulti.run() != WL_CONNECTED) {Serial.print(".");
opóźnienie (500);
}Serial.println("");Serial.println("Połączenie WiFi");Serial.println("adres IP: ");Serial.println(WiFi.localIP());
opóźnienie (500);
}
uint8_t temp_farenheit;
pływak temp_celsius;
char strftime_buf[64];
czas_t teraz = 0;
struct tm informacje o czasie;
bufor znaków [256];
pusta pętla()
{
// int analogValue =
odczyt analogowy (wyjście);
{
////////////////////////////////////// WYŚLIJ ZAPYTANIE I
ODBIERZ ODPOWIEDŹ///////////////////////
//
t1=(Wartość Analogowa/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); //przerwa;localtime_r(&now, &timeinfo);strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo);sprintf(buf, "rozpoczęcie skanowania %02d:%02d:%02d", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
Serial.print
(buf);
temp_farenheit=
temprature_sens_read();
temp_celsjusza = (temp_farenheita - 32) / 1,8;Serial.print("Temp na płycie");Serial.print(temp_farenheit);Serial.print("°F");Serial.print(temp_celsius);Serial.println("°C");
opóźnienie (1000);
teraz++;
Serial.print( łączenie
do );Serial.println(host); //zdefiniowany plus:- host = devapi2.thethingscloud.com lub 139.59.26.117
//////////////////////////////////// ZNACZNIK KODU
/////////////////////////
Serial.println("wewnątrz pobierz znacznik czasu\n");
Jeśli
(!client.connect(serwer_czasu, port
{
powrót;
//*-*-*-*-*-*-*-*-*-*
}client.println("POBIERZ /api/znacznik czasu HTTP/1.1"); //Co robi ta część, nie dostałemclient.println("Host: baas.thethingscloud.com");client.println("Kontrola pamięci podręcznej: brak pamięci podręcznej");client.println("Token listonosza: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
klient.println();
GiveMeTimestamp(); // zadzwoni do
funkcja, która otrzyma odpowiedź ze znacznika czasu z serwera
Serial.println("otrzymany znacznik czasu");
Serial.println(sygnatura czasowa);Serial.println("wewnątrz ThingsCloudPost");
Wartość początkowa ciągu znaków =
"{"device_id\": 61121695920, \"slave_id\": 2";
PostValue =
PostValue +”, \"dts\":" +znacznik czasu;
PostValue =
PostValue +", \"data\":{"TEMP\":" + temp_farenheit +"}"+"}";Serial.println(PostValue);
/* utwórz instancję WiFiClientSecure */
Klient WiFiClientSecure;Serial.println("Połącz z serwerem przez port 443");
Jeśli
(!client.connect(serwer, 443)){Serial.println("Połączenie nie powiodło się!");
} w przeciwnym razie {Serial.println("Połączono z serwerem!");
/* tworzenie
wniosek */client.println("POST /devices/deviceData HTTP/1.1");client.println("Host: api.thingsai.io");//client.println("Połączenie: zamknij");client.println("Typ treści: aplikacja/json");client.println("kontrola pamięci podręcznej: brak pamięci podręcznej");client.println("Upoważnienie: okaziciel eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlW6YlWNQ9tP");client.print("Długość-treści: ");klient.println(WartośćPoczta.długość());klient.println();klient.println(PostValue);
//////////////////////////////////PRZESYŁANIE danych na
chmura jest gotowa i teraz otrzymaj odpowiedź z serwera w chmurze//////////////////
Serial.print( Oczekiwanie
do odpowiedzi”);
podczas
(!klient.dostępny()){
opóźnienie(50);
//Serial.print(".");
}
/* jeśli dane to
dostępne, a następnie odbierz i wydrukuj do Terminala */
podczas
(klient.dostępny()) {
znak c =
klient.odczyt();Serial.zapis(c);
}
/* jeśli
serwer odłączony, zatrzymaj klienta */
Jeśli
(!klient.podłączony()) {Serial.println();Serial.println("Serwer odłączony");
klient.stop();
}
}
Serial.println( ////////////////////// KONIEC
///////////////////// );
opóźnienie(3000);
}
}
Krok 4: WYJŚCIE:

Oto wyjście wartości temperatury odczytanej z czujnika.
Krok 5: WYKRESY:


Graficzna reprezentacja wartości odczytanych z wbudowanego czujnika temperatury.
Zalecana:
Pomiar temperatury za pomocą XinaBox i termistora: 8 kroków

Pomiar temperatury za pomocą XinaBox i termistora: Zmierz temperaturę cieczy za pomocą wejścia analogowego xChip z XinaBox i sondy termistorowej
Monitorowanie temperatury i wilgotności DHT za pomocą ESP8266 i platformy AskSensors IoT: 8 kroków

Monitorowanie temperatury i wilgotności DHT za pomocą ESP8266 i platformy AskSensors IoT: W poprzedniej instrukcji przedstawiłem przewodnik krok po kroku, jak rozpocząć pracę z nodeMCU ESP8266 i platformą AskSensors IoT. W tym samouczku podłączam czujnik DHT11 do węzła MCU. DHT11 to powszechnie stosowany czujnik temperatury i wilgotności
Pomiar temperatury za pomocą PT100 i Arduino: 16 kroków

Pomiar temperatury za pomocą PT100 i Arduino: Celem tego projektu jest zaprojektowanie, zbudowanie i przetestowanie systemu wykrywania temperatury. System został zaprojektowany do pomiaru temperatury w zakresie od 0 do 100°C. Do pomiaru temperatury użyto PT100, który jest oporowym detektorem temperatury (RTD)
Korzystanie z Raspberry Pi, pomiar wysokości, ciśnienia i temperatury za pomocą MPL3115A2: 6 kroków

Korzystając z Raspberry Pi, mierz wysokość, ciśnienie i temperaturę za pomocą MPL3115A2: Dowiedz się, co posiadasz i dlaczego to posiadasz! To intrygujące. Żyjemy w dobie automatyzacji Internetu, która pogrąża się w mnóstwie nowych aplikacji. Jako entuzjaści komputerów i elektroniki wiele się nauczyliśmy z Raspberry Pi i
Pomiar zawartości wilgoci w glebie za pomocą platformy Esp32 i Thingsio.ai: 6 kroków

Pomiar zawartości wilgoci w glebie za pomocą Esp32 i platformy Thingsio.ai: W tym samouczku wyjaśnię odczytywanie zawartości wilgoci w glebie za pomocą esp32, a następnie przesłanie wartości do platformy internetowej thingsio.ai IoT