İçindekiler:
Video: Esp32 ve Thingsio.ai Platformunu Kullanarak Toprak Nem İçeriği Ölçümü: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
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
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
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:
Kodun çıktısı gösterilir.
Adım 5: GRAFİK
Sensörden okunan değerlerin grafiksel gösterimidir.
6. Adım:
İşte projenin tam videosu. Teşekkürler.
Önerilen:
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
DHT11 / DHT22 ve Arduino Kullanarak Sıcaklık ve Nem Ölçümü: 4 Adım
DHT11 / DHT22 ve Arduino Kullanarak Sıcaklık ve Nemi Ölçme: Bu Arduino Eğitiminde, Arduino kartı ile sıcaklık ve nemi ölçmek için DHT11 veya DHT22 sensörünün nasıl kullanılacağını öğreneceğiz
HYT939 ve Parçacık Fotonu Kullanarak Nem Ölçümü: 4 Adım
HYT939 ve Particle Photon Kullanılarak Nem Ölçümü: HYT939, I2C haberleşme protokolü ile çalışan dijital bir nem sensörüdür. Tıbbi sistemler ve laboratuvarlar söz konusu olduğunda nem çok önemli bir parametredir, bu nedenle bu hedeflere ulaşmak için HYT939'u ahududu pi ile arayüzlemeye çalıştık. BEN
Arduino Kullanarak Toprak Nem Sensörü Nasıl Kullanılır: 4 Adım
Arduino Kullanarak Toprak Nem Sensörü Nasıl Kullanılır: Toprak Nem sensörü topraktaki nemi ölçmek için kullanılabilen bir sensördür. Akıllı tarım projeleri, Sulama kontrolörleri projeleri veya IoT Tarım projelerinin prototiplerini yapmak için uygundur. Bu sensörün 2 probu vardır. Şunu ifade etmek için kullanılan
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ü: Bu derste, esp32 geliştirme kartında bulunan dahili sıcaklık sensörünü kullanarak ortamdaki sıcaklığı ölçmeyi anlatacağım. esp32, yakınlık sensörü olarak kullanılan salon sensörü gibi birçok dahili sensöre sahiptir, dokunma