完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在使用 ESP-12 来模拟 Wifi ELM327/OBDII 模块……将 OBD 数据(在这种情况下来自电位计的“RPM”)提供给我手机上连接的应用程序(例如扭矩)。我可以将手机连接到 8266 ELMSim。我也可以打开应用程序并选择我的 ELMSim 作为 OBDII 模块。问题是当应用程序发送诸如“AT Z”之类的命令时。我无法“接收”命令以响应它。非常感谢任何帮助。
#include #include const char *ssid = "ELMSim"; WiFiServer服务器(35000); IP 地址 local_IP(192, 168, 0, 10); //ESP静态ip IP地址网关(192, 168, 0, 10); //您的WiFi路由器(网关)的IP地址 IP 地址子网(255、255、255、0);//子网掩码 //Pot 调整值 int RPMsensorPin = 0; int RPMsensorValue = 0; int RPMtxValue = 0; void setup() { Serial.begin(38400); 服务器.开始(); 延迟(10); //静态IP地址配置 WiFi.softAP(ssid); WiFi.softAPConfig(local_IP,网关,子网); while (WiFi.status() != WL_CONNECTED){ //Serial.println("ELM Sim 可用"); 延迟(500); } } void loop() { //读取传感器的值 RPMsensorValue = analogRead(RPMsensorPin); 如果 (RPMsensorValue <40){ RPMsensorValue=40; } 否则 { RPMsensorValue = analogRead(RPMsensorPin); } RPMtxValue = RPMsensorValue/10; WiFiClient client = server.available(); // 等待客户端(OBD Phone App)连接 if (!client){ Serial.println("\n[Client connected]"); } while (client.connected()) // 等到客户端发送一些数据 { if (client.available()) { // 读取 App 请求的第一行 String RHrequest = client.readStringUntil('\r') ; Serial.println(RHrequest); if(!RHrequest.startsWith("AT")) { server.println("OK"); } } } } |
|
相关推荐
1个回答
|
|
我很抱歉,但是你提供的信息有些不清晰,无法给出最准确的解决方案。以下是一些可能导致你的8266 ELM327模拟器无法从客户端接收的问题和解决方法:
1. 代码问题:请更详细地分享你的代码,包括函数和库。有可能有一些代码问题,导致你的设备无法从客户端接收。 2. 连接问题:请确保你的设备已正确连接到你的手机和应用程序。你可以尝试连接其他设备以确定是否是连接问题。 3. 端口问题:确定你在应用程序中使用的端口号与服务器端口号相同。 4. 防火墙问题:确认你的电脑/路由器防火墙未阻止8266与应用程序的通信。 5. 应用程序问题:尝试使用其他的OBDII应用程序或者尝试使用命令行工具测试连接。 希望这些提示能够有所帮助,祝你好运! |
|
|
|
只有小组成员才能发言,加入小组>>
545浏览 6评论
457浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
437浏览 5评论
441浏览 4评论
411浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 22:33 , Processed in 0.757379 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号