家电维修网

 找回密码
 注册
家电维修网 网站首页 手机维修 查看内容

USB插座不想要了 改个Wifi插座啊(附代码)

2018-12-26 13:22| 发布者: 南召修电视| 查看: 1362| 评论: 1

摘要: 想把自己改造WIFI插座的经验分享一下。于是花了3天的时间,把源码重新整理测试了一下,app重新修正改进了一下。我相信用我的源码和app,你也一定能拥有自己的WIFI插座。所需元件一个插座(我使用了一个USB插座,自带 ...
USB插座不想要了 改个Wifi插座啊(附代码)


里面的铜线很硬,又容易散热,焊接和操作起来还是没那么容易。


各部件各就各位。

然后原样装好,完美。上手写ID。
 

注意,假如家里有小孩,请注意把USB口封死,否则小孩拿着手机充电线乱捅有触电危险。


ESP8266的固件,我使用了Arduino IDE来进行编程和烧写,在Arduino IDE安装ESP8266的库以后就能直接用Arduino IDE对ESP8266进行编程了,非常方便。
下面是ESP8266的源码,复制和传播请保留版权信息,谢谢。

1.    /*21ic 第二届拆解+DIY大赛

2.    作者:simonliu009@21ic

3.    QQ:150739525

4.    复制和传播请保留版权信息,谢谢。

5.    */

6.     

7.    #include <FS.h>  

8.     

9.    #include <ESP8266wifi.h>          

10.   #include <EthernetUdp.h>

11.    

12.   #include <DNSServer.h>

13.    

14.   #include <SPI.h>

15.   // #include <Ethernet.h>

16.    

17.   #define relay1 13

18.    

19.   unsigned int localPort = 8267; 

20.   char packetBuffer[10]; 

21.    

22.    

23.   const char *ssid     = "Asus";//这里改为你要连接的(WIFI) ssid

24.   const char *password = "esp20170317";//你要连接的(WIFI)密码

25.    

26.   WiFiUDP Udp;

27.    

28.    

29.    

30.   void setup() {

31.     // put your setup code here, to run once:

32.       Serial1.begin(9600);

33.       Serial1.println();

34.       pinMode(relay1, OUTPUT);

35.       digitalWrite(relay1, LOW);  

36.    

37.    

38.       WiFi.mode(WIFI_STA);

39.       WiFi.begin(ssid, password);

40.    

41.     

42.       while (WiFi.status() != WL_CONNECTED)

43.                                            

44.       {

45.           delay(500);

46.           Serial1.print(".");

47.       }//假如没有连通向串口发送.....

48.    

49.    

50.       Serial1.println("Wifi Connected :)");

51.       Serial1.println("Local Ip Address");

52.       Serial1.println(WiFi.localIP());

53.     

54.       Udp.begin(localPort);  //开始UDP监听

55.       Serial1.print("UDP端口");   

56.       Serial1.print(localPort);      

57.       Serial1.println("监听开始......"); 

58.   }

59.    

60.   void loop() 

61.   {

62.       // if there's data available, read a packet

63.       int packetSize = Udp.parsePacket();

64.     

65.           if (packetSize) 

66.           {

67.    

68.             for (int i = 0; i<=9; i++){

69.               packetBuffer[i] = 'Z';

70.               }

71.    

72.             Udp.read(packetBuffer, 10); // 将UDP包读入缓冲区

73.    

74.    

75.                 if(packetBuffer[0]=='L'&&packetBuffer[1]=='A'&&packetBuffer[2]=='M'&&packetBuffer[3]=='P'&&packetBuffer[4]=='O'&&packetBuffer[5]=='N')

76.                 {

77.   //               delay(parseInt(packetBuffer[]) * 1000);

78.                    digitalWrite(relay1, HIGH);

79.                 }

80.                 

81.                 if(packetBuffer[0]=='L'&&packetBuffer[1]=='A'&&packetBuffer[2]=='M'&&packetBuffer[3]=='P'&&packetBuffer[4]=='O'&&packetBuffer[5]=='F'&&packetBuffer[6]=='F')

82.                 {

83.                     digitalWrite(relay1, LOW);

84.                 }

85.              

86.           }

87.    

88.   }

89.    

90.    

91.    


12
发表评论

最新评论

引用 老逗 2018-12-27 07:19
这方案不错

查看全部评论(1)

QQ|门户地图|网站地图|家电维修|手机版|家电维修技术论坛 ( 蜀ICP备14030498号-16 川公网安备51102502000162号 )

GMT+8, 2025-5-1 18:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部