当前位置:网站首页 > R语言数据分析 > 正文

esp8266获取天气教程(arduino esp8266天气)



使用ESP8266模块来获取网络数据(天气,时间等),还是挺简单的。

一步一步来。

1.初始化串口与相关IO

使得MCU可正常使用串口的发送与接收,以及一些IO控制ESP8266的使能端与电源。

2检测模块

通电后等待几秒钟,串口发送"AT ",检测有回应"OK"则代表模块在线使用。

3.连接路由热点

发送"AT+CWJAP? "可以获取当前连接的路由,如果没有连接正确的路由,则使用"AT+CWLAP "命令获取当前路由列表。

使用"AT+CWJAP="ssid_str","password_str" "连接相关路由热点,ssid_str为热点名,password_str为密码。注意其中的转义符号。

4.连接网络天气服务器

这个可以自己百度搜索,我使用的api.yytianqi.com:80,还有api.k780.com:88。冒号前是服务器,冒号后是端口。

以yytianqi举例,可以上他们的网站查看API说明。使用前需要注册一个账号。(k780有公共测试的秘钥不需要注册也能使用)

网站:http://www.yytianqi.com/api.html

发送"AT+CIPSTART="TCP","api.yytianqi.com",80 "使用TCP方式连接服务器,然后就可以与之通信。这时可以使用AT命令进入透传模式,不过我不建议这样,因为推出透传模式有点坑。所以推荐直接使用发送命令:"AT+CIPSEND=num ",num是实际需要发送字符串的字节数。继续,使用GET命令请求数据"GET http://api.yytianqi.com/observe?city=CH&key=xxxx ",xxxx是自己的秘钥,注册后网站提供,"city="后面是城市编号。

这时服务器会返回相关的数据,数据是JSON格式。前面我写过冠以JSON在KEIL上的移植使用。这里正好用上了。通常服务器返回数据后会自动关闭TCP连接。不过为了保险最好发送"AT+CIPCLOSE "关闭与服务器的连接。

5.数据解析

理论上,JSON数据也就是特定格式的字符串,可以自己对字符串进行解析而不需要移植JSON。开始我也试过,比如使用strstr()函数寻找特定字符串,但最终发现不稳健而且麻烦。原因是服务器返回的数据模式不是每次都固定不变,比如某个内容,有时使用字符型,有时直接数字,打个比方也即是12和"12"的区别,甚至有时是浮点型有时又会变成整型数据。而且各个内容顺序不保证一样。所以还是建议移植JSON。

数据内容会有些UTF格式汉字,我使用的串口屏只支持GBK汉字,只是测试所以没有做UTF到GBK的转换,直接使用函数映射相关中文内容。如下:

6.实际效果

esp8266获取心知天气数据并解析 esp8266 天气_字符串

esp8266获取心知天气数据并解析 esp8266 天气_数据_02

esp8266获取心知天气数据并解析 esp8266 天气_json_03

esp8266获取心知天气数据并解析 esp8266 天气_字符串_04

到此这篇esp8266获取天气教程(arduino esp8266天气)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 查看docker0(查看Docker镜像列表使用的命令( ))2025-04-04 20:18:09
  • 查看docker版本号命令(查看docker-compose版本)2025-04-04 20:18:09
  • yuv rgb哪个好(yuv比rgb好)2025-04-04 20:18:09
  • gmscore官方下载(gmscore服务下载官网)2025-04-04 20:18:09
  • .hprof文件可以删除吗(hprof文件占用太多内存)2025-04-04 20:18:09
  • pass平台厂商(passport平台)2025-04-04 20:18:09
  • shoulderpress器械使用(precor器械使用方法)2025-04-04 20:18:09
  • transformer复现(shiro复现)2025-04-04 20:18:09
  • spark笔试题(spark面试题目)2025-04-04 20:18:09
  • hpl是什么文件(hprof是什么文件)2025-04-04 20:18:09
  • 全屏图片