#include <WiFi.h>
#include <Adafruit_BMP085.h>
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
/************************* WiFi Access Point *********************************/
#define WLAN_SSID "WR3005N3-757E"
#define WLAN_PASS "70029949"
/************************* Adafruit.io Setup *********************************/
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883 // use 8883 for SSL
#define AIO_USERNAME "Anushka_Tiwari"
#define AIO_KEY "aio_aGyh68PpSxzmYR3go0ZOwqP0gqCh"
WiFiClient client;
Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
/****************************** Feeds ***************************************/
// Setup a feed called 'temperature' for publishing.
// Notice MQTT paths for AIO follow the form: <username>/feeds/<feedname>
Adafruit_MQTT_Publish temperature = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/Temperature");
Adafruit_MQTT_Publish level = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/Pressure");
// Setup a feed called 'sw1' for subscribing to changes.
Adafruit_MQTT_Subscribe sw1 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/Room AC");
Adafruit_MQTT_Subscribe sw2 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/Room Light");
/*************************** Sketch Code ************************************/
void MQTT_connect();
const int led1 = 18;
const int led2 = 19;
float p;
String stringOne,stringTwo;
Adafruit_BMP085 bmp;
void setup() {
Serial.begin(9600);
delay(10);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
// Connect to WiFi access point.
Serial.println(); Serial.println();
Serial.print("Connecting to ");
Serial.println(WLAN_SSID);
WiFi.begin(WLAN_SSID, WLAN_PASS);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("WiFi connected");
Serial.println("IP address: "); Serial.println(WiFi.localIP());
// Setup MQTT subscription for sw1 feed.
mqtt.subscribe(&sw1);
// Setup MQTT subscription for sw2 feed.
mqtt.subscribe(&sw2);
if (!bmp.begin()){
Serial.println("BMP180 Sensor not found ! ! !");
while (1){}
}
}
uint32_t x=0;
void loop() {
p = bmp.readPressure();
t = bmp.readTemperature();
Serial.println(p);
Serial.println(t);
delay(100);
MQTT_connect();
int8_t ret;
if(mqtt.connected()){
return;
}
int8_t retries = 3;
while((ret = mqtt.connect())!==0){
mqtt.disconnect();
delay(5000);
retries--;
if(retries == 0){
while(1);
}
}
Adafruit_MQTT_Subscribe *subscription;
while((subscription = mqtt.readSubscription(5000))){
if(subscription == &sw1){
stringOne = (char *)sw1.lastread;
Serial.print("stringOne: ");
Serial.println(stringOne);
if(stringOne == "ON"){
digitalWrite(led1, HIGH);
}
if(stringOne == "OFF"){
digitalWrite(led1, LOW);
}
}
if(subscription == &sw2){
stringTwo = (char *)sw2.lastread;
Serial.print("stringTwo: ");
Serial.println(stringTwo);
if(stringTwo == "ON"){
digitalWrite(led2, HIGH);
}
if(stringTwo == "OFF"){
digitalWrite(led2, LOW);
}
}
}
if(!temperature.publish(t)){
Serial.println();
}
if(!level.publish(p)){
}
}