İçindekiler:

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ü: 6 Adım

Video: Esp32 ve Thingsio.ai Platformunu Kullanarak Toprak Nem İçeriği Ölçümü: 6 Adım

Video: Esp32 ve Thingsio.ai Platformunu Kullanarak Toprak Nem İçeriği Ölçümü: 6 Adım
Video: Adafruit io kullanımı w/ESP8266 | Arduino projesi nasıl geliştirilir? 2024, Kasım
Anonim
Esp32 ve Thingsio.ai Platformu Kullanılarak Toprak Nem İçeriği Ölçümü
Esp32 ve Thingsio.ai Platformu Kullanılarak 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.

1. Adım: BİLEŞENLER

BİLEŞENLER
BİLEŞENLER
BİLEŞENLER
BİLEŞENLER

Donanım bileşenleri:

1. esp32 geliştirme kurulu

2. Toprak sensörü

3. Jumper Telleri

Yazılım:

1. Arduino IDE'si

2. Thingsio.ai

2. Adım: BAĞLANTILAR

BAĞLANTILAR
BAĞLANTILAR

Toprak Nemi Sensörü-------------------------------- esp32 Kartı

VCC------------------------------------------3V3

GND--------------------------------------GND

A0------------------------------------------- VP

Adım 3: KODLAMA:

#Dahil etmek

#Dahil etmek

#Dahil etmek

int sayı=0, i, m, j, k;

int t;

int sensor_pin = A0;

int değeri;

/////////////////////////////////// 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);Serial.println("Sensörden Okuma…");

gecikme(2000);

// ile başlıyoruz

bir WiFi ağına bağlanma

WiFiMulti.addAP("Wifi_name", "Kablosuz ağ parolası");

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

adres: );Serial.println(WiFi.localIP());

gecikme(500);

}

boşluk döngüsü()

{

{

/////////////////////////////////// SORUYU GÖNDERİN VE

YANIT ALIN/////////////////////

değer=

analogRead(sensor_pin);

// değer =

harita(değer, 550, 0, 0, 100);Serial.print("Mositure: ");Serial.print(değer);Serial.println("%");gecikme(1000);Serial.print("bağlanıyor");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şlevi çağıracak

Serial.println("zaman damgası alındı");

Serial.println(zaman damgası);Serial.println("ThinsCloudPost'un içinde");

String PostValue =

"{"device_id\": 61121695918, \"slave_id\": 2";

PostValue =

PostValue + ", \"dts\":" +zaman damgası;

PostValue =

PostValue +", \"data\":{"MOIST\":" + değer +"}"+"}";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( Yanıt bekleniyor

);

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 = client.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

Kodun çıktısı gösterilir.

Adım 5: GRAFİK

GRAFİK
GRAFİK

Sensörden okunan değerlerin grafiksel gösterimidir.

6. Adım:

İşte projenin tam videosu. Teşekkürler.

Önerilen: