Online Sıcaklık Takibi — IOT Projesi

Halis Ak
6 min readDec 8, 2019

--

İnternetin olduğu her yerden istediğiniz bir yerin sıcaklığını takip edebilmek, dahası IOT teknolojilerine ufaktan bir giriş için : NodeMCU(ESP8266) ile ortam sıcaklığının Thingspeak üzerinde gösterilmesi.

NodeMCU programlanabilir geliştirme kartımız ile wifi üzerinden internete çıkacağız. ThingSpeak üzerinde bir kanal oluşturacak ve NodeMCU’nun, LM35 sıcaklık sensöründen aldığı anlık sıcaklık değerlerini buraya göndermesini isteyeceğiz. IOT projemize başlamadan önce ekipmanlarımızı yakından tanıyalım. Arduino, NodeMCU, ESP8266 modülü vs. nedir, kısaca bahsedelim :

Arduino : Açık kaynaklı, donanım ve yazılım bileşenlerinden oluşan geliştirme platformudur. Arduino kartı ile üzerine takacağınız her türlü elektronik ekipmanı kontrol edebilirsiniz. Pek çok iot projesinin baş aktörüdür. (her ne kadar bu projede kendisini kullanmayacak olsakta saygıyla anıyoruz:) Arduino üzerindeki giriş ve çıkış pinleri vasıtasıyla bir robot kolunu, oyuncak arabayı(gerçekte olur), led ışıkları vs. kontrol edebilir, çok sayıda sensörden veri elde ederek bunları programlandığı şekilde işleyip istenen çıktıları sunabilir ve internete veri gönderip alabilir. Dolayısıyla uzaktan cihaz yönetimi dahil sınırsız varyasyonda projeler üretebilirsiniz. Bu projelerde kompleksite arttıkça, elektronik ve programlama bilginiz de o derece gelişmelidir/gelişecektir. Özellikleri farklılık gösteren çok sayıda Arduino kart çeşidi olduğunu da belirteyim.

Arduino UNO — En yaygın Arduino modelidir

ESP8266 modülü : Esp8266 wifi modülüdür ve ardunio (veya benzer)kartalara takılarak onların internete çıkabilmesine olanak sağlar. Ancak bu modüllerin kendi üzerlerinde de programlanabilir bir işlemci ve giriş çıkış pinleri olduğu için, ardunio karta ihtiyaç duymadan direk olarak kendileri ile de proje yapılabilir. Böylece proje daha basit ve ucuz olur.

NodeMCU : ESP8266'nın programlanarak arduino kartsız kullanılabilmesi, esp8266'nın daha verimli kullanılabilmesine olanak sağlayan düşük maliyetli, Arduino’ya göre daha mütevazi çeşitli kartların ortaya çıkmasını sağladı. NodeMCU da esp8266'nın daha verimli kullanabilmesine olanak sağlamak ve onu LUA geliştirme diline adapte etmek için geliştirildi. Uygun fiyatı ve özellikleriyle oldukça popüler oldu. NodeMCU, LUA dili ile programlanır ancak Arduino dilleri ve IDE’si (programlama arayüzü) ile de uyumludur. Üzerindeki bağlantı noktalarına bağlayacağınız elektronik ekipmanları, sensörleri vs. internet üzerinden kontrol etmenizi ve anlık veri alşveirişi yapabilmenize olanak sağlar.

NodeMCU

Arduino IDE (Integrated Development Environment): Arduino geliştirme ortamıdır. Yani kodları yazdığınız ve USB den pc’nize bağlı olan arduino kart üzerine(veya NodeMCU) yolladığınız arayüz. Şuna benzer kendisi :

Thingspeak : IOT cihazlarınızdan göndereceğiniz verileri saklayan, işleyen, görselleştiren, anlık alertler oluşturabilen bulut platformudur. Bahsedicem yine..

