esp8266 串口wifi 套件
个人主页,目前在建中 http://www.zjbdiy.com
可实现控制开关,可保留墙壁实体开关,市电接入
目前只是实现内网udp数据控制开关,本人会持续更新程序和教程
上传的附件中没有使用库,大家可以学习一下
另外 ,本人打包的资料地址http://pan.baidu.com/s/1kTxNvoV
想要套件的 话 请进入我的个人主页,点击淘宝连接即可
目前已经录制4集视频,大家可以进入网盘观看高清视频
1.开发环境搭建 arduino ide 1.7.4sublime text 3 stino
2.套件简介
3.程序算法
4.遥控程序设置
欢迎大家购买我的套件,我会竭尽全力解决遇到的问题
程序可实现udp控制,可串口显示模块ip地址
#include <EEPROM.h>
int wifi_start_led=13;
int relay=11;
int sr_index;
String sr="";
int address=0;
void setup()
{
Serial.begin(115200,SERIAL_8N1);
pinMode(wifi_start_led, OUTPUT);
pinMode(relay,OUTPUT);
digitalWrite(wifi_start_led,LOW);
digitalWrite(relay,EEPROM.read(address));
esp8266_start();
}
void loop()
{
sr=read_string(1);
sr_index=sr.indexOf(":");
if(sr_index>0){
if(sr.substring(sr_index+1)=="lamp_1"){
EEPROM.write(address,!digitalRead(relay));
digitalWrite(relay,!digitalRead(relay));
}
}
sr="";
}
void esp8266_start(void){
Serial.println("AT+RST");
delay(500);
Serial.println("AT+CWMODE=3");
delay(500);
Serial.println("AT+CWJAP=\"zjb_hl\",\"hl900610\"");
delay(5000);
Serial.println("AT+CIPMUX=1");
delay(500);
Serial.println("AT+CIPSTART=0,\"UDP\",\"192.168.2.255\",1000,8080,1");
delay(500);
WIFI_showIP();
digitalWrite(wifi_start_led,HIGH);
}
String read_string(bool s_read){
String r_s;
while(Serial.available()) {
if(s_read){
r_s+=char(Serial.read());
}
else{
Serial.read();
}
delay(2);
}
return r_s;
}
void WIFI_showIP(void)
{
read_string(0);
String data;
unsigned long start;
for(int a=0; a<3;a++)
{
Serial.println("AT+CIFSR");
start = millis();
while (millis()-start<3000) {
while(Serial.available()>0)
{
char a =Serial.read();
data=data+a;
}
if (data.indexOf("AT+CIFSR")!=-1)
{
break;
}
}
if(data.indexOf(".") != -1)
{
break;
}
data = "";
}
data.replace("AT+CIFSR","");
data.replace("+CIFSR:","");
Serial.println(data);
read_string(0);
} 不错哟:lol 其实用esp8266--12直接控制继电器,led,电机等更方便 1、arduino uno 太大,放到墙上的开关盒里很难
2、arduino uno 只有一个硬串口,和esp8266连接需要串口。用硬串口连接会造成调试困难,连接pc需要硬串口。使用软串口会遭遇波特率不同和缓存不足的麻烦。不适合刚入门的
esp8266直接连继电器做开关,成本低,个头小...
楼主你这个方案需要改进
这是一个学习套件,目的不是制作产品,而是学习技术,你们说的当然可以实现,选择这个方案的原因是资料多,操作简单,关于串口的问题其实不大上面的程序可以读到ip返回值然后打印出来
页:
[1]