Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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

This comment has been minimized.

Copy link
Owner Author

commented Feb 1, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.