Arduino Kodların Hazırlanması
Sırayla adım adım, kodları hazırlayacağız. Kod yazmadan önce, herzaman sakince düşünüp, bir kağıta dökerim. Bu kodları hazırlarkende, sıkı bir çalışmam oldu. Sizlerinde, kod yazarken böyle davranması fayda olacaktır. Hemen kod yazmaya girişmenin bir faydasını olduğunu düşünmüyorum. Kodların açıklamalarını yazarken "//" ifadeleri kullanacağım. Bu ifadeler kod olarak yorumlanmaz.
Adım adım, neler yapacağız belirliyem. Kodları parçalara ayırrak açıklama yapacağım.
Toplamda 7 adet aşamadan sonra, arduino kodlarımız hazır olacak :)
1-) Kütüphane
Kütüphaneleri genelde yazılımcılar framework olarak adlandırır. Kısaca bağımlılıkları belirlediğimiz alandır. Örneğin Ethernet işlemleri yaptığımız için, direk kodları yazamayız. Bunun mevcut konumundan kütüphanesinin eklenmesi gerekmektedir.
/************************* Kütüphanelerimizi ekliyelim. *********************************/
#include <SPI.h> // Yukarıda bahsettik, ethernet haberleşmesi
#include "Adafruit_MQTT.h" // adafruit kütüphanesi
#include "Adafruit_MQTT_Client.h" //adafruit kütüphanesi
#include <Ethernet.h> // Arduino Ethernet bağımlılıkları
#include <EthernetClient.h> // Arduino Ethernet Bağımlılıkları
2-) Arduino Ethernet Mac
/************************* Ethernet İşlemcisinin Kurulumu *****************************/
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
// Standart verilen bir parametredir. Arduino Ethernet için belirlenmeiş bir adrestir.
3-) Adafruit.io Kurulumu
Adafruit.io bağlantı kurmamız için gerekli bilgileri burada belirleyeceğiz. Yani adafruit Mqtt servisine bağlamamız için gerekli güvenlik duvarı diyebiliriz.
Adafruit.io bağlantı kurmamız için gerekli bilgileri burada belirleyeceğiz.
/************************* Adafruit.io Kurulumu *********************************/
#define AIO_SERVER "io.adafruit.com" //bağlanacağım site adı
#define AIO_SERVERPORT 1883 //bağlantı portu
#define AIO_USERNAME "aliymn" // Kullanıcı adımız
#define AIO_KEY "0cce691e70194e9cb083b0d6071fbcc5" //AIO key yukarıda nasıl aldığını gösterdim.
4-) Bağlantı Ayarları
/************ Bağlantı Ayarları(Standart) ******************/
// bağlantı nesnesini tanımla
EthernetClient client;
// MQTT bağlantısı burada gerçekleşiyor.
Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
#define halt(s) { Serial.println(F( s )); while(1); }
// Hangi malzemeleri tetikleceğimizi burada Belirliyoruz.
// Örneğin sicaklik adlı sensör ekledik : /feeds/sicaklik olur.
// Sicaklik Ölçüm
Adafruit_MQTT_Publish photocell = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/sicaklik");
// Lamba
Adafruit_MQTT_Subscribe onoffbutton = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/lamba");