今天来教大家制作一个能通过手机控制的继电器!首先我们要准备以下材料: arduino ide、esp8266开发板、5V继电器、8050三极管2只、10k电阻2只、8P排母两个、3P接线端子2个、DC座一个 第一步:下载Arduino IDE 这个小编就不多说了,大家百度搜索下载就可以了,安装过程也不复杂。 Arduino集成开发环境 第二步:添加板卡 a、打开arduino ide->文件->首选项->“附加开发板管理器网址”输入http://wechat./package_esp8266com_index.json 完成后点击好并重启IDE; b、重启IDE,打开工具->开发板->开发板管理器 稍等,拉倒最后面会看到ESP8266,安装就好(注:因为小编已经安装过,所以没有后面安装按钮) 安装需要段时间,大家耐心等待,安装成功后大家会在开发板中看到下图; 到这步说明板卡添加成功了! 第三步:编写程序(这里要感谢论坛的跑龙套大神,程序借鉴了大神的),程序如下: #include #define relay1 12 //继电器连接在8266的GPIO12上 const char *ssid = 'HMTX';//这里是我的wifi,你使用时修改为你要连接的wifi ssid const char *password = 'hmtx123456789';//你要连接的wifi密码 const char *host = '192.168.18.166';//修改为手机端控制软件服务端的IP地址 WiFiClient client; const int tcpPort = 8266;//修改为你建立的手机软件服务端的端口号 void setup() { pinMode(relay1,OUTPUT); Serial.begin(115200); delay(10); Serial.println(); Serial.println(); Serial.print('Connecting to ');//串口输出提示 Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED)//WiFi.status() ,这个函数是wifi连接状态,返回wifi链接状态 delay(500); Serial.print('.'); }//如果没有连通向串口发送..... Serial.println(''); Serial.println('WiFi connected'); Serial.println('IP address: '); Serial.println(WiFi.localIP());//WiFi.localIP()返回8266获得的ip地址 } void loop() { while (!client.connected())//几个非连接的异常处理 { if (!client.connect(host, tcpPort)) { Serial.println('connection....'); delay(500); } } while (client.available())//available()同ARDUINO,不解释了 { char val = client.read();//read()同arduino if(val=='a')//手机端发送a和b来控制 { digitalWrite(relay1,HIGH);//继电器控制端输出高电平 } if(val=='b') { digitalWrite(relay1, LOW);//继电器控制端输出低电平 } } } 第四步:上传程序 将开发板与电脑连接好,在IDE工具中选择好板卡型号(nodeMCU 0.9)和端口号就可以上传了; 上传成功 左边是开发板,右边是下载座 第五步:连接手机并控制 手机端控制软件 软件设置界面 软件设置界面 软件这里ON和OFF设置成b和a就可以与程序对应了,输入端口号8266点击开始就可以了;下面就是控制图 On时开发板上的绿灯亮了,对应继电器就是吸合状态 Off时开发板上的绿灯灭了,对应继电器就是释放状态 第六步:连接继电器,继电器模块是小编自己做的;很简单,就是三极管驱动继电器,大家可以度娘 继电器模块正面 继电器模块背面 到这里就大功告成了,这里只能局域网控制,外网控制小编还没研究出来~ |
|