个人主页,目前在建中 http://www.zjbdiy.com
可实现控制开关,可保留墙壁实体开关,市电接入
目前只是实现内网udp数据控制开关,本人会持续更新程序和教程
上传的附件中没有使用库,大家可以学习一下
另外 ,本人打包的资料地址 http://pan.baidu.com/s/1kTxNvoV
想要套件的 话 请进入我的个人主页,点击淘宝连接即可
目前已经录制4集视频,大家可以进入网盘观看高清视频
1.开发环境搭建 arduino ide 1.7.4 sublime 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);
- }
复制代码 |