Skip to content

Instantly share code, notes, and snippets.

@AliYmn
Last active February 1, 2017 23:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AliYmn/3f5129e8d8f09bab23be59438621b76d to your computer and use it in GitHub Desktop.
Save AliYmn/3f5129e8d8f09bab23be59438621b76d to your computer and use it in GitHub Desktop.
Arduino ve Adafruit ile IoT
/************************* 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!");
}
@AliYmn
Copy link
Author

AliYmn commented Feb 1, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment