将arduino uno的整数值发送到nodemcu

时间:2019-06-04 14:21:42

标签: c json arduino mqtt esp8266

我想将我的Arduino UNO从传感器读取的一个变量发送到NodeMCU,以便它可以将它作为json发送到MQTT服务器。

我已经尝试过在网络上看到的多种代码实现,但是当我以我为SoftwareSerial设置的波特率观看控制台时,它只会为我提供随机字符串。

  

uno上的代码:https://pastebin.com/fZHtEdjV

treeview
  

NodeMCU上的代码:https://pastebin.com/SFNC5JfG

#include <SoftwareSerial.h>
#include <String.h>
SoftwareSerial toNode(2,3); // (Rx, Tx)

int sensorPin = A0;
int sensorValue;

void setup() {
 Serial.begin(9600);
 toNode.begin(115200);

 pinMode(9, OUTPUT);
 pinMode(10, OUTPUT);
 pinMode(8, OUTPUT);
}

void loop() {

 sensorValue = analogRead(sensorPin); 
 Serial.println("Analog Value : ");
 Serial.println(sensorValue);

 if (sensorValue<300) {
 digitalWrite(10, HIGH);
 digitalWrite(9, LOW);
 digitalWrite(8, LOW);
 parseJson(sensorValue);
 }
 else if(sensorValue>300 && sensorValue<450){
 digitalWrite(9, HIGH);
 digitalWrite(8, LOW);
 digitalWrite(10, LOW);
 parseJson(sensorValue);
 }
 else if(sensorValue < 300)
 {
 digitalWrite(8, HIGH);
 digitalWrite(9, LOW);
 digitalWrite(10, LOW);
 parseJson(sensorValue);
 }

 delay(1000); 
}

void parseJson(int criticidade) {
   String njs;
   njs = String(criticidade);
   toNode.println(njs);
}

我希望从NodeMCU读取串行端口时,它将把我从UNO发送的整数值设置为一个变量。

1 个答案:

答案 0 :(得分:1)

SoftwareSerial不支持115200波特率。您也许可以得到57600,但最好尝试9600或更少。