我想用esp8266 Node Mcu做通讯装置,mega2560作为主控板进行一辆四轮小车的驱动,用blinker平台进行控制。
确实成功了百分之八十,但剩下的东西始终无法突破,请解答一下,
本人学生党,实在囊中羞涩,无法搞什么付费,但如果有合适的回答我愿付出酬劳。 谢谢了,真的很急。
esp8266的代码
#define BLINKER_WIFI
#include <SoftwareSerial.h>
#include <Blinker.h>
char auth[] = " ";
char ssid[] = " ";
char pswd[] = " ";
// 新建组件对象
BlinkerButton Button1("btn-s");
BlinkerButton Button2("btn-d");
BlinkerButton Button3("btn-l");
BlinkerButton Button4("btn-r");
BlinkerText Text1("text_1");
bool oState[5]={false};
void dataRead(const String&data)
{
BLINKER_LOG("Blinker readString:",data);
Blinker.vibrate();
uint32_t BlinkerTime=millis();
Blinker.print("millis",BlinkerTime);
}
void button1_callback(const String&state)
{
BLINKER_LOG("get button state:",state);
if(state=="press"){
Serial.print("w");//在2560端判断,在这里不用管
}
else if(state=="pressup"){
Serial.print("s");//在2560端判断,在这里不用管
}
}
void button2_callback(const String&state)
{
BLINKER_LOG("get button state:",state);
if(state=="press"){
Serial.print("d");//在2560端判断,在这里不用管
}
else if(state=="pressup"){
Serial.print("s");//在2560端判断,在这里不用管
}
}
void button3_callback(const String&state)
{
BLINKER_LOG("get button state:",state);
if(state=="press"){
Serial.print("l");//在2560端判断,在这里不用管
}
else if(state=="pressup"){
Serial.print("s");//在2560端判断,在这里不用管
}
}
void button4_callback(const String&state)
{
BLINKER_LOG("get button state:",state);
if(state=="press"){
Serial.print("r");//在2560端判断,在这里不用管
}
else if(state=="pressup"){
Serial.print("s");//在2560端判断,在这里不用管
}
}
void setup()
{
// 初始化串口
Serial.begin(9600);
BLINKER_DEBUG.stream(Serial);
BLINKER_DEBUG.debugAll();
Blinker.begin(auth, ssid, pswd);
Blinker.attachData(dataRead);
Button1.attach(button1_callback);
Button2.attach(button2_callback);
Button3.attach(button3_callback);
Button4.attach(button4_callback);
}
void loop() {
Blinker.run();
}
2560主控板的代码
#include <SoftwareSerial.h>
String Serial_String=" ";
#include <Arduino.h>
int inputA11=7;
int inputA12=8;
int inputA13=9;
int inputB21=10;
int inputB22=11;
int inputB23=12;
int inputC31=6;
int inputC32=24;
int inputC33=26;
int inputD41=5;
int inputD42=32;
int inputD43=34;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(inputA11,OUTPUT);
pinMode(inputA12,OUTPUT);
pinMode(inputA13,OUTPUT);
pinMode(inputB21,OUTPUT);
pinMode(inputB22,OUTPUT);
pinMode(inputB23,OUTPUT);
pinMode(inputC31,OUTPUT);
pinMode(inputC32,OUTPUT);
pinMode(inputC33,OUTPUT);
pinMode(inputD41,OUTPUT);
pinMode(inputD42,OUTPUT);
pinMode(inputD43,OUTPUT);
}
void read_string(){
while(Serial.available()>0){
Serial_String+=(char)(Serial.read());
delay(2);
}
}
void loop() {
if(Serial.available()>0){
Serial_String=" ";
read_string();
Serial.println(Serial_String);
}
/* if(ch='1')straight();
if(ch='2')down();
if(ch='3')left();
if(ch='4')right();
if(ch='5')stops(); */
if(Serial_String=="w"){
analogWrite(inputA11,255);
digitalWrite(inputA12,HIGH);
digitalWrite(inputA13,LOW);
analogWrite(inputB21,255);
digitalWrite(inputB22,HIGH);
digitalWrite(inputB23,LOW);
analogWrite(inputC31,255);
digitalWrite(inputC32,HIGH);
digitalWrite(inputC33,LOW);
analogWrite(inputD41,255);
digitalWrite(inputD42,HIGH);
digitalWrite(inputD43,LOW);
Serial.println("straight");
}
if(Serial_String=="d"){
analogWrite(inputA11,255);
digitalWrite(inputA12,LOW);
digitalWrite(inputA13,HIGH);
analogWrite(inputB21,255);
digitalWrite(inputB22,LOW);
digitalWrite(inputB23,HIGH);
analogWrite(inputC31,255);
digitalWrite(inputC32,LOW);
digitalWrite(inputC33,HIGH);
analogWrite(inputD41,255);
digitalWrite(inputD42,LOW);
digitalWrite(inputD43,HIGH);
Serial.println("down");
}
if(Serial_String=="l"){
analogWrite(inputA11,255);
digitalWrite(inputA12,HIGH);
digitalWrite(inputA13,LOW);
analogWrite(inputB21,255);
digitalWrite(inputB22,HIGH);
digitalWrite(inputB23,LOW);
analogWrite(inputC31,0);
digitalWrite(inputC32,LOW);
digitalWrite(inputC33,LOW);
analogWrite(inputD41,0);
digitalWrite(inputD42,LOW);
digitalWrite(inputD43,LOW);
Serial.println("left");
}
if(Serial_String=="r"){
analogWrite(inputA11,0);
digitalWrite(inputA12,LOW);
digitalWrite(inputA13,LOW);
analogWrite(inputB21,0);
digitalWrite(inputB22,LOW);
digitalWrite(inputB23,LOW);
analogWrite(inputC31,255);
digitalWrite(inputC32,HIGH);
digitalWrite(inputC33,LOW);
analogWrite(inputD41,255);
digitalWrite(inputD42,HIGH);
digitalWrite(inputD43,LOW);
Serial.println("right");
}
if(Serial_String=="s"){
analogWrite(inputA11,0);
digitalWrite(inputA12,LOW);
digitalWrite(inputA13,LOW);
analogWrite(inputB21,0);
digitalWrite(inputB22,LOW);
digitalWrite(inputB23,LOW);
analogWrite(inputC31,0);
digitalWrite(inputC32,LOW);
digitalWrite(inputC33,LOW);
analogWrite(inputD41,0);
digitalWrite(inputD42,LOW);
digitalWrite(inputD43,LOW);
Serial.println("stop");
}
}
wifi连接时