完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,
我不喜欢 ESP8266,我正在尝试制作一个带有网页控制(不是物联网)的无线调光器,这样我就可以在没有互联网的情况下控制电器,我发现一个项目看起来很适合我(电子方面)我建立所有连接,当我上传 Sketch 并导航到我得到的 IP 地址(“未找到:/”)我试图联系作者但没有运气,我查看了 Sketch 没有找到网页或任何迹象在网页上 \'\'\' Dimmer.ino #include \"hw_timer.h\" #include \"dimmer.h\" void setup() { Serial.begin(115200); pinMode(ZERO_CROSSING_INT_PIN,INPUT); for(int i=0; i 1000) { if(WiFi.status() != WL_CONNECTED) { connectToWiFi(); WebSocketConnect(); MDNSConnect(); } lastConnectivityCheckTime = millis(); } else { webSocket.loop(); //屈服(); //OTA if (millis() - lastTimeHost > 10) { httpServer.handleClient(); lastTimeHost = 毫秒(); } //更新连接的客户端 currentChangeTime = millis(); if(currentChangeTime - lastChangeTime> 300 && isSynced == 0) { String websocketStatusMessage = \"A\" + String(Dimming_Lvl[0]) + \",B\" + String(Dimming_Lvl[1]) + \",X\" + String(State [0]) + \",Y\" + 字符串(状态[1]); webSocket.broadcastTXT(websocketStatusMessage); // 告诉所有连接的客户端通道的当前状态 isSynced = 1; } \'\'\' Dimmer.h /*除 GPIO16中断模式 外,所有引脚都支持中断:RISING、FALLING、CHANGE引脚:GPIO 5:驱动 MOSFET/TRIAC 通道 (0) GPIO 4:驱动 MOSFET/TRIAC 通道(1)可以根据需要添加更多通道。GPIO 12:过零中断GPIO 0 GPIO 2 引导模式HH FLASH LH 通过 UART 编程(Rx,Tx)*/ #define IS_DEBUG #ifdef IS_DEBUG #define DEBUG_PRINT(x) Serial.print( x) #define DEBUG_PRINTLN(x) Serial.println(x) #else #define DEBUG_PRINT(x) #endif #include #include #include #include #include #include #include #include WebSocketsServer webSocket = WebSocketsServer(81); ESP8266WebServer httpServer(80); ESP8266HTTPUpdateServer httpUpdater; //////////////////////////////////////////////// /////////////////设备配置///////////////////////////// ////////////////////////////////// #define NUM_CHANNELS 2 #define ZERO_CROSSING_INT_PIN 12 #define DELTA 4 / /(t_zero_crossing - t_interrupt)/STEP_TIME #define STEP_TIME 78 //for 128 lvls (in us) (65 for 50 Hz) //128 lvl 亮度控制 int Dimming_Lvl[NUM_CHANNELS] = {0,0}; //(0-127) int Drive_Pin[NUM_CHANNELS] = {5,4}; int State[NUM_CHANNELS] = {0,0}; //Wifi 接入点设置 String ssid = \"#Stay_Home\"; String password = \"Stiff@Wood\"; volatile boolean isHandled[NUM_CHANNELS] = {0,0}; volatile int Lvl_Counter[NUM_CHANNELS] = {0,0}; //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// 无符号长 lastConnectivityCheckTime = 0; 无符号长 lastTimeHost = 0; 无符号长 currentChangeTime = 0; 无符号长 lastChangeTime = 0; 布尔isSynced = 0; int NumActiveChannels = 0; volatile boolean zero_cross = 0; 易失性 int NumHandled = 0; //Wifi AP 设置 /* 将这些设置为您想要的凭据。*/ const char *APssid = \"Dimmer001\"; const char *APpassword = \"喜鹊罗宾\"; const char* host = \"Dimmer0\"; /** //////////////////////////////////////////// ///////////////////////////// 更新通道的状态 ////////////// //////////////////////////////////////////////// //////////// **/ void Update_State(int ON_OFF,int Channel_Number) { if(State[Channel_Number] == 0 && ON_OFF == 1) { NumActiveChannels++; } else if(State[Channel_Number] == 1 && { NumActiveChannels--; } 状态[Channel_Number] = ON_OFF; } // WebSocket 事件 void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t length) { switch (type) { case WStype_DISCONNECTED: break; case WStype_CONNECTED: { IPAddress ip = webSocket.remoteIP(num); lastChangeTime = 毫秒(); 已同步 = 0; DEBUG_PRINTLN(ip); } 休息; case WStype_TEXT: { String text = String((char *) &payload[0]); lastChangeTime = 毫秒(); 已同步 = 0; if(text.startsWith(\"a\")) { String aVal=(text.substring(text.indexOf(\"a\")+1,text.length())); int Lvl_0 = aVal.toInt(); 调光_Lvl[0] = Lvl_0; DEBUG_PRINTLN(Lvl_0); } if(text.startsWith(\"b\")) { String bVal=(text.substring(text.indexOf(\"b\")+1,text.length())); int Lvl_1 = bVal.toInt(); 调光_Lvl[1] = Lvl_1; DEBUG_PRINTLN(Lvl_1); } if(text==\"ON_0\") { Update_State(1,0); DEBUG_PRINTLN(\"通道 0 开启!!\"); { 更新状态(0,0); digitalWrite(Drive_Pin[0], LOW); DEBUG_PRINTLN(\"通道 0 关闭!!\"); } if(text==\"ON_1\") { Update_State(1,1); DEBUG_PRINTLN(\"通道 1 打开!!\"); } if(text==\"OFF_1\") { Update_State(0,1); digitalWrite(Drive_Pin[1], LOW); DEBUG_PRINTLN(\"通道 1 关闭!!\"); } } //webSocket.sendTXT(num, payload, length); //webSocket.broadcastTXT(负载, 长度); 休息; 案例 WStype_BIN: hexdump(有效载荷,长度); //webSocket.sendBIN(num, payload, length); 休息; } } // WebSocket 连接 void WebSocketConnect() { webSocket.begin(); webSocket.onEvent(webSocketEvent); } // MDNS void MDNSConnect() { if (!MDNS.begin(host)) { DEBUG_PRINTLN(\"Error setting up MDNS responder!\"); 而(1) { 延迟(1000); } } DEBUG_PRINTLN(\"mDNS 响应器启动\"); MDNS.addService(\"ws\", \"tcp\", 81); MDNS.addService(\"http\", \"tcp\", 80); void HTTPUpdateConnect() { httpUpdater.setup(&httpServer); httpServer.begin(); DEBUG_PRINTLN(\"HTTPUpdateServer 就绪!打开http:// \"); DEBUG_PRINT(主机); DEBUG_PRINTLN(\".local/update in your browser\\n\"); / ** //////////////////////////////////////////// ///////////////////////////////// 定时器中断 ISR //////////// //////////////////////////////////////////////// //////////////////// **/ void dimTimerISR() { if(zero_cross == 1) { for(int i = 0; i < NUM_CHANNELS; i++ ) { if(状态 == 1) { |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
140 浏览 0 评论
1158 浏览 1 评论
584浏览 6评论
482浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
467浏览 5评论
466浏览 4评论
441浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 15:23 , Processed in 0.834550 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号