完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如果我今天在这里发帖,那是因为我没有办法解决我在项目中遇到的问题。基本上,我正在构建一个网络服务器,它从 arduino 的各种传感器流式传输实时数据,并将其显示在实时图形中。
我的开发板是一个内置 ESP8266 的 RobotDyn Arduino Mega R3,如下所示: 为了让您了解它是如何工作的: 几周前我开始了这个项目,有一段时间一切正常。我能够获取数据并实时绘制它,没有任何问题(尽管页面不时出现小幅冻结)。但几天前,ESP 开始出现异常行为。网页需要越来越多的时间来加载,直到它在某个时候甚至不再加载。有时我什至无法连接到模块。 我不明白的是出现这个问题的原因。一切正常,但在我不更改 ESP 或 ATmega 程序的情况下,它突然开始不稳定。我只是在实际的网页上工作,到处更改一些颜色。 这是我试图解决问题但没有帮助的方法: 现在我只是没有解决这个问题的想法。我没有在任何地方打印错误消息,所以我什至不知道问题可能来自哪里,但我怀疑它来自 ESP 模块(另一个是 arduino,并且按预期工作,这里没有问题)。 当然,这是 ESP8266 内部加载的程序: 代码:全选#include #include #include #include #include const byte numChars = 150; // Maximum message length char json[numChars]; // Recieved data container static byte ndx = 0; // Array position const char startMarker = '{'; // Start of data marker const char endMarker = '}'; // End of data marker boolean messageReady = false; boolean recvInProgress = false; const char* ssid = "TEST_Stand"; // Arduino access point SSID const char* password = "testStand_2020"; // Arduino access point password IPAddress staticIP(192,168,4,1); // Server IP address IPAddress gateway(192,168,4,1); // Server gateway address IPAddress subnet(255,255,255,0); // Server subnet address WiFiClient client; // Init Client ESP8266WebServer server(80); // Init Server on default port 80 void setup(){ Serial.begin(115200); // Begin Serial communication delay(10); // Wait if(!SPIFFS.begin()){ // Initialize SPIFFS Serial.println("An Error has occurred while mounting SPIFFS"); return; } WiFi.softAP(ssid, password); // Start the access point WiFi.softAPConfig(staticIP, gateway, subnet); // Config the access point delay(100); // Wait Serial.print("Access Point \""); Serial.print(ssid); Serial.println("\" started ..."); Serial.print("IP address:\t"); Serial.println(WiFi.softAPIP()); server.onNotFound([]() { // If the client requests any URI if (!handleFileRead(server.uri())) // send it if it exists server.send(404, "text/plain", "404: Not Found"); // otherwise, respond with a 404 (Not Found) error }); server.on("/data",getData); // Get the incomming sensor data server.begin(); // Server start } void loop(){ server.handleClient(); // Handle client } void getData() { // Read the Serial and get data while (Serial.available() > 0 && messageReady == false) { // Read the Atmega2560 response over serial com char c = Serial.read(); if (recvInProgress == true){ if (c != endMarker) { json[ndx] = c; ndx++; if (ndx >= numChars) ndx = numChars - 1; } else { json[ndx] = '}'; // Terminate the json json[ndx+1] = '\0'; // Terminate the string ndx = 0; recvInProgress = false; messageReady = true; } } else if (c == startMarker) { json[ndx] = c; ndx++; recvInProgress = true; } } if (messageReady == true) { server.send(200, "text/plain", json); // Send data to the server as plain text messageReady = false; memset(json, 0, sizeof(json)); // Clear the buffer for next transmission } } String getContentType(String filename) { // convert the file extension to the MIME type if (filename.endsWith(".html")) return "text/html"; else if(filename.endsWith(".png")) return "image/png"; else if (filename.endsWith(".css")) return "text/css"; else if (filename.endsWith(".js")) return "text/javascript"; else if (filename.endsWith(".ttf")) return "font/ttf"; return "text/plain"; } bool handleFileRead(String path) { // send the right file to the client (if it exists) if (path.endsWith("/")) path += "opus.html"; // If a folder is requested, send the index file (OPUS.html) String contentType = getContentType(path); // Get the MIME type if (SPIFFS.exists(path)) { // If the file exists File file = SPIFFS.open(path, "r"); // Open it int siz = file.size(); server.sendHeader("Content-Length", (String)(siz)); server.sendHeader("Cache-Control", "max-age=2628000, public"); // cache for 30 days size_t sent = server.streamFile(file, contentType); // And send it to the client file.close(); // Then close the file again return true; } return false; // If the file doesn't exist, return false } |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1123 浏览 1 评论
574浏览 6评论
477浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
461浏览 5评论
462浏览 4评论
435浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 09:39 , Processed in 0.669909 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号