LM35 : Sıcaklığı ölçmek için kullanılan bir entegredir. Bir de DHT11 vardır ki kendisi sıcaklığın yanında nemi de ölçer. Artık bi dahakine de kendisiyle çalışırız kısmetse diyelim.

Hazırsak Başlayalım Ufaktan

Gerekli Malzemeler ve Uygulamalar;

· Thingspeak Kanalı (https://thingspeak.com/)

· Ardunio IDE Yazılımı (https://www.arduino.cc/en/main/software)

· NodeMCU geliştirme kartı

· LM 35 ısı sensörü (sıcaklığı ölçmek için kullanılan bir entegredir)

· Bread Board(Devre Tahtası)

· Jumper Kablolar

· USB Bağlantı Kablosu

ThinkSpeak Hesap Açma Adımları

Bulut veri servisi sağlayan ThingSpeak, IOT projeler için bulunmaz kaftandır. Elbette rakipsiz de değildir ama gönüllerin favorisidir. ThingSpeak tarafından sağlanan kanalları ve web sayfalarını kullanarak, herhangi bir yerde İnternet üzerinden herhangi bir veriyi izleyebilir ve sistemimizi internet üzerinden de kontrol edebiliriz. ThingSpeak, bir algılayıcıyı tetikleyerek verileri sensörlerden alır, görselleştirir ve analiz eder, veri işlemeyi gerçekleştirir, grafiğe dökebilir. ThingSpeak de hesap açılması ve hesap ayarları :

https://thingspeak.com/ adresine giriş yapılır ve sağ üstten Sign Up denilerek yeni hesap oluşturulur.

Channels sekmesinden New Channel tıklandığında aşağıdaki şekilde bilgi giriş ekranı gelir.

Name kısmına Türkçe karakter kullanılmadan kanal ismi yazılır. Description kısmına ise kanalımız ile ilgili bir açıklama yazabiliriz. Field 1 alanına ölçülecek değer(örn:Sicaklik) yazılır. En altta yer alan Save Channel’a tıkladığımız da kanalımız oluşmuş olur.

Bu sayfada yolladığımız verileri Sıcaklık — Zaman grafiği şeklinde görebileceğiz. Üst menüde View sekmesi grafiği sadece bizim görebildiğimiz sekmedir. Eğer verileri herkes ile paylaşmak istersek hemen sağındaki Public View sekmesine tıklayıp sayfa linkini paylaşmamız yeterli olacaktır. Channel Settings sekmesinden az önce ayarladığımız tüm bilgileri değiştirebilir veya yeni grafikler ekleyebiliriz.

“API Keys” sekmesini tıklayalım ve okuma, yazma API’lerini not edelim. Burada sadece yazmayı kullanacağız. Hesap açma, kanal oluşturma ve API key’i alma işlemlerini tamamlandıktan sonra devre bağlantısı ve kodlama işlemlerine geçebiliriz. Unutmadan channel ID’yi de not edelim, o da lazım olacak.

NodeMCU ile LM35 bağlantı şeması :

Bağlantı için bir Breadboard (Devre Tahtası) kullanacağız.

LM35'in 1. pini yani Vcc, NodeMCU’nun + 3v pinine bağlanır.

LM35 Analog Out pini NodeMCU A0 pinine bağlanır.

LM35'in GND bacağı, NodeMCU’nun Ground Pin’ine ( GND ) bağlanır

ThingSpeak kanalımız ve devre bağlantımız hazır. Şimdi Ardunio IDE ile NodeMCU’muzu kodlayalım.

Arduino IDE kullanarak NodeMCU’ya aktarılacak kodlar :

#include “ThingSpeak.h”
#include <ESP8266WiFi.h>
const int LM35 = A0;
// — — — — — — Wifi bilgileri girilecek— — — — -//
char ssid[] = “SSIDSSID”; //SSID
char pass[] = “PASSWORD”; // Sifre
// — — — — — — — — — — — — — — — — — — — — — -//

WiFiClient client;

unsigned long myChannelNumber = 000000; // Channel ID buraya
const int FieldNumber = 1;
const char * myWriteAPIKey = “xxxx”; // Thingspeak API kodumuz buraya

void setup()
{
Serial.begin(115200);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
}
void loop()
{
if (WiFi.status() != WL_CONNECTED)
{
Serial.print(“Attempting to connect to SSID: “);
Serial.println(ssid);
while (WiFi.status() != WL_CONNECTED)
{
WiFi.begin(ssid, pass);
Serial.print(“.”);
delay(5000);
}
Serial.println(“\nConnected.”);
}
int ADC;
float temp;
ADC = analogRead(LM35); /* Read Temperature */
temp = (ADC * 3); /* Convert adc value to equivalent voltage */
temp = (temp / 10); /* LM35 gives output of 10mv/°C */
Serial.print(“Temperature = “);
Serial.print(temp);
Serial.println(“ *C”);
delay(1000);
ThingSpeak.writeField(myChannelNumber, FieldNumber, temp, myWriteAPIKey);
delay(1000);
}

Kodları NoceMCU’ya aktarmak için Ardunio IDE’yi kurma :

Arduino yazılımını yüklemek için www.arduino.cc adresinde “Downloads” sekmesine tıklanır.

Windows installer seçeneği seçilir ve sonraki sayfada Just Download denir.

İndirme işlemi bittikten sonra dosyayı açarak kurulum işlemini başlatıyoruz. “Install USB driver” seçili olmalı.

Kurulum işlemi bittikten sonra, kartımızı USB kablomuzla bilgisayarımıza bağlıyoruz. Bilgisayarımızda “Yeni donanım bulundu” penceresi açılıyor. Eğer sürücüler yazılımla birlikte kurulduysa, otomatik yükleme seçeneği Arduino’muzun sürücülerini otomatik olarak yükleyecektir.

  • Ardından, Arduino IDE’yi açın.
  • Ana menüde sırasıyla tıklayın; Dosya > Tercihler diyelim
  • Gelen pencerenin Ayarlar sekmesinde Ek Devre Kartları Yöneticisi URL’leri kutucuğu ve sağında gözet gibi bir simge var, ona tıklayın
  • Açılan pencereye enter yapıp bu URL’i ekleyin, ok diyerek pencereleri kapatın. http://arduino.esp8266.com/stable/package_esp8266com_index.json
  • Ana menüden tıklayın; Araçlar > Kart:… > Kart Yöneticisi
  • Açılan pencerede esp8266 ile arama yapın ve sonuçlar arasında esp8266 by ESP8266 Community olanı kurun ve inme işlemleri için bekleyin.
  • İşlem tamamlandığında Kart Yöneticisi penceresini kapatın
  • NodeMCU için Arduino IDE artık hazır.

Olmadı mı? Panik yok. Ardunio IDE’nin NodeMCU’yu görür hale gelmesi için diğer yollar bunlar.

Ardunio IDE hazırsa, şimdi NodeMCU’yu pc ye bağlayalım

  • NodeMCU’yu USB ile pc’ye bağlayın
  • Araçlar > Kart:… > NodeMCU 1.1 (ESP-12 Module)Not: Farklı NodeMCU sürümü kullanıyorsanız ona uygun bir seçim yapın.
  • Ardından, Araçlar > Port > COM XNot: NodeMCU’yu hangi Com portuna bağladıysanız onu seçmelisiniz listede
  • Şimdi kodlarınızı copy-paste yaparak NodeMCU’ya gönderebilirsiniz. Kodlarımız yukarıda hazır..

Artık ThingSpeak üzerinde verilerin geldiğini görebilir, internetin olduğu her yerden salonumun ısısını öğrenebilirsiniz :)

Bir sonraki IOT macerasında görüşmek üzere..

kaynak: https://electronics-project-hub.com/send-lm35-data-to-thingspeak-esp8266-gsm-nodemcu/

--

--