Arama butonu
Bu konudaki kullanıcılar: 1 misafir
1
Cevap
199
Tıklama
0
Öne Çıkarma
HC-SR04 bildirim algilamada problem
U
5 yıl
Er
Konu Sahibi

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);
}








Videoyu izlemek için tıklayınız

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil