资源描述:
《wifi实现控制继电器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ARDUINO开发板通过WI-FI控制继电器2013年12月22日 博比发表回复这两天参加了公司里同事组织的“未来圣诞节——硬件开发”活动,有幸和几个大神一起实现了很早以前就想做的Wi-Fi继电器。整个设备是基于ArduinoUNO芯片,外扩一个Wi-FiShield以及一个DigitalI/OShield,在DigitalI/OShield上接出两根数字信号分别是控制继电器以及LED灯。Arduino在通电后将会连接上本地的一个Wi-Fi热点,然后通过写死的SSID名称、密码以及验证方式连接上Wi-Fi网络,同时开始不断监听UDP连接。在收到UDP数
2、据以后,分析每个13为结尾的数据包中第二个字节中的值,如果为1则表示通电,如果为2则表示断电。在设计完成整个设备后,我们心灵手巧的童鞋还做了个盒子,将整个设备放进去,以期更像一个插座=_=
3、
4、
5、。下图是整个设备最终成型照片!下面是Arduino部分的源码。123456789101112131415161718192021222324252627282930313233343536373839404142//Arduino开发环境可以访问http://arduino.cc//WifiShield使用的是SeeedStudio的WifiShield,Wi
6、ki:http://www.seeedstudio.com/wiki/Wifi_Shield_V1.1//SeeedStudioWifiShield库文件:https://github.com/Seeed-Studio/WiFi_Shield下载后放在Arduino安装目录下的Libraries文件夹下#include#include#include"WiFly.h" //设置Wi-Fi的SSID以及密钥#defineSSID "123"#defineKEY "usuj6539" //设置Wi-Fi的加密方式,加密方式有以下几种枚举:
7、//WIFLY_AUTH_OPEN/WIFLY_AUTH_WPA1/WIFLY_AUTH_WPA1_2/WIFLY_AUTH_WPA2_PSK//枚举值定义在WiFly.h文件中#defineAUTH WIFLY_AUTH_WPA2_PSK //设置通信IP[1],本地端口以及远程端口#defineUDP_HOST_IP "192.168.43.1"#defineUDP_REMOTE_PORT 8123#defineUDP_LOCAL_PORT 8123 //通信跳线设置//Arduino WiFly// 2
8、 TX// 3 RXSoftwareSerialuart(2,3);WiFlywifly(uart); //设置两个数字输出信号的接口(DigitalI/O)intledPin1=6;//定义数字6接口intledPin2=13;//定义数字6接口 //初始化UDP连接voidsetupUDP(constchar*host_ip,uint16_tremote_port,uint16_tlocal_port){ charcmd[32]; wifly.sendCommand("setwj1r","AOK"); wif
9、ly.sendCommand("setip1r","AOK"); snprintf(cmd,sizeof(cmd),"setih%sr",host_ip); wifly.sendCommand(cmd,"AOK"); snprintf(cmd,sizeof(cmd),"setir%dr",remote_port); wifly.sendCommand(cmd,"AOK");4344454647484950515253545556575859606162636465666768697071727374757677787980
10、818283848586 snprintf(cmd,sizeof(cmd),"setil%dr",local_port); wifly.sendCommand(cmd,"AOK"); wifly.sendCommand("saver"); wifly.sendCommand("rebootr");} //setup函数是Arduino在启动时立刻执行,且仅会执行一次的函数,//一般用于数据、端口的初始化工作voidsetup(){ //Serial是Arduino内置的对象,用于外部设备通过串口与Arduino板的通
11、信 Serial.begin(9600); Serial.println("sta