一,前言
其實(shí)自己動(dòng)手制作一個(gè)智能排插很容易,看見(jiàn)網(wǎng)上的教程有點(diǎn)亂,所以我決定自己寫(xiě)一篇,只需要你懂一點(diǎn)編程知識(shí),就可以制作自己專(zhuān)屬的智能排插。有興趣的小伙伴可以往下看,下面我會(huì)給出代碼和需要購(gòu)買(mǎi)的硬件,和淘寶購(gòu)買(mǎi)鏈接,你們也可以買(mǎi)同款的就行。個(gè)人覺(jué)得自己制作一個(gè)智能排插還是很酷的,這是智能家居的第一步,而且這個(gè)教程對(duì)于初學(xué)者來(lái)說(shuō)也很簡(jiǎn)單。只需要懂一點(diǎn)點(diǎn)的編程知識(shí)和基本的電路知識(shí)!準(zhǔn)備的硬件材料,材料在淘寶都可以買(mǎi)到,而且便宜。你們可以自己淘寶購(gòu)買(mǎi)
1、一個(gè)ESP8266繼電器模塊;
2、220v轉(zhuǎn)5v直流電源模塊一個(gè);
3、esp8266下載器一個(gè);
4、普通排插一個(gè)。
其實(shí)最后就是將這些模塊集成在排插里面,讓排插變成一個(gè)我們可以控制的器件,實(shí)物如下圖:
注意事項(xiàng):1、將變壓模塊輸入端連接到220V輸出端連接到esp8266模塊的電源輸入端;2、將排插的火線(xiàn)截?cái)啵瑑筛謩e連接到繼電器的com端和nc端
二,編程準(zhǔn)備
對(duì)ESP8266程序?qū)懭氲慕坛檀笾掠袃煞N,1是下載別人做好的bin文件包,使用專(zhuān)用軟件燒錄到ESP8266,我查了下,資料比較多,貌似難度很大;2是使用USB轉(zhuǎn)TTL工具進(jìn)行寫(xiě)入,先利用Arduino IDE進(jìn)行寫(xiě)入,我們就用這種方法。
打開(kāi)Arduino IDE,默認(rèn)的Arduino IDE是沒(méi)有ESP8266庫(kù)的,需要我們自己添加上。
點(diǎn)擊Arduino IDE的文件-首選項(xiàng),在附加開(kāi)發(fā)板管理器網(wǎng)址中填入:
這些工作都準(zhǔn)備好以后我們就可以編程
// An highlighted block#include #define MAX_SRV_CLIENTS 5 //定義可連接的客戶(hù)端數(shù)目最大值 不能超過(guò)5個(gè)
//設(shè)置成TCP連接,服務(wù)端WiFiServer server(8080);//服務(wù)器端口8080WiFiClient serverClients[MAX_SRV_CLIENTS];//WiFiClient client; //創(chuàng)建客戶(hù)端//const int tcpPort = 8266;//服務(wù)器端口//打開(kāi)繼電器uint8_t tmp1[]= {0xA0,0x01,0x01,0xA2};//關(guān)閉繼電器uint8_t tmp2[]= {0xA0,0x01,0x00,0xA1};
char ssid[] = "WWW"; // 你的路由器SSID (name)char password[] = "cc123456"; // 你的wifi密碼 passwordString aa = "";//接收到客戶(hù)端的數(shù)據(jù)uint8_t fale1 = 0;uint8_t fale2 = 0;//char *Value16;void setup(){ //這個(gè)波特率是和模塊的通訊頻率,不能更改 Serial.begin(9600); pinMode(4,OUTPUT);//繼電器io // IPAddress Localip(192,168,8,107);//指派模塊的局域網(wǎng)ip IPAddress Gateway(192,168,8,1);//局域網(wǎng)網(wǎng)關(guān),路由器ip,這里的ip根據(jù)你的路由設(shè)置 IPAddress Subnet(255,255,0,0);//局域網(wǎng)子網(wǎng)掩碼 ,可以在電腦或者路由器查到 WiFi.config(Localip, Gateway, Subnet);//配置網(wǎng)絡(luò) WiFi.begin(ssid, password);//連接wifi WiFi.mode(WIFI_STA);//wifi為客戶(hù)端 //啟動(dòng)UART傳輸和服務(wù)器 server.begin(); server.setNoDelay(true); } void loop(){ // kongzhi();// if(Serial.available() >0)// { // Value16 =(char*)(Serial.read()); // } uint8_t i; //檢測(cè)服務(wù)器端是否有活動(dòng)的客戶(hù)端連接 if (server.hasClient()){ for(i = 0; i < MAX_SRV_CLIENTS; i++){ //查找空閑或者斷開(kāi)連接的客戶(hù)端,并置為可用 if (!serverClients[i] || !serverClients[i].connected()){ if(serverClients[i]) serverClients[i].stop(); serverClients[i] = server.available(); continue; } } //若沒(méi)有可用客戶(hù)端,則停止連接 WiFiClient serverClient = server.available(); serverClient.stop(); } //檢查客戶(hù)端的數(shù)據(jù) for(i = 0; i < MAX_SRV_CLIENTS; i++){ if (serverClients[i] && serverClients[i].connected()){ if(serverClients[i].available()){ //從Telnet客戶(hù)端獲取數(shù)據(jù),并推送到串口 while(serverClients[i].available()) { aa+= char(serverClients[i].read());//aa就是收到的數(shù)據(jù),用來(lái)做對(duì)比執(zhí)行操作 delay(2);} if(aa == "a") //接收到字符a打開(kāi)繼電器 { //回復(fù)客戶(hù)端,已經(jīng)接收到指令 serverClients[i].write("kai"); if(fale1 == 0){ fale1 = 1; fale2 = 0; // int Length1 = sizeof(tmp1); //打開(kāi)繼電器 for(int j = 0 ; j<=3 ;j++) { Serial.write(tmp1[j]); // Serial.print(tmp1[j],HEX); // Serial.println(""); } } } if(aa == "b") { //關(guān)閉繼電器 serverClients[i].write("guan"); if (fale2 == 0){ // int Length2 = sizeof(tmp2); fale1 = 0; fale2 = 1; for(int j = 0 ; j<=3 ;j++) { Serial.write(tmp2[j]); // Serial.print(tmp1[j],HEX); // Serial.println(""); } } } if(aa == "c") { //心跳包 serverClients[i].write("ok"); } aa = "";
} } }}
然后就可以燒錄程序了。
三,燒錄1、將esp8266的驅(qū)動(dòng)安裝好;2、將esp8266插在燒錄器上,使用ARDUINO燒錄;3、將燒錄好的esp8266插回去繼電器模塊;四,改裝排插1、把220V接在220V轉(zhuǎn)5V的變壓模塊輸入上,注意不要接反了;2、將變壓模塊輸出口接在繼電器模塊的電源口上;3、之后將排插的火線(xiàn)截?cái)啵釉诶^電器的COM口和NC口上,最后整理一下,把排插蓋上。效果圖:
使用TCP測(cè)試工具,測(cè)試信號(hào)是否導(dǎo)通。用電腦打開(kāi)TCp助手,按圖上配置,按連接,然后發(fā)送字符a看排插是否通電了。
如果可以通電,再發(fā)送b,看是否關(guān)閉。如果都可以,那就是已經(jīng)成功了!經(jīng)過(guò)上面,就可以在局域網(wǎng)控制家中的家電了,現(xiàn)在只是局域網(wǎng),如果你想在外面查看家中電器的打開(kāi)或者關(guān)閉情況,則你需要部署到服務(wù)器,或者你也可以在家里做個(gè)內(nèi)網(wǎng)穿透。
-
繼電器
+關(guān)注
關(guān)注
133文章
5399瀏覽量
150596 -
WIFI
+關(guān)注
關(guān)注
81文章
5357瀏覽量
206890 -
排插
+關(guān)注
關(guān)注
0文章
9瀏覽量
10043
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
智能小車(chē)DIY全攻略
教你如何去設(shè)計(jì)一種基于ESP8266模塊的wifi控制插排?
ESP8266 wifi模塊開(kāi)發(fā)匯總

評(píng)論