İçindekiler:
- Adım 1: BİLEŞENLER:
- Adım 2: Esp32'NİN BLOK ŞEMA TEMSİLİ
- Adım 3: KODLAMA:
- Adım 4: ÇIKTI:
- Adım 5: GRAFİKLER:
- 6. Adım:
Video: Esp32 ve Thingsio.ai Platformunu Kullanarak Sıcaklık Ölçümü: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Bu derste, esp32 geliştirme kartında bulunan dahili sıcaklık sensörünü kullanarak ortamdaki sıcaklığı ölçmeyi açıklayacağım. esp32, yakınlık sensörü, dokunmatik sensör, sıcaklık sensörü olarak kullanılan salon sensörü gibi birçok dahili sensöre sahiptir. Bu dersimizde sıcaklık sensörü hakkında konuşacağız.
Adım 1: BİLEŞENLER:
Donanım:
1.esp32 geliştirme kurulu
Yazılım:
1. Arduino IDE'si
2. Thingsio.ai
Adım 2: Esp32'NİN BLOK ŞEMA TEMSİLİ
Adım 3: KODLAMA:
#Dahil etmek
#Dahil etmek
#Dahil etmek
#Dahil etmek
#Dahil etmek
#ifdef _cplusplus
harici "C" {
#endif
uint8_t temprature_sens_read();
//uint8_t g_phyFuns;
#ifdef _cplusplus
}
#endif
int sayı=0, i, m, j, k;
int t, t1, t2, t3;
int çıktıpin= A0;//ds18b20
/////////////////////////////////// TÜM BEYANNAMELER
BULUT için ///////////////////////////
const char* ana bilgisayar = "api.thingsai.io"; // VEYA ana bilgisayar =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; //
VEYA /api/v2/thingscloud2/_table/data_ac
const karakter* zaman_sunucusu =
"baas.thethingscloud.com"; // bu, zaman damgasını dönüştürmek içindir
const int httpPort = 80;
const int httpsPort = 443;
const karakter* sunucu =
"api.thingsai.io"; // Sunucu URL'si
karakter zaman damgası[10];
WiFiÇoklu WiFiÇoklu;
// TCP bağlantıları oluşturmak için WiFiClient sınıfını kullanın
WiFiClient istemcisi;
//////////////////////////////////
HESAPLAMA işlevi////////////////////////////////////
int GiveMeTimestamp()
{
imzasız uzun
zaman aşımı = millis();
// WiFiClient istemcisi;
süre
(client.available() == 0)
{
if (milis() -
zaman aşımı > 50000)
{
istemci.durdur();
0 döndür;
}
}
while (client.available())
{
dize satırı =
client.readStringUntil('\r'); //indexOf() smthng aramak için bir işlevdir, bulunamazsa -1 döndürür
int konum =
line.indexOf("\"zaman damgası\""); // yanıtın başlangıcından itibaren "\"timestamp\"" ifadesini arayın ve bundan sonra tüm verileri kopyalayın, bu sizin zaman damganız olacak
if (konum >=
0)
{
int j = 0;for(j=0;j<10;j++)
{zaman damgası[j] = satır[konum + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
geçersiz kurulum()
{Seri.başla(115200);
gecikme(10);
tzset();
// ile başlıyoruz
bir WiFi ağına bağlanmaWiFiMulti.addAP("dlink_DWR-113", "madhukar66");
Seri.println();
Seri.println();Serial.print("WiFi için bekleyin… ");while(WiFiMulti.run() != WL_CONNECTED) {Seri.print(".");
gecikme(500);
}Seri.println("");Serial.println("WiFi bağlandı");Serial.println("IP adresi: ");Serial.println(WiFi.localIP());
gecikme(500);
}
uint8_t temp_farenheit;
float temp_celsius;
char strftime_buf[64];
time_t şimdi = 0;
struct tm zaman bilgisi;
karakter buf[256];
boşluk döngüsü()
{
// int analogDeğer =
analogRead (çıkış pini);
{
/////////////////////////////////// SORUYU GÖNDERİN VE
YANIT ALIN/////////////////////
//
t1=(analogDeğer/1024.0) *5000;
//
Serial.print("temp:");
// Seri.println(t1);
/
/ t2=(t1/10);
//
Serial.print("celc:");
//
Seri.println(t2);
/
/ t3=((t2 *
9)/5 + 32);
//
Serial.print("fhrn:");
//
Seri.println(t3); //kırmak;localtime_r(&şimdi, &timeinfo);strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo);sprintf(buf, "tarama başlangıcı %02d:%02d:%02d ", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
Seri.baskı
(tampon);
temp_farenhayt=
temprature_sens_read();
sıcaklık_santigrat = (temp_farenheit - 32) / 1.8;Serial.print("Gemideki Sıcaklık");Serial.print(temp_farenheit);Serial.print("°F");Seri.print(temp_celsius);Serial.println("°C");
gecikme(1000);
şimdi++;
Serial.print( bağlanıyor
ile );Serial.println(ana bilgisayar); //yukarı tanımlı:- ana bilgisayar = devapi2.thethingscloud.com veya 139.59.26.117
///////////////////////////////// ZAMAN DAYANIMI KODU SİPETİ
/////////////////////////
Serial.println("içeriden zaman damgası alın\n");
Eğer
(!client.connect(time_server, {
dönüş;
//*-*-*-*-*-*-*-*-*-*
}client.println("GET /api/timestamp HTTP/1.1"); //Bu kısım ne yapıyor, anlamadımclient.println("Ana Bilgisayar: baas.thethingscloud.com");client.println("Önbellek Kontrolü: önbellek yok");client.println("Postacı Simgesi: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println();
GiveMeTimestamp(); //
sunucudan zaman damgası yanıtını alacak işlev
Serial.println("zaman damgası alındı");
Serial.println(zaman damgası);Serial.println("ThinsCloudPost'un içinde");
String PostValue =
"{"device_id\": 61121695920, \"slave_id\": 2";
PostValue =
PostValue + ", \"dts\":" +zaman damgası;
PostValue =
PostValue +", \"data\":{"TEMP\":" + temp_farenheit +"}"+"}";Serial.println(PostValue);
/* bir WiFiClientSecure örneği yarat */
WiFiClientSecure istemcisi;Serial.println("Sunucuya 443 numaralı bağlantı noktasından bağlanın");
Eğer
(!client.connect(sunucu, 443)){Serial.println("Bağlantı başarısız!");
} Başka {Serial.println("Sunucuya bağlanıldı!");
/* HTTP oluştur
rica etmek */client.println("POST /devices/deviceData HTTP/1.1");client.println("Ana Bilgisayar: api.thingsai.io");//client.println("Bağlantı: kapat");client.println("İçerik Türü: uygulama/json");client.println("önbellek kontrolü: önbellek yok");client.println("Yetkilendirme: Taşıyıcı eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PyXs);client.print("İçerik-Uzunluk: ");client.println(PostValue.length());client.println();client.println(PostValue);
///////////////////////////////verileri
bulut tamamlandı ve şimdi yanıt formunu alın bulut sunucusu////////////////
Serial.print( Bekleniyor
yanıt için );
süre
(!client.available()){
gecikme(50);
//Seri.print(".");
}
/* veri ise
kullanılabilir, sonra alın ve Terminal'e yazdırın */
süre
(client.available()) {
karakter c =
müşteri.read();Seri.write(c);
}
/* Eğer
sunucu bağlantısı kesildi, istemciyi durdurun */
Eğer
(!client.connected()) {Seri.println();Serial.println("Sunucu bağlantısı kesildi");
istemci.durdur();
}
}
Serial.println( //////////////////// SON
///////////////////// );
gecikme(3000);
}
}
Adım 4: ÇIKTI:
İşte sensörden okunan sıcaklık değerlerinin çıktısı.
Adım 5: GRAFİKLER:
Yerleşik sıcaklık sensöründen okunan değerlerin grafiksel gösterimi.
Önerilen:
XinaBox ve Termistör Kullanarak Sıcaklık Ölçümü: 8 Adım
XinaBox ve Termistör Kullanarak Sıcaklık Ölçümü: XinaBox'tan bir analog giriş xChip ve bir termistör probu kullanarak bir sıvının sıcaklığını ölçün
AD7416ARZ ve Raspberry Pi Kullanarak Sıcaklık Ölçümü: 4 Adım
AD7416ARZ ve Raspberry Pi Kullanarak Sıcaklık Ölçümü: AD7416ARZ, dört adet tek kanallı analog-dijital dönüştürücü ve içinde yerleşik bir sıcaklık sensörü bulunan 10-Bit sıcaklık sensörüdür. Parçaların üzerindeki sıcaklık sensörüne multiplexer kanalları üzerinden erişilebilir. Bu yüksek hassasiyetli sıcaklık
STS21 ve Arduino Nano Kullanarak Sıcaklık Ölçümü: 4 Adım
STS21 ve Arduino Nano Kullanarak Sıcaklık Ölçümü: STS21 Dijital Sıcaklık Sensörü, üstün performans ve yerden tasarruf sağlayan bir ayak izi sunar. Dijital, I2C formatında kalibre edilmiş, doğrusallaştırılmış sinyaller sağlar. Bu sensörün üretimi, üstün özelliklere atfedilen CMOSens teknolojisine dayanmaktadır
ESP8266 ve AskSensors IoT Platformunu Kullanarak DHT Sıcaklık ve Nem İzleme: 8 Adım
ESP8266 ve AskSensors IoT Platformunu Kullanarak DHT Sıcaklık ve Nem İzleme: Önceki bir talimatta, ESP8266 nodeMCU ve AskSensors IoT platformuna başlamak için adım adım bir kılavuz sundum.Bu eğitimde, bir DHT11 sensörünü bağlıyorum MCU düğümüne. DHT11, yaygın olarak kullanılan bir Sıcaklık ve nem
Esp32 ve Thingsio.ai Platformunu Kullanarak Toprak Nem İçeriği Ölçümü: 6 Adım
Esp32 ve Thingsio.ai Platformunu Kullanarak Toprak Nem İçeriği Ölçümü: Bu derste, esp32 kullanarak topraktaki nem içeriğinin okunmasını ve ardından değerlerithingio.ai IoT bulut platformuna göndermeyi anlatacağım