İçindekiler:

Esp32 ve Thingsio.ai Platformunu Kullanarak Sıcaklık Ölçümü: 6 Adım
Esp32 ve Thingsio.ai Platformunu Kullanarak Sıcaklık Ölçümü: 6 Adım

Video: Esp32 ve Thingsio.ai Platformunu Kullanarak Sıcaklık Ölçümü: 6 Adım

Video: Esp32 ve Thingsio.ai Platformunu Kullanarak Sıcaklık Ölçümü: 6 Adım
Video: ESP32 ve ESP8266 ile IFTTT Kullanımı 2024, Kasım
Anonim
Esp32 ve Thingsio.ai Platformunu Kullanarak Sıcaklık Ölçümü
Esp32 ve Thingsio.ai Platformunu Kullanarak Sıcaklık Ölçümü

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:

BİLEŞENLER
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İ

Esp32'NİN BLOK ŞEMA TEMSİLİ
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:

ÇIKTI
ÇIKTI

İşte sensörden okunan sıcaklık değerlerinin çıktısı.

Adım 5: GRAFİKLER:

GRAFİKLER
GRAFİKLER
GRAFİKLER
GRAFİKLER

Yerleşik sıcaklık sensöründen okunan değerlerin grafiksel gösterimi.

Önerilen: