Skip to main content
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
added 743 characters in body
Source Link
chrisl
  • 16.6k
  • 2
  • 18
  • 27

Nodemcu code: #include <ESP8266WiFi.h> #include "Adafruit_MQTT.h" #include "Adafruit_MQTT_Client.h"

#define Automated D0 #define Led D1 #define Fan D2

#define WLAN_SSID "JioFi2_1EAFF8" #define WLAN_PASS "Ode9c@,1S%31ja$1xANkeL"

#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883 #define AIO_USERNAME "_inishu" #define AIO_KEY "aio_HZUG00TupkcsC2dvraQM7HLHrCd4"

WiFiClient client; Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);

Adafruit_MQTT_Subscribe speed = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME"/feeds/Fan"); Adafruit_MQTT_Subscribe inten = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/Led"); Adafruit_MQTT_Subscribe autom = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/Automate");

void MQTT_connect(); void datatransfer(int);

int on_off; int sliderval1; int sliderval2; void setup(){ Serial.begin(9600); pinMode(Automated, OUTPUT); pinMode(Led, OUTPUT); pinMode(Fan, OUTPUT);

WiFi.begin(WLAN_SSID, WLAN_PASS); while (WiFi.status() != WL_CONNECTED) { delay(500); }

mqtt.subscribe(&autom); mqtt.subscribe(&speed); mqtt.subscribe(&inten); }

void loop (){ MQTT_connect();

Adafruit_MQTT_Subscribe *subscription; while ((subscription = mqtt.readSubscription(5000))){ if (subscription == &autom){

on_off = atoi((char *)autom.lastread); if (on_off == 1) digitalWrite(Automated,HIGH); if (on_off == 0) digitalWrite(Automated,LOW);

#include <ESP8266WiFi.h>
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"

#define Automated   D0
#define Led         D1
#define Fan         D2

#define WLAN_SSID       "JioFi2_1EAFF8"
#define WLAN_PASS       "Ode9c@,1S%31ja$1xANkeL"

#define AIO_SERVER      "io.adafruit.com"
#define AIO_SERVERPORT  1883
#define AIO_USERNAME    "_inishu"
#define AIO_KEY        "aio_HZUG00TupkcsC2dvraQM7HLHrCd4"

WiFiClient client;
Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);

Adafruit_MQTT_Subscribe speed = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME"/feeds/Fan"); 
Adafruit_MQTT_Subscribe inten = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/Led");
Adafruit_MQTT_Subscribe autom = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/Automate");

void MQTT_connect();
void datatransfer(int);


int on_off;
int sliderval1;
int sliderval2;
void setup(){
    Serial.begin(9600);
    pinMode(Automated, OUTPUT);
    pinMode(Led, OUTPUT);
    pinMode(Fan, OUTPUT);

    WiFi.begin(WLAN_SSID, WLAN_PASS);
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
    }

    mqtt.subscribe(&autom);
    mqtt.subscribe(&speed);
    mqtt.subscribe(&inten);
}


void loop (){
    MQTT_connect();

    Adafruit_MQTT_Subscribe *subscription;
    while ((subscription = mqtt.readSubscription(5000))){
        if (subscription == &autom){
            on_off = atoi((char *)autom.lastread);
            if (on_off == 1)   digitalWrite(Automated,HIGH);
            if (on_off == 0)   digitalWrite(Automated,LOW);
        }
        
        if (subscription == &speed){
            sliderval1 = atoi((char *)speed.lastread);
            analogWrite(Fan, sliderval1);
        }

        if (subscription == &inten){
            sliderval2 = atoi((char *)inten.lastread);
            analogWrite(Led, sliderval2);
        }
    }
    datatransfer(on_off);
    datatransfer(sliderval1);
    datatransfer(sliderval2);
}


void MQTT_connect() {
    if (mqtt.connected()) {
         return;
    }
  
    while (mqtt.connect() != 0) {
        mqtt.disconnect();
        delay(2000);  
    }
}

void datatransfer(int value){
    Serial.println(value);
    delay(500);
} 

if (subscription == &speed){

sliderval1 = atoi((char *)speed.lastread); analogWrite(Fan, sliderval1); }

if (subscription == &inten){

sliderval2 = atoi((char *)inten.lastread); analogWrite(Led, sliderval2); } } datatransfer(on_off); datatransfer(sliderval1); datatransfer(sliderval2);

}

void MQTT_connect() {

if (mqtt.connected()) { return; }

while (mqtt.connect() != 0) { mqtt.disconnect(); delay(2000);
} } void datatransfer(int value){ Serial.println(value); delay(500); }

Arduino Uno code:

int x = A0, y = A1, z = 1; int fan = 11, led = 10; float temp, lux; int autom = 1; int inten = 0; int speed = 0; int fanspeed, light;

int datareceive(){ int receiver = 0; while(Serial.available()==0 ); String s = Serial.readStringUntil('\r'); receiver = s.toInt(); Serial.println(receiver); delay(1000); return receiver; }

void setup(){ Serial.begin(9600); pinMode(fan,OUTPUT); pinMode(led,OUTPUT); pinMode(x,INPUT); pinMode(y,INPUT); pinMode(z,INPUT);

}

void loop(){ autom = datareceive(); speed = datareceive(); inten = datareceive(); if(autom == 1){ fanspeed = 255 - speed; light = 255 - inten; analogWrite(fan,fanspeed); analogWrite(led,light); }

else { temp = analogRead(x); if (temp >= 52 && temp <= 104){ int fanspeed = -4.90384615*temp + 510; analogWrite(fan, fanspeed); } else if(temp > 104) digitalWrite(fan,LOW); else digitalWrite(fan,HIGH); lux = analogRead(y); if (lux >= 430 && lux <= 594){

int x = A0, y = A1, z = 1;
int fan = 11, led = 10;
float temp, lux;
int autom = 1;
int inten = 0;
int speed = 0;
int fanspeed, light;

int datareceive(){
    int receiver = 0;
    while(Serial.available()==0 );
    String s = Serial.readStringUntil('\r');
    receiver = s.toInt();
    Serial.println(receiver);
    delay(1000);
    return receiver;
}
 
void setup(){
    Serial.begin(9600);
    pinMode(fan,OUTPUT);
    pinMode(led,OUTPUT);
    pinMode(x,INPUT);
    pinMode(y,INPUT);
    pinMode(z,INPUT);
}
 
void loop(){
    autom = datareceive();
    speed = datareceive();
    inten = datareceive();
    if(autom == 1){
        fanspeed = 255 - speed;
        light = 255 - inten;
        analogWrite(fan,fanspeed);
        analogWrite(led,light);
    }  
    else {
        temp = analogRead(x);
        if (temp >= 52 && temp <= 104){
            int fanspeed = -4.90384615*temp + 510;
            analogWrite(fan, fanspeed);
        }
        else if(temp > 104)  digitalWrite(fan,LOW);
        else digitalWrite(fan,HIGH);
        lux = analogRead(y);
        if (lux >= 430 && lux <= 594){
            int light = 1.342657*lux-577.342657;
            analogWrite(led,light);
        }
        else if (lux < 430) digitalWrite(led, LOW);
        else digitalWrite(led,HIGH);
    }
}

else if (lux < 430) digitalWrite(led, LOW); else digitalWrite(led,HIGH); } }

Nodemcu code: #include <ESP8266WiFi.h> #include "Adafruit_MQTT.h" #include "Adafruit_MQTT_Client.h"

#define Automated D0 #define Led D1 #define Fan D2

#define WLAN_SSID "JioFi2_1EAFF8" #define WLAN_PASS "Ode9c@,1S%31ja$1xANkeL"

#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883 #define AIO_USERNAME "_inishu" #define AIO_KEY "aio_HZUG00TupkcsC2dvraQM7HLHrCd4"

WiFiClient client; Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);

Adafruit_MQTT_Subscribe speed = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME"/feeds/Fan"); Adafruit_MQTT_Subscribe inten = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/Led"); Adafruit_MQTT_Subscribe autom = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/Automate");

void MQTT_connect(); void datatransfer(int);

int on_off; int sliderval1; int sliderval2; void setup(){ Serial.begin(9600); pinMode(Automated, OUTPUT); pinMode(Led, OUTPUT); pinMode(Fan, OUTPUT);

WiFi.begin(WLAN_SSID, WLAN_PASS); while (WiFi.status() != WL_CONNECTED) { delay(500); }

mqtt.subscribe(&autom); mqtt.subscribe(&speed); mqtt.subscribe(&inten); }

void loop (){ MQTT_connect();

Adafruit_MQTT_Subscribe *subscription; while ((subscription = mqtt.readSubscription(5000))){ if (subscription == &autom){

on_off = atoi((char *)autom.lastread); if (on_off == 1) digitalWrite(Automated,HIGH); if (on_off == 0) digitalWrite(Automated,LOW);

}

if (subscription == &speed){

sliderval1 = atoi((char *)speed.lastread); analogWrite(Fan, sliderval1); }

if (subscription == &inten){

sliderval2 = atoi((char *)inten.lastread); analogWrite(Led, sliderval2); } } datatransfer(on_off); datatransfer(sliderval1); datatransfer(sliderval2);

}

void MQTT_connect() {

if (mqtt.connected()) { return; }

while (mqtt.connect() != 0) { mqtt.disconnect(); delay(2000);
} } void datatransfer(int value){ Serial.println(value); delay(500); }

Arduino Uno code:

int x = A0, y = A1, z = 1; int fan = 11, led = 10; float temp, lux; int autom = 1; int inten = 0; int speed = 0; int fanspeed, light;

int datareceive(){ int receiver = 0; while(Serial.available()==0 ); String s = Serial.readStringUntil('\r'); receiver = s.toInt(); Serial.println(receiver); delay(1000); return receiver; }

void setup(){ Serial.begin(9600); pinMode(fan,OUTPUT); pinMode(led,OUTPUT); pinMode(x,INPUT); pinMode(y,INPUT); pinMode(z,INPUT);

}

void loop(){ autom = datareceive(); speed = datareceive(); inten = datareceive(); if(autom == 1){ fanspeed = 255 - speed; light = 255 - inten; analogWrite(fan,fanspeed); analogWrite(led,light); }

else { temp = analogRead(x); if (temp >= 52 && temp <= 104){ int fanspeed = -4.90384615*temp + 510; analogWrite(fan, fanspeed); } else if(temp > 104) digitalWrite(fan,LOW); else digitalWrite(fan,HIGH); lux = analogRead(y); if (lux >= 430 && lux <= 594){

int light = 1.342657*lux-577.342657;
analogWrite(led,light);
}

else if (lux < 430) digitalWrite(led, LOW); else digitalWrite(led,HIGH); } }

Nodemcu code:

#include <ESP8266WiFi.h>
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"

#define Automated   D0
#define Led         D1
#define Fan         D2

#define WLAN_SSID       "JioFi2_1EAFF8"
#define WLAN_PASS       "Ode9c@,1S%31ja$1xANkeL"

#define AIO_SERVER      "io.adafruit.com"
#define AIO_SERVERPORT  1883
#define AIO_USERNAME    "_inishu"
#define AIO_KEY        "aio_HZUG00TupkcsC2dvraQM7HLHrCd4"

WiFiClient client;
Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);

Adafruit_MQTT_Subscribe speed = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME"/feeds/Fan"); 
Adafruit_MQTT_Subscribe inten = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/Led");
Adafruit_MQTT_Subscribe autom = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/Automate");

void MQTT_connect();
void datatransfer(int);


int on_off;
int sliderval1;
int sliderval2;
void setup(){
    Serial.begin(9600);
    pinMode(Automated, OUTPUT);
    pinMode(Led, OUTPUT);
    pinMode(Fan, OUTPUT);

    WiFi.begin(WLAN_SSID, WLAN_PASS);
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
    }

    mqtt.subscribe(&autom);
    mqtt.subscribe(&speed);
    mqtt.subscribe(&inten);
}


void loop (){
    MQTT_connect();

    Adafruit_MQTT_Subscribe *subscription;
    while ((subscription = mqtt.readSubscription(5000))){
        if (subscription == &autom){
            on_off = atoi((char *)autom.lastread);
            if (on_off == 1)   digitalWrite(Automated,HIGH);
            if (on_off == 0)   digitalWrite(Automated,LOW);
        }
        
        if (subscription == &speed){
            sliderval1 = atoi((char *)speed.lastread);
            analogWrite(Fan, sliderval1);
        }

        if (subscription == &inten){
            sliderval2 = atoi((char *)inten.lastread);
            analogWrite(Led, sliderval2);
        }
    }
    datatransfer(on_off);
    datatransfer(sliderval1);
    datatransfer(sliderval2);
}


void MQTT_connect() {
    if (mqtt.connected()) {
         return;
    }
  
    while (mqtt.connect() != 0) {
        mqtt.disconnect();
        delay(2000);  
    }
}

void datatransfer(int value){
    Serial.println(value);
    delay(500);
} 

Arduino Uno code:

int x = A0, y = A1, z = 1;
int fan = 11, led = 10;
float temp, lux;
int autom = 1;
int inten = 0;
int speed = 0;
int fanspeed, light;

int datareceive(){
    int receiver = 0;
    while(Serial.available()==0 );
    String s = Serial.readStringUntil('\r');
    receiver = s.toInt();
    Serial.println(receiver);
    delay(1000);
    return receiver;
}
 
void setup(){
    Serial.begin(9600);
    pinMode(fan,OUTPUT);
    pinMode(led,OUTPUT);
    pinMode(x,INPUT);
    pinMode(y,INPUT);
    pinMode(z,INPUT);
}
 
