买了两个智德智能插座,某鱼9块9一个,由于原厂的App倒闭,导致不能使用,原本是通过公子小白机器人(从没有听过的机器人😅)进行控制的,也可以通过公子小白APP控制,但是好像也不能用了,就算能用也不太想用,毕竟不想把智能电器暴露在互联网中,就想通过Arduino刷程序只在家庭局域网中进行控制。
卖家提供了针脚图:
但是卖家没有提供刷机的方法,看得出主芯片是ESP8266EX芯片,拆机研究了一通之后,找到了刷机的办法:
在用CH340芯片连接芯片之前要先把GPIO0的引脚接地,这样ESP8266就会进入下载模式,但是不用一直接地就可以烧录程序,只要让最开始让芯片进入烧录模式即可。
引脚连接:VCC -- 3.3VGND -- GNDRTD -- TXDTXD -- RXD
arduino:
#include
#include
#include
#include "FS.h"ESP8266WebServer server(80);//const int LED_PIN = LED_BUILTIN;
const int LED_PIN = 4;
int ledStatus = HIGH;void handleRoot() {// Just serve the index page from SPIFFS when asked forFile index = SPIFFS.open("/index.html", "r");server.streamFile(index, "text/html");index.close();
}// A function which sends the LED status back to the client
void sendStatus() {if (ledStatus == HIGH) server.send(200, "text/plain", "HIGH");else server.send(200, "text/plain", "LOW");
}// Toggle the LED and back its status
void toggleLED() {ledStatus = ledStatus == HIGH ? LOW : HIGH;digitalWrite(LED_PIN, ledStatus);sendStatus();
}void setup() {pinMode(LED_PIN, OUTPUT);digitalWrite(LED_PIN, ledStatus);Serial.begin(115200);SPIFFS.begin();WiFiManager wm;wm.autoConnect("SmartSocket");Serial.println(""); Serial.print("ESP8266 Connected to ");Serial.println(WiFi.SSID()); // WiFi名称Serial.print("IP address:\t");Serial.println(WiFi.localIP()); server.on("/", handleRoot);// Handlers for various user-triggered eventsserver.on("/toggle", toggleLED);server.on("/status", sendStatus);server.begin();}void loop() {server.handleClient();
}
index.html:
智能家居控制平台 智能家居控制平台
灯光: