Last active
February 1, 2017 23:25
-
-
Save AliYmn/3f5129e8d8f09bab23be59438621b76d to your computer and use it in GitHub Desktop.
Arduino ve Adafruit ile IoT
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/************************* Kütüphanelerimizi ekliyelim. *********************************/ | |
#include <SPI.h> | |
#include "Adafruit_MQTT.h" | |
#include "Adafruit_MQTT_Client.h" | |
#include <Ethernet.h> | |
#include <EthernetClient.h> | |
/************************* Ethernet İşlemcisinin Kurulumu *****************************/ | |
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; | |
/************************* Adafruit.io Kurulumu *********************************/ | |
#define AIO_SERVER "io.adafruit.com" | |
#define AIO_SERVERPORT 1883 | |
#define AIO_USERNAME "Kullanıcı Adınız" | |
#define AIO_KEY "AIO Anahtarınız" | |
/************ 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 belirleniyor. | |
// Ö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"); | |
/*************************** Sketch Code ************************************/ | |
void setup() { | |
// Haberleşme Portu | |
Serial.begin(9600); | |
// Sisteme Bağlantı kur | |
Serial.print(F("\nSisteme Baglanti Kuruluyor...")); | |
Ethernet.begin(mac); | |
delay(1000); // Ethernet bağlanma süresi belirledim. | |
// Butonun son durumu | |
mqtt.subscribe(&onoffbutton); | |
} | |
uint32_t x=0; | |
void loop() { | |
// MQTT bağlanma fonksiyonu | |
MQTT_connect(); | |
// buton durumunu buradan okuyacağız. | |
Adafruit_MQTT_Subscribe *subscription; | |
while ((subscription = mqtt.readSubscription(1000))) { | |
if (subscription == &onoffbutton) { | |
Serial.print(F("Durum: ")); // buton verisi | |
Serial.println((char *)onoffbutton.lastread); | |
} | |
} | |
// Sicaklik Değerlerin iletllmesi burada olacaktır. | |
Serial.print(F("\nYollanan Deger ")); | |
Serial.print(x); | |
Serial.print("..."); | |
if (! photocell.publish(x++)) { | |
Serial.println(F("Hatali")); | |
} else { | |
Serial.println(F("Basarili!")); | |
} | |
// Fazla ping olursa bağlantı kopar | |
if(! mqtt.ping()) { | |
mqtt.disconnect(); | |
} | |
} | |
// MQTT bağlantı Fonksiyonu | |
void MQTT_connect() { | |
int8_t ret; | |
// Bağlantı kurarsa devam et | |
if (mqtt.connected()) { | |
return; | |
} | |
Serial.print("Baglanti Kontrol Ediliyor... "); | |
while ((ret = mqtt.connect()) != 0) { // bağlantı kurulmassa sıfır değeri fırlatır | |
Serial.println(mqtt.connectErrorString(ret)); | |
Serial.println("Baglanti Kurulmadı! 5 saniye sonra tekrar kurulucaktir."); | |
mqtt.disconnect(); | |
delay(5000); // 5sn bekle | |
} | |
Serial.println("MQTT Baglanti Kuruldu!"); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Kaynak : https://aliyaman.gitbooks.io/arduino-ve-adafruit-ile-iot/content/