Merhaba herkese, arduino ide de esp32 kullanarak blynk ıot üzerinden uzaktan kontrollü ve sensör verilerini blynk üzerinde görüntüleyebileceğimiz bir proje yapmaya çalışıyoruz fakat kod düzgün şekilde derlenmesine ve esp32 ye yüklenmesine rağmen düzgün çalışmıyor. karşılaştığımız sorunlar: lcd ekranda sensör verileri yazması gerekirken yazmıyor, blynk üzerinde device online gözüküyor ve kısa bir süre sonra offline oluyor. Kısaca kod yüklenmesine ve devre doğru olmasına rağmen çalıştıramıyoruz, konu hakkında bilgisi olup yardımcı olabilecek varsa şimdiden teşekkür ederim.
Kullandığımız kod:
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#include <ESP32Servo.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// WiFi ve Blynk ayarları
char auth[] = "BURAYA_BLYNK_AUTH_TOKEN_GIRIN";
char ssid[] = "WIFI_AG_ISMI";
char pass[] = "WIFI_SIFRE";
// Pin atamaları
#define DHTPIN 33 // DHT11 sensörü pin
#define SERVOPIN 27 // Servo motor pin
#define LDRPIN 36 // LDR pin
#define GAZPIN 34 // Gaz sensörü pin
#define BUZZERPIN 32 // Buzzer pin
#define LEDPIN 14 // LED pin
// Sensör ve modül nesneleri
DHT dht(DHTPIN, DHT11);
Servo servo;
LiquidCrystal_I2C lcd(0x27, 16, 2); // LCD I2C adresi ve boyutu
// Blynk bağlantı fonksiyonu
void connectBlynk() {
Blynk.begin(auth, ssid, pass);
}
void setup() {
Serial.begin(9600);
// WiFi bağlantısı
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi baglandi!");
connectBlynk();
// Sensör ve aktüatör pinleri
pinMode(BUZZERPIN, OUTPUT);
pinMode(LEDPIN, OUTPUT);
// LCD başlatma
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Akilli Ev"); // Başlangıçta LCD'ye yazı yazdırma
// Servo motor başlatma
servo.attach(SERVOPIN);
delay(2000);
}
void loop() {
Blynk.run();
// Sıcaklık ve nem okuma
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Işık seviyesi okuma
int lightLevel = analogRead(LDRPIN);
// Gaz sensöründen değer okuma
int gasValue = analogRead(GAZPIN);
// Blynk üzerinden kontrol
if (Blynk.connected()) {
Blynk.virtualWrite(V5, humidity); // Blynk Grafik tablosu için nem verisi
Blynk.virtualWrite(V6, temperature); // Blynk Grafik tablosu için sıcaklık verisi
Blynk.virtualWrite(V7, lightLevel); // Blynk Grafik tablosu için ışık seviyesi verisi
Blynk.virtualWrite(V8, gasValue); // Blynk Grafik tablosu için gaz sensörü verisi
}
// LCD'ye sensör verilerini yazdırma
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Nem: ");
lcd.print(humidity);
lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("Sicaklik: ");
lcd.print(temperature);
lcd.print("C");
// Seri monitöre sensör verilerini yazdırma
Serial.print("Nem: ");
Serial.print(humidity);
Serial.print("% - ");
Serial.print("Sıcaklık: ");
Serial.print(temperature);
Serial.println("C");
delay(1000); // 1 saniyede bir okuma yap
}
// Blynk butonları için callback fonksiyonları
BLYNK_WRITE(V1) {
int servoValue = param.asInt(); // Blynk'teki düğme değeri
if (servoValue == 1) {
servo.write(90); // Servo motoru 90 derece konumlandır (kapıyı aç)
} else {
servo.write(0); // Servo motoru 0 derece konumlandır (kapıyı kapat)
}
}
BLYNK_WRITE(V2) {
int buzzerValue = param.asInt(); // Blynk'teki düğme değeri
digitalWrite(BUZZERPIN, buzzerValue); // Buzzer'ı aç/kapat
}
BLYNK_WRITE(V3) {
int ledValue = param.asInt(); // Blynk'teki düğme değeri
digitalWrite(LEDPIN, ledValue); // LED'i aç/kapat
}