uno端
android端完成后,开始实现uno端,主要工作就是接板子和上传代码到单片机。在编写代码前,我们先来了解一下wifi传感器的常用命令
1.wifi传感器常用AT指令
2.针脚接线
1.wifi模块
VCC —— 5V
GND —— GND
TX —— 9
RX —— 8
2.小灯
正极 —— 13
电阻负极 —— GND
3.单片机代码
String comdata = ""; // 字符串缓冲区
#include <SoftwareSerial.h>
#include <OneWire.h>
#include <DallasTemperature.h>
SoftwareSerial wifi(9, 8);
unsigned long lastDebounceTime = 0;
int led = 13;
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
wifi.begin(9600);
pinMode(led, OUTPUT);
sensors.begin();
}
void loop() {
// put your main code here, to run repeatedly:
wifi.println(F("AT")); //设置AT模式
if (wifi.find("OK")) //healthy response
{
Serial.println("AT is OK");
// return true;
}
else
{
Serial.println("AT is failed");
//return false;
}
delay(100);
wifi.print("AT+CWSAP=\"zhangsan_test\",\"\",1,0,4,0\r\n"); //设置wifi名称
delay(1000);
if (wifi.find("OK")) //healthy response
{
Serial.println("name config is OK");
//return true;
}
else
{
Serial.println("name config is failed");
// return false;
}
wifi.println(F("AT+CIPMUX=1"));
if (wifi.find("OK")) //healthy response
{
Serial.println("AT+CIPMUX=1 is OK");
//return true;
}
else
{
Serial.println("AT+CIPMUX=1 is failed");
// return false;
}
wifi.println(F("AT+CIPSERVER=1,8080")); //设置端口号,和android端保持一致
delay(2);
if (wifi.find("OK")) //healthy response
{
Serial.println("AT+CIPSERVER=1,8080 is OK");
//return true;
}
else
{
Serial.println("AT+CIPSERVER=1,8080 is failed");
// return false;
}
while (1) //死循环
{
if (wifi.available())
{
while (wifi.available() > 0)
{
comdata += char(wifi.read());
delay(2);
}
Serial.println(comdata);
if (comdata.startsWith("8", 11)) //判断android端得到的数字,为8开灯
{
Serial.println("开灯");
digitalWrite(led, HIGH);
}
else if (comdata.startsWith("9", 11)) //判断android端得到的数字,为9关灯
{
Serial.println("关灯");
digitalWrite(led, LOW);
}
comdata = "";
}
}
}
上述代码会用到2个额外的lib,其中DallasTemperature是后续输出温度传感器读数用到的,我们直接导入进去
#include <OneWire.h>
#include <DallasTemperature.h>
下载地址:所需要的包
android端输入
服务器地址:192.168.4.1
端口号:8080