ESP8266 İle Node-Red Kullanarak DHT-11 Sensörü Kullanma. (Nesnelerin İnterneti Dersi | Video Ödev 4)

  ESP8266 mikrodenetleyiciyi kullanarak DHT11 sıcaklık ve nem sensöründen veri okuyarak Node-RED üzerinde görselleştirmek oldukça yaygın bir IoT projesidir. Node-RED, düşük kodlama becerisine sahip kullanıcıların bile IoT projelerini hızlı ve kolay bir şekilde oluşturmasına olanak tanır. İşte bu projeyi gerçekleştirmek için adım adım bir rehber:


Gerekli Malzemeler:

  • ESP8266 geliştirme kartı (NodeMCU veya benzeri)
  • DHT11 sıcaklık ve nem sensörü
  • Breadboard ve jumper kabloları
  • Bilgisayar
  • Node-RED çalıştırabileceğiniz bir platform (örneğin, Raspberry Pi veya bulutta barındırılan bir hizmet)

Adım 1: Node-RED Kurulumu

  1. İlk adım olarak, Node-RED'i kurmanız gerekmektedir. Node-RED, yerel olarak bir bilgisayara veya Raspberry Pi'ye kurulabilir, ayrıca bulutta barındırılan bir hizmet olarak da kullanılabilir.
  2. Node-RED'i kurduktan sonra, tarayıcınızdan "localhost:1880" adresine giderek Node-RED arayüzüne erişin.

Adım 2: Node-RED Flow Oluşturma

  1. Node-RED arayüzünde, sol taraftaki paletten "mqtt" ve "ui" bileşenlerini arayın ve bunları düğüm paletinden çalışma alanına sürükleyip bırakarak ekleyin.
  2. MQTT düğümünü, ESP8266'dan MQTT protokolü aracılığıyla veri alacak şekilde yapılandırın.
  3. UI düğümünü, sıcaklık ve nem değerlerini gösterecek şekilde yapılandırın.
  4. Oluşturduğunuz flow'u kaydedin ve adlandırın.

Adım 3: ESP8266 Kodu Yazma ve Yükleme

  Aşağıdaki Arduino kodunu kullanarak ESP8266'nın DHT11 sensöründen sıcaklık ve nem verilerini okumasını ve MQTT üzerinden Node-RED'e göndermesini sağlayabilirsiniz.


#include <ESP8266WiFi.h>

#include <DHT.h>

#include <WiFiClient.h>

#include <ESP8266WebServer.h>

#include <ESP8266mDNS.h>



/************************* Pin Definition *********************************/





//DHT11 for reading temperature and humidity value

#define DHTPIN            D7

String temp;

String hum;

#define DHTTYPE DHT11     // DHT 11

DHT dht(DHTPIN, DHTTYPE);



// Your WiFi credentials.

// Set password to "" for open networks.

const char* ssid = "İnternet Adınız";

const char* password = "İnternet Şifreniz";



ESP8266WebServer server(80);



void handleRoot() {



  server.send(200, "text/plain", "hello from esp8266!");



}



void handleNotFound() {



  String message = "File Not Found\n\n";

  message += "URI: ";

  message += server.uri();

  message += "\nMethod: ";

  message += (server.method() == HTTP_GET) ? "GET" : "POST";

  message += "\nArguments: ";

  message += server.args();

  message += "\n";

  for (uint8_t i = 0; i < server.args(); i++) {

    message += " " + server.argName(i) + ": " + server.arg(i) + "\n";

  }

  server.send(404, "text/plain", message);



}





void setup()

{

  // Debug console

  Serial.begin(115200);

  WiFi.begin(ssid, password);

  Serial.println("");



  // Wait for connection

  while (WiFi.status() != WL_CONNECTED) {

    delay(500);

    Serial.print(".");

  }

  Serial.println("");

  Serial.print("Connected to ");

  Serial.println(ssid);

  Serial.print("IP address: ");

  Serial.println(WiFi.localIP());

  dht.begin();

  server.on("/", handleRoot); // http://localIPAddress/

  server.on("/dht-temp", []() // http://localIPAddress/dht-temp

  {

    int t = dht.readTemperature();

    temp = String(t);

    server.send(200, "text/plain", temp);

  });



  server.on("/dht-hum", []()  // http://localIPAddress/dht-hum

  {

    int h = dht.readHumidity();

    hum = String(h);

    server.send(200, "text/plain", hum);

  });

   server.onNotFound(handleNotFound);

  server.begin();

  Serial.println("HTTP server started");

}



void loop()

{

  server.handleClient();

}

Adım 4: Node-RED Üzerinde Verilerin Görselleştirilmesi
Node-RED arayüzünde oluşturduğunuz flow'u kullanarak MQTT üzerinden ESP8266'dan gelen sıcaklık ve nem verilerini görselleştirebilirsiniz. MQTT abone düğümleri kullanarak verileri alın ve UI düğümleriyle grafikler veya sayısal değerler şeklinde gösterin.

Bu adımları takip ederek ESP8266 ile Node-RED kullanarak DHT11 sensöründen sıcaklık ve nem verilerini alabilir ve görselleştirebilirsiniz. Ancak, MQTT broker ve Node-RED yapılandırması gibi detayları doğru bir şekilde yapılandırmak önemlidir.

                                                                                                          

Yorum Gönder

0 Yorumlar