void loop(){
    autom = datareceive();
    speed = datareceive();
    inten = datareceive();
    if(autom == 1){
        fanspeed = 255 - speed;
        light = 255 - inten;
        analogWrite(fan,fanspeed);
        analogWrite(led,light);
    }  
    else {
        temp = analogRead(x);
        if (temp >= 52 && temp <= 104){
            int fanspeed = -4.90384615*temp + 510;
            analogWrite(fan, fanspeed);
        }
        else if(temp > 104)  digitalWrite(fan,LOW);
        else digitalWrite(fan,HIGH);
        lux = analogRead(y);
        if (lux >= 430 && lux <= 594){
            int light = 1.342657*lux-577.342657;
            analogWrite(led,light);
        }
        else if (lux < 430) digitalWrite(led, LOW);
        else digitalWrite(led,HIGH);
    }
}
Source Link

Serial communication between nodemcu and Arduino Uno

For the last days, I am trying to establish serial communication between nodemcu and Arduino Uno but I failed to do this. Currently, I am working on a Home Automation project. I receive data from nodemcu and send it to Arduino Uno, but some dummy data also receive with original data. Please help.

Nodemcu code: #include <ESP8266WiFi.h> #include "Adafruit_MQTT.h" #include "Adafruit_MQTT_Client.h"

#define Automated D0 #define Led D1 #define Fan D2

#define WLAN_SSID "JioFi2_1EAFF8" #define WLAN_PASS "Ode9c@,1S%31ja$1xANkeL"

#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883 #define AIO_USERNAME "_inishu" #define AIO_KEY "aio_HZUG00TupkcsC2dvraQM7HLHrCd4"

WiFiClient client; Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);

Adafruit_MQTT_Subscribe speed = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME"/feeds/Fan"); Adafruit_MQTT_Subscribe inten = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/Led"); Adafruit_MQTT_Subscribe autom = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/Automate");

void MQTT_connect(); void datatransfer(int);

int on_off; int sliderval1; int sliderval2; void setup(){ Serial.begin(9600); pinMode(Automated, OUTPUT); pinMode(Led, OUTPUT); pinMode(Fan, OUTPUT);

WiFi.begin(WLAN_SSID, WLAN_PASS); while (WiFi.status() != WL_CONNECTED) { delay(500); }

mqtt.subscribe(&autom); mqtt.subscribe(&speed); mqtt.subscribe(&inten); }

void loop (){ MQTT_connect();

Adafruit_MQTT_Subscribe *subscription; while ((subscription = mqtt.readSubscription(5000))){ if (subscription == &autom){

on_off = atoi((char *)autom.lastread); if (on_off == 1) digitalWrite(Automated,HIGH); if (on_off == 0) digitalWrite(Automated,LOW);

}

if (subscription == &speed){

sliderval1 = atoi((char *)speed.lastread); analogWrite(Fan, sliderval1); }

if (subscription == &inten){

sliderval2 = atoi((char *)inten.lastread); analogWrite(Led, sliderval2); } } datatransfer(on_off); datatransfer(sliderval1); datatransfer(sliderval2);

}

void MQTT_connect() {

if (mqtt.connected()) { return; }

while (mqtt.connect() != 0) { mqtt.disconnect(); delay(2000);
} } void datatransfer(int value){ Serial.println(value); delay(500); }

Arduino Uno code:

int x = A0, y = A1, z = 1; int fan = 11, led = 10; float temp, lux; int autom = 1; int inten = 0; int speed = 0; int fanspeed, light;

int datareceive(){ int receiver = 0; while(Serial.available()==0 ); String s = Serial.readStringUntil('\r'); receiver = s.toInt(); Serial.println(receiver); delay(1000); return receiver; }

void setup(){ Serial.begin(9600); pinMode(fan,OUTPUT); pinMode(led,OUTPUT); pinMode(x,INPUT); pinMode(y,INPUT); pinMode(z,INPUT);

}

void loop(){ autom = datareceive(); speed = datareceive(); inten = datareceive(); if(autom == 1){ fanspeed = 255 - speed; light = 255 - inten; analogWrite(fan,fanspeed); analogWrite(led,light); }

else { temp = analogRead(x); if (temp >= 52 && temp <= 104){ int fanspeed = -4.90384615*temp + 510; analogWrite(fan, fanspeed); } else if(temp > 104) digitalWrite(fan,LOW); else digitalWrite(fan,HIGH); lux = analogRead(y); if (lux >= 430 && lux <= 594){

int light = 1.342657*lux-577.342657;
analogWrite(led,light);
}

else if (lux < 430) digitalWrite(led, LOW); else digitalWrite(led,HIGH); } }