TAIDONG - ESP8266 https://www.zhangtaidong.cn/category/esp-8266/ zh-CN ESP8266 Wed, 16 Dec 2020 20:20:00 +0800 Wed, 16 Dec 2020 20:20:00 +0800 ESP8266与W5100以太网模块通讯 https://www.zhangtaidong.cn/archives/134/ https://www.zhangtaidong.cn/archives/134/ Wed, 16 Dec 2020 20:20:00 +0800 TAIDONG 1.接线方式

W5100 | ESP8266

+5V -
NSS - SS
MO - MOSI
GND - GND
RST - GPIO4
SCK - SCLK
MI - MISO

2.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()
{
}
]]>
0 https://www.zhangtaidong.cn/archives/134/#comments https://www.zhangtaidong.cn/feed/category/esp-8266/
ESP8266/ESP32 SmartConfig 一键配网+自动重连+微信扫码配网 https://www.zhangtaidong.cn/archives/124/ https://www.zhangtaidong.cn/archives/124/ Sat, 14 Nov 2020 21:00:00 +0800 TAIDONG 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();
  }
}

微信扫码配网

EspTouch.png


通过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();
  } 
]]>
0 https://www.zhangtaidong.cn/archives/124/#comments https://www.zhangtaidong.cn/feed/category/esp-8266/
ESP8266-4路远程开关(支持手动开关/MQTT远程控制/安卓APP控制) https://www.zhangtaidong.cn/archives/106/ https://www.zhangtaidong.cn/archives/106/ Sun, 08 Nov 2020 19:52:00 +0800 TAIDONG 通过ESP826-01制作4路智能开关


4路Relay_ESP8266.jpg

  1. 所需组件

ESP8266-01模块
HiLink 5V电源
AMS1117 IC
5V继电器(4个)
MCT2E IC(4个)
1N4007二极管(4个)
3pin端子连接器(4个)
BC547晶体管(4个)
10K电阻(8个)


  1. 电路原理图

ckt.jpg


  1. 手动开关原理图

ckt2.jpg


  1. Code源码

此处省略/待分享


  1. PCB设计图及分享下载

对于这个项目,我设计了2层PCB使其非常紧凑。在Easyeda.com上传PCB下单即可,该PCB设计文件对所有人开放。
下载地址:整理中...!


  1. 安卓APP控制

下载地址:整理中...!

]]>
3 https://www.zhangtaidong.cn/archives/106/#comments https://www.zhangtaidong.cn/feed/category/esp-8266/