我正在使用 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.readStringUn
til('\r') ;
Serial.println(RHrequest);
if(!RHrequest.startsWith("AT")) {
server.println("OK");
}
} }
}