完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如标题所述,我没有从 HTTP 请求中获得预期的结果。我正在使用连接到我的 Arduino UNO 的 ESP 01 模块。作为一个测试项目,我使用了一个 API,该 API 应该可以提供感染 Covid 19 的数量。但是,过滤后的结果和原始结果都给我随机字符,之后似乎是损坏的消息。我真的很感激我能得到的任何好的建议。
我认为我的设置没有任何问题,因为我能够将数据发送到 thingspeak 频道。这是相同的代码和设置,适用于希望也能够获取数据。 如果您需要更多信息,请告诉我。 串行日志: 代码:全选#include #define RX 2 #define TX 3 String AP = "ap"; String PASS = "pw"; String HOST = "api.thingspeak.com"; String PORT = "80"; int countTrueCommand; int counttimeCommand; boolean found = false; int buttonState = 0; int valSensor = 1; SoftwareSerial esp8266(RX,TX); void setup() { pinMode(7, INPUT); Serial.begin(9600); esp8266.begin(9600); sendCommand("AT",5,"OK"); sendCommand("AT+CWMODE=3",5,"OK"); sendCommand("AT+CWJAP=\""+ AP +"\",\""+ PASS +"\"",20,"OK"); } void loop() { while (esp8266.available() > 0) { Serial.println(esp8266.read()); } buttonState = digitalRead(7); if (buttonState == HIGH){ Send(); } } void Send() { String res; String subStr; int index; String getData = "GET /apps/thinghttp/send_request?api_key=HPEZ840TM16SIVAU HTTP/1.1"; sendCommand("AT+CIPMUX=1",5,"OK"); sendCommand("AT+CIPSTART=0,\"TCP\",\""+ HOST +"\","+ PORT,15,"OK"); sendCommand("AT+CIPSEND=0," +String(getData.length()+4),4,">"); esp8266.println(getData); esp8266.println("Host: api.thingspeak.com"); esp8266.println("Connection: keep-alive"); esp8266.println(); delay(1500);countTrueCommand++; res = esp8266.readString(); index = res.indexOf("formatted"); subStr = res.substring(index+12, index+28); Serial.println("Raw Result:"+res); //Serial.println("Filtered Result:"+subStr); sendCommand("AT+CIPCLOSE=0",5,"OK"); } void sendCommand(String command, int maxTime, char readReplay[]) { Serial.print(countTrueCommand); Serial.print(". at command => "); Serial.print(command); Serial.print(" "); while(countTimeCommand < (maxTime*1)) { esp8266.println(command); if(esp8266.find(readReplay)) { found = true; break; } countTimeCommand++; } if(found == true) { Serial.println(" => SUCCESS"); countTrueCommand++; countTimeCommand = 0; } if(found == false) { Serial.println("Fail"); countTrueCommand = 0; countTimeCommand = 0; } found = false; } |
|
相关推荐
1个回答
|
|
从您提供的信息中,很难确定问题的根本原因。但是,我们可以尝试做一些总体的建议来解决这个问题。
1. 检查API链接是否正确。 确保您正在使用正确的API链接,并且您可以从浏览器或其他工具中获取正确的响应。您可以使用 Postman 等工具将 HTTP 请求发送到 API,并检查响应是否正确。 2. 检查您的网络连接。 确保您的网络连接是可靠的,并且您的 ESP 01 模块可以访问该API。您可以尝试在另一台设备上访问相同的API链接,并检查是否有任何网络问题。 3. 尝试使用其他API。 如果可能的话尝试使用其他API,看看是否有任何改进。也可以检查其他类似的项目,看看他们是如何获取感染 Covid 19 的数量的。 4. 检查您的代码是否存在错误。 确保您的代码没有任何语法或逻辑错误,并且您已正确设置了 ESP 01 模块和 Arduino UNO。您可以查看您的串行日志和调试信息,看看是否有任何错误消息。 5. 尝试使用其他工具来获取API响应。 您可以尝试使用其他工具(如 Python、curl)用相同的方式来获取相同的API响应,看看是否在获取数据时会出现相同的问题。 希望这些建议可以帮助您解决您的问题。如果您在执行上述步骤时遇到任何困难,请告诉我。 |
|
|
|
只有小组成员才能发言,加入小组>>
1106 浏览 1 评论
574浏览 6评论
477浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
460浏览 5评论
461浏览 4评论
435浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 10:30 , Processed in 1.120301 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191