İçindekiler:
- Adım 1: Bileşenler
- 2. Adım: BAĞLANTILAR
- Adım 3: KODLAMA
- Adım 4: ÇIKTI
- Adım 5: Grafik
- 6. Adım: İşte Kısa Açıklama Videosu
Video: Thingsai.io Iot Bulut Platformunu Kullanan Hareket Dedektörü: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
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
Ö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
NodeMCU Kullanan Hareket Dedektörü: 5 Adım
NodeMCU Kullanan Hareket Dedektörü: Bu projede, sadece bir hareket sensörü kullanarak herhangi bir insan veya hayvanın varlığını tespit edebilirsiniz. Ve Thingsio adlı platform sayesinde varlığın tespit edildiği tarih ve saati izleyebilirsiniz
Hareket Dedektörü Aktifleştirilmiş Vanity Light: 6 Adım
Hareket Dedektörü Aktifleştirilmiş Makyaj Işığı: eBay'den 1,50 dolara bir kızılötesi hareket dedektörü ünitesi satın aldım ve onu iyi bir şekilde kullanmaya karar verdim. Kendi hareket dedektör kartımı yapabilirdim, ancak 1,50 dolardan (hassasiyeti ayarlamak ve zamanlayıcıyı kapatmak için 2 trim potu içerir) asla
Küçük Menzilli Hareket Dedektörü: 5 Adım
Küçük Menzilli Hareket Dedektörü: Bu talimat, size Radioshack'ten alabileceğiniz ucuz parçalardan küçük menzilli bir hareket dedektörünün nasıl yapıldığını öğretecektir. Bu zarif proje ile dedektörün parlaklığını değiştirebilirsiniz. Bu benim ilk talimatım, bu yüzden lütfen basitliğe dikkat edin
Hareket Kontrollü Çıkış - Hareket Algılayıcı Işıktan: 6 Adım
Hareket Kontrollü Çıkış - Hareket Algılama Işığından: Bloktaki en korkunç eve giden bir şeker mi şaka mı olduğunuzu hayal edin. Tüm hortlakları, hayaletleri ve mezarlıkları geçtikten sonra nihayet son yola ulaşırsınız. Şekeri önünüzde bir kasede görebilirsiniz! Ama sonra aniden bir gho