İçindekiler:
Video: Thingsai.io Iot Bulut Platformunu Kullanan Hareket Dedektörü: 6 Adım
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu eğitimde, bir IOT bulut platformu Thingai.io ile birlikte bir PIR sensörü ve Esp32 kullanarak hareket algılamayı açıklayacağım.
Adım 1: Bileşenler
DONANIM BİLEŞENLERİ;
1.esp32 Geliştirme Kurulu
2. PIR Sensörü
3. Atlama Telleri
YAZILIM:
1. Arduino IDE'si
2. Thingsai.io hesabı
2. Adım: BAĞLANTILAR
Bağlantılar sessiz basit.
PIR PİMLERİ------------ESP32 PİMLERİ
esp32 üzerinde VCC---------------------3V3
GND ------------------- GND esp32'de
ÇIKIŞ-----------------------D22, esp32'de
Adım 3: KODLAMA
Bu kodu biraz güncelleme ile Arduino IDE'nize yapıştırın, Hareket sensörünüz çıktıyı kusursuz bir şekilde verecektir.
#Dahil etmek
#Dahil etmek
#Dahil etmek
int sayı=0, i, m, j, k;
int t, t1, t2, t3;
int pin = 22;
//////////////////////////////////// BULUT İÇİN TÜM BİLDİRİMLER ////// /////////////////////
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 char* time_server = "baas.thethingscloud.com"; // bu, zaman damgasını dönüştürmek içindir
const int httpPort = 80;
const int httpsPort = 443;
const char* 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;
/////////////////////////////////// ZAMAN DAMGASI HESAPLAMA fonksiyonu//////// ///////////////////////////
int GiveMeTimestamp()
{
imzasız uzun zaman aşımı = millis();
// WiFiClient istemcisi;
while (client.available() == 0)
{
if (milis() - zaman aşımı > 50000)
{
istemci.durdur();
0 döndür;
}
}
while (client.available())
{
String 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
eğer (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);
pinMode(pin, GİRİŞ);
// Bir WiFi ağına bağlanarak başlıyoruz
WiFiMulti.addAP("wifi_name", "Wifi_password");
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);
}
boşluk döngüsü()
{
int analogValue = analogRead(outputpin);
{
/////////////////////////////////// SORUYU GÖNDERİN VE YANIT ALIN//// /////////////////
{
bool isDetected = digitalRead(pin);
if(isTespit edildi){
Serial.println("Varlık algılandı");
}
gecikme(500);
}
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 SINIPPET ////////// //////////////
Serial.println("içeriden zaman damgası alın\n");
if (!client.connect(time_server, {
dönüş; //*-*-*-*-*-*-*-*-*-*
}
client.println("GET /api/timestamp HTTP/1.1"); //Bu kısım ne yapıyor, anlamadım
client.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\": 61121695839, \"slave_id\": 2";
PostValue = PostValue + ", \"dts\":" +zaman damgası;
PostValue = PostValue +", \"data\":{"PIR\":" + pin +"}"+"}";
Serial.println(PostValue);
/* bir WiFiClientSecure örneği yarat */
WiFiClientSecure istemcisi;
Serial.println("Sunucuya 443 numaralı bağlantı noktasından bağlanın");
if (!client.connect(sunucu, 443)){
Serial.println("Bağlantı başarısız!");
} Başka {
Serial.println("Sunucuya bağlanıldı!");
/* HTTP isteği oluştur */
client.println( POST /devices/deviceData
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 buluta GÖNDERME tamamlandı ve şimdi yanıt formunu bulut alın sunucu////////////////
Serial.print("Yanıt bekleniyor");
while (!client.available()){
gecikme(50); //
Seri.print(".");
}
/* veri mevcutsa alın ve Terminal'e yazdırın */
while (client.available()) {
karakter c = client.read();
Seri.write(c);
}
/* sunucunun bağlantısı kesilirse, istemciyi durdurun */
if (!client.connected()) {
Seri.println();
Serial.println("Sunucu bağlantısı kesildi");javascript:;
istemci.durdur();
}
}
Serial.println("///////////////////// SON /////////////////// ");
gecikme(3000);
}
}
Adım 4: ÇIKTI
Thingsai, io bulut platformunda sensörden okunan değerlerin çubuk grafik gösterimidir,
Adım 5: Grafik
Bu, sensörden gelen değerlerin grafiksel gösterimidir. Yukarıdaki grafikten sensörün uygulamasını analiz edebiliriz. Teşekkürler