
İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-23 15:13

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
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
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ü: Bu derste, esp32 kullanarak topraktaki nem içeriğinin okunmasını ve ardından değerlerithingio.ai IoT bulut platformuna göndermeyi anlatacağım
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