TAIDONG - ESP8266 https://www.zhangtaidong.cn/category/esp-8266/ ESP8266 ESP8266与W5100以太网模块通讯 https://www.zhangtaidong.cn/archives/134/ 2020-12-16T20:20:00+08:00 1.接线方式W5100 | ESP8266+5V - NSS - SSMO - MOSIGND - GNDRST - GPIO4SCK - SCLKMI - MISO2.ESP8266 Arduino 源代码/* A simple server that answer the ping message. Using an ESP8266 . */ /* Circuit: * Ethernet shield attached to pins : * D6: GPIO12 - MISO * D7: GPIO13 - MOSI * D8: GPIO15 - CS * D5: GPIO14 - SCLK */ #include <SPI.h> #include <Ethernet.h> #define MACADDRESS 0xDE, 0xAD, 0xBE, 0xEF, 0xDE, 0xED IPAddress ip(192,168,6,29); IPAddress gateway(192, 168, 6, 1); IPAddress subnet(255, 255, 255, 0); // telnet defaults to port 23 EthernetServer server(23); #define RST 4 //W5100 RST void setup() { pinMode(BUILTIN_LED, OUTPUT); pinMode(RST, OUTPUT); digitalWrite(RST,HIGH); //Reset this module delay(200); digitalWrite(RST,LOW); delay(200); digitalWrite(RST,HIGH); delay(200); Serial.begin(115200); Serial.println(); byte mac[] = { MACADDRESS }; Ethernet.begin(mac, ip, gateway, subnet); // print your local IP address: Serial.print("My IP address: "); Serial.println(Ethernet.localIP()); server.begin(); } void loop() { } ESP8266/ESP32 SmartConfig 一键配网+自动重连+微信扫码配网 https://www.zhangtaidong.cn/archives/124/ 2020-11-14T21:00:00+08:00 ESP8266使用:#include <ESP8266WiFi.h>ESP32使用:#include <WiFi.h>SmartConfig的配置:void SmartConfig() { WiFi.mode(WIFI_STA); Serial.println("\r\nWait for Smartconfig..."); WiFi.beginSmartConfig(); while (1) { Serial.print("."); delay(500); // wait for a second if (WiFi.smartConfigDone()) { Serial.println("SmartConfig Success"); Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str()); Serial.printf("PSW:%s\r\n", WiFi.psk().c_str()); break; } } }上电时自动重连:bool AutoConfig() { WiFi.begin(); //如果觉得时间太长可改 for (int i = 0; i < 20; i++) { int wstatus = WiFi.status(); if (wstatus == WL_CONNECTED) { Serial.println("WIFI SmartConfig Success"); Serial.printf("SSID:%s", WiFi.SSID().c_str()); Serial.printf(", PSW:%s\r\n", WiFi.psk().c_str()); Serial.print("LocalIP:"); Serial.print(WiFi.localIP()); Serial.print(" ,GateIP:"); Serial.println(WiFi.gatewayIP()); return true; } else { Serial.print("WIFI AutoConfig Waiting......"); Serial.println(wstatus); delay(1000); } } Serial.println("WIFI AutoConfig Faild!" ); return false; }setup( )函数中启用:void setup() { Serial.begin(115200); delay(100); if (!AutoConfig()) { SmartConfig(); } }微信扫码配网通过SmartConfig一键配网后,如更换路由怎样重新配置1.每次程序启动后,直接进入SmartConfig配置,设置超时时间,一旦超时则退出SmartConfig配置,在此时间段内可进行配置#include <ESP8266WiFi.h> void SmartConfig() { int TimerOverCount=0; WiFi.mode(WIFI_STA); Serial.println("WIFI Wait for Smartconfig"); WiFi.beginSmartConfig(); while (1) { Serial.printf(".%d",TimerOverCount); if (WiFi.smartConfigDone()) { Serial.println("WIFI SmartConfig Success"); Serial.printf("SSID:%s", WiFi.SSID().c_str()); Serial.printf(", PSW:%s\r\n", WiFi.psk().c_str()); Serial.print("LocalIP:"); Serial.print(WiFi.localIP()); Serial.print(" ,GateIP:"); Serial.println(WiFi.gatewayIP()); WiFi.setAutoConnect(true); // 设置自动连接 break; } if(TimerOverCount>=15) { WiFi.stopSmartConfig(); WiFi.begin(); break; } TimerOverCount ++; delay(1000); } } void setup(void) { // Start Serial Serial.begin(115200); delay(100); SmartConfig(); } ESP8266-4路远程开关(支持手动开关/MQTT远程控制/安卓APP控制) https://www.zhangtaidong.cn/archives/106/ 2020-11-08T19:52:00+08:00 通过ESP826-01制作4路智能开关所需组件ESP8266-01模块HiLink 5V电源AMS1117 IC5V继电器(4个)MCT2E IC(4个)1N4007二极管(4个)3pin端子连接器(4个)BC547晶体管(4个)10K电阻(8个)电路原理图手动开关原理图Code源码此处省略/待分享PCB设计图及分享下载对于这个项目,我设计了2层PCB使其非常紧凑。在Easyeda.com上传PCB下单即可,该PCB设计文件对所有人开放。下载地址:整理中...!安卓APP控制下载地址:整理中...!