shiftr.io MQTT server kullanarak NodeMCU (ESP8266) ile android tarafta Virtuino kullanarak veri alışverişini gerçekleştirdiğim video 'ya yazının sonunda ulaşabilirsiniz. Video da yazdığım kod şu şekilde
#include <ESP8266WiFi.h>
#include <MQTT.h>
#include <MQTTClient.h>
const char* ssid = ""; // bağlanılanacak Wifi Adı
const char* pwd = ""; // wifi ağının şifresi
WiFiClient net;
const char* broker = ""; // shiftr erişim adresi
char mqttUsername[] = ""; // shiftr kullanıcı adı
char mqttPass[] = ""; // shiftr secret token
MQTTClient client;
void setup() {
Serial.begin(115200);
WiFi.begin(ssid,pwd);
Serial.print("Wifi ağına bağlanılıyor");
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH); // HIGH yazınca led sönük oluyor.
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(500);
}
Serial.print(" bağlantı başarılı. \n");
client.begin(broker, net);
char clientID[] = "NodeMCU"; // shiftr de görünmesini istediğimiz isim
while(!client.connect(clientID, mqttUsername, mqttPass))
{
Serial.print(".");
delay(500);
}
Serial.print("Shiftr bağlantısı başarılı.\n");
client.subscribe("LEDSTATUS");
client.subscribe("mesaj");
client.onMessage(messageReceived);
}
void loop() {
// put your main code here, to run repeatedly:
client.loop();
delay(10); //<- fixes some issues with wifi stability
int Temp = random(18,30);
int Humi = random(25, 55);
client.publish("Temp",String(Temp));
client.publish("Humidity",String(Humi));
client.publish("mesaj","MSGNodeMCU");
delay(5000);
}
void messageReceived(String &topic, String &payload)
{
if (topic == "LEDSTATUS")
{
int LEDVAL = payload.toInt();
digitalWrite(LED_BUILTIN, LEDVAL);
}
else if (topic == "mesaj")
{
String msg = payload;
Serial.print("[MGS from Virtuino] ");
Serial.print(msg);
}
}
Hiç yorum yok:
Yorum Gönder