İçindekiler:

Thingsai.io Iot Bulut Platformunu Kullanan Hareket Dedektörü: 6 Adım
Thingsai.io Iot Bulut Platformunu Kullanan Hareket Dedektörü: 6 Adım

Video: Thingsai.io Iot Bulut Platformunu Kullanan Hareket Dedektörü: 6 Adım

Video: Thingsai.io Iot Bulut Platformunu Kullanan Hareket Dedektörü: 6 Adım
Video: Arduino IoT Cloud Nedir? 2024, Kasım
Anonim
Thingsai.io Iot Bulut Platformunu Kullanan Hareket Dedektörü
Thingsai.io Iot Bulut Platformunu Kullanan Hareket Dedektörü

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

Bileşenler
Bileşenler
Bileşenler
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ĞLANTILAR
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

ÇIKTI
ÇIKTI

Thingsai, io bulut platformunda sensörden okunan değerlerin çubuk grafik gösterimidir,

Adım 5: Grafik

grafik
grafik

Bu, sensörden gelen değerlerin grafiksel gösterimidir. Yukarıdaki grafikten sensörün uygulamasını analiz edebiliriz. Teşekkürler

Önerilen: