完善资料让更多小伙伴认识你,还能领取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响应,看看是否在获取数据时会出现相同的问题。 希望这些建议可以帮助您解决您的问题。如果您在执行上述步骤时遇到任何困难,请告诉我。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
945 浏览 0 评论
1672 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1330 浏览 1 评论
1233 浏览 1 评论
5021 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1254浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
927浏览 3评论
2340浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2528浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1052浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 20:24 , Processed in 1.104718 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1506
