完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我的代码非常简单,我使用我的 esp8266 作为服务器,它应该等待客户端连接从中读取数据并通过串口将其传输到 Arduino。
我还使用 mDNS 来检测网络内 ESP8266 的 IP 地址,代码如下: 代码:全选#include #include #include ..... WiFiServer server(80); void setup() { Serial.begin(115200); delay(10); if (!MDNS.begin("Device 1")) { // while (1) { delay(1000); } } MDNS.addService("SmartDimmerx2", "tcp", 80); WiFi.mode(WIFI_STA); delay(4000); // Check if WiFi is already connected and if not, if (WiFi.status() != WL_CONNECTED){ Serial.println("Disconnected"); ConnecStat_Toarduino = false; } else { Serial.println("Connected"); ConnecStat_Toarduino = true; } // Start the server server.begin(); } void loop() { MDNS.update(); if (WiFi.status() != WL_CONNECTED) { Serial.println("Disconnected"); ConnecStat_Toarduino = false; delay(100); } else if ((WiFi.status() == WL_CONNECTED) && (ConnecStat_Toarduino = false)) { Serial.println("Connected"); ConnecStat_Toarduino = true; } if (Serial.available() > 0) { String incomingChars = Serial.readStringUntil('n'); if(incomingChars.indexOf("WPS") != -1) { WPS_fnct(); } } // Check if a client has connected WiFiClient client = server.available(); if (!client) { time_cnx = millis(); return; } // Wait until the client sends some data while (!client.available()) { if ((millis() - time_cnx)>2000) {return;} delay(1); } // Read the first line of the request String req = client.readStringUntil('r'); client.flush(); client.stop(); // Match the request int val; if (req.indexOf("V=") != -1) { Serial.print(req.substring(2,5)); Serial.println(req.substring(7,11)); //Serial.println(char(req.substring(8,10).toInt())); } else { client.stop(); return; } } 我将我的手机应用程序用作客户端,代码运行良好,我扫描“_SmartDimmerx2._tcp.local”。手机检测到 esp 及其 IP 地址。 我能够将数据发送到 ESP 并且它正确接收它然后通过串行将它发送回 arduino, 问题是在我连续发送一些数据到 ESP 然后我再次尝试扫描 ESP 没有的 mDNS'不要回应。ESP 仍然没有响应 mDNS 扫描大约 30 秒/1 分钟,之后它再次变得可发现。 与此同时,当 mDNS 没有响应时,ESP 仍然能够从手机接收数据并通过串口毫无问题地发送数据,并显示正确的数据。所以esp没有被窃听。 当我从手机发送大量数据时,我感觉好像有什么东西阻止了 mDNS 服务。我的代码有错吗? 当 mDns 没有响应时,我尝试使用 Zeroconf android 应用程序进行扫描,直到大约一分钟后它才响应。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
545浏览 6评论
457浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
437浏览 5评论
441浏览 4评论
411浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 03:00 , Processed in 1.059887 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号