Merhaba, Kendimce kapıya pencereye kurmak için SR04 ultrasonik sensör ile İFTTT aracılığı ile bildirim sağladım. fakat bazen arada herhangi bir cisim olmasa dahi bildirim veriyor acaba elektriksel bir akımdan mı yoksa farklı bir durummu vardır. Video Aşağıdadır. Kod dadaa görüldüğü gibi 5 cm ile 20 cm arası bir temas olursa site_kontrol() isimli fonksiyonu calistiracak dolayisi ile bildirim gelecek. #include <Arduino.h> #include <ESP8266WiFi.h> #include <ESP8266WiFiMulti.h> #include <ESP8266HTTPClient.h> #include <WiFiClient.h> ESP8266WiFiMulti WiFiMulti; //int pirPin = 0; //int pirState = LOW; //int pirVal = 0; int trigPin = 2; int echoPin = 0; int maxrange = 20; int minrange = 5; void setup() { Serial.begin(115200); // pinMode(pirPin, INPUT); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); // Serial.println(); // Serial.println(); Serial.println(); for (uint8_t t = 4; t > 0; t--) { Serial.printf("[SETUP] WAIT %d...\n", t); Serial.flush(); delay(1000); } WiFi.mode(WIFI_STA); WiFiMulti.addAP("wifi", "008992702689"); //WiFiMulti.addAP("SUPERONLINE-WiFi_3526", "superahsen92"); } void loop(){ long duration, distance; digitalWrite(trigPin,LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = duration / 58.2; delay(50); if(distance >= minrange && distance <= maxrange){ site_kontrol(); }else {
}
}
void site_kontrol(){ if ((WiFiMulti.run() == WL_CONNECTED)) { WiFiClient client; HTTPClient http; Serial.print("[HTTP] begin...\n"); if (http.begin(client, "http://maker.ifttt.com/trigger/Alarm_ESP/with/key/keybolumu")) { // HTTP Serial.print("[HTTP] GET...\n"); // start connection and send HTTP header int httpCode = http.GET(); // httpCode will be negative on error if (httpCode > 0) { // HTTP header has been send and Server response header has been handled Serial.printf("[HTTP] GET... code: %d\n", httpCode); // file found at server if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) { String payload = http.getString(); Serial.println(payload); } } else { Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str()); } http.end(); } else { Serial.printf("[HTTP} Unable to connect\n"); } } delay(1000); } |
Bildirim