0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【开鸿智谷NiobeU4开发板免费试用体验】简易桌面天气预报器的设计&实现

开发板试用精选 来源:开发板试用 作者:电子发烧友 2022-10-14 11:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文来源电子发烧友社区,作者:大菠萝Alpha, 帖子地址:https://bbs.elecfans.com/jishu_2308832_1_1.html


一、桌面天气预报器架构

(一)手撕HTTP request

桌面天气预报器考虑的比较简单,虽然LWIP能支持,但是HTTP协议栈尚未实现,之前考虑直接在OpenHarmony手写一个HTTP GET request,然后NiobeU4开发板解析几个天气的关键词,实现显示即可,至于HTTPS与HTTP的选择,当然是越简单越好了,找了个HTTP的天气网站(http://www.yytianqi.com/),注册个账号,使用API即可,这个API的格式类似这样:

http://api.yytianqi.com/接口名称?city=城市ID&key=用户key

初步设计就是在NiobeU4开发板端侧构造HTTP GET request消息并发出,然后解析其response,再在LCD侧显示,基本框架如下:

NBE1.png

#define SERVER_IP	"123.57.54.168"
#define SERVER_PORT 8080

        sock = socket(AF_INET, SOCK_STREAM, 0);
        if (sock < 0) {
            printf("Socket errorn");
            osDelay(OD_DELAY_100);
            continue;
        }
        memset_s(&(client_addr), sizeof(client_addr), 0, sizeof(client_addr));
        client_addr.sin_family = AF_INET;
        client_addr.sin_port = htons(SERVER_PORT);
        client_addr.sin_addr.s_addr = inet_addr(SERVER_IP);
        if (connect(sock, (struct sockaddr *)&client_addr, sizeof(struct sockaddr)) == -1) {
            closesocket(sock);
            osDelay(OD_DELAY_1000);
            continue;
        }
    //send HTTP GET msg
    char cmd[256];
	bzero(cmd, 256);
    strcpy(cmd,"GET /observe?city=CH210401&key=XXXXXXXXXXXXXXXX HTTP/1.1rn");
	strcat(cmd,"Host: 123.57.54.168rnrn");
	
	write(sock, cmd, strlen(cmd));

这个HTTP GET发出去后,服务端认不出,找了个工具模拟了下,发现还是相同的问题,貌似服务器端对rn的解析不是换行,捣鼓了很久还是不行,于是放弃。

NBE3.jpg

(二)曲线救国

既然直接手撕HTTP GET request有问题,那还是换条路吧。
设想是有个server来做网关,用于搭建NiobeU4开发板与天气网站之间的桥梁,负责获取天气信息,并通过TCP链接转发到NiobeU4开发板端侧,具体如下:
NBE2.png

二、实现&展示

方案确定下来后具体实现就很简单了,网关处起个任务到www.yytianqi.com获取天气信息,然后发给NiobeU4开发板,NiobeU4开发板端侧收到信息后做天气信息字符串匹配,根据天气内容在LCD上显示相关信息。
NBE4.png

直接拷贝至系统,reset板子。
Gateway侧HTTP GET得到的信息如下:

{"code":1,"msg":"Sucess","counts":29,"data":{"cityId":"CH210401","cityName":"u5b81u6ce2","lastUpdate":"2022-10-07 23:16:37","tq":"u9634","numtq":"02","qw":"15","numfl":"0","fl":"u5faeu98ce","fx":"u897fu5357u98ce","numfx":"5","sd":"92"}}

NiobeU4开发板端的显示如下,多云天气:
NBE5.jpg

三、附加电池

刚好手头有块3.7V的锂电池,问了技术直接接上了,注意正负极即可,这块电池年份有点久了,基本上续航在3-5h。细心的可以看到视频中的电源灯是没有亮的。
NBE6.jpg

##感谢阅读##


附上开发板体验视频,详见作者原帖子文章。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开鸿智谷
    +关注

    关注

    2

    文章

    190

    浏览量

    1944
  • NiobeU4
    +关注

    关注

    3

    文章

    31

    浏览量

    771
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    免费试用|睿擎派开发板等你来测:提交高质量报告,开发板免费

    正在为下一代工业控制选型?想在实际硬件上验证AMP混合部署、EtherCAT实时性?免费申请一块睿擎派,30天深度测试,只要提交高质量报告,开发板就归你。睿擎工业平台现面向有真实项目
    的头像 发表于 04-17 11:56 118次阅读
    <b class='flag-5'>免费</b><b class='flag-5'>试用</b>|睿擎派<b class='flag-5'>开发板</b>等你来测:提交高质量报告,<b class='flag-5'>开发板</b><b class='flag-5'>免费</b>送

    niobeu4 esp32 开发板无法连接有密码的wifi

    (1) niobeu4 开发板,系统正常运行,串口正常输出。 (2)测试 wifi 功能,按照 openharmony wifi sta 功能 api 开发 wifi 程序,结果发现只能连接上没有
    发表于 01-23 10:36

    【作品合集】润鸿HH-SCDAYU800A开发板测评

    HH-SCDAYU800A开发板试用体验】第2個桌面簡單的程序天气预报 【润
    发表于 09-19 14:09

    【作品合集】汇思博SEEK100开发板测评

    及组件介绍 【汇思博SEEK100开发板试用体验】04 网络连接及获取和风天气数据 【汇思博SEEK100开发板试用体验】05
    发表于 09-15 10:24

    【RA4E2开发板评测】——7.使用AT指令获取城市天气预报

    使用ESP8266连接RA4E2开发板后,可以通过ESP8266连接WIFI网络,然后通过AT指令访问api.seniverse.com心知天气网站获取城市天气预报。 板子连接如下图所
    发表于 09-03 13:10

    ​​FourCastNet 3实现快速精准的大型集合天气预报

    FourCastNet 3(FCN3)是 NVIDIA Earth-2 中最新的 AI 全球天气预报系统。FCN3 首次完美地结合了概率预测能力、计算效率、频谱保真度、集合校准和次季节
    的头像 发表于 08-30 15:49 2460次阅读

    【润鸿HH-SCDAYU800A开发板试用体验】第2個桌面簡單的程序改显示为2页面

    | 接上文 【润鸿HH-SCDAYU800A开发板试用体验】第2個桌面簡單的程序天气
    发表于 07-30 10:41

    【润鸿HH-SCDAYU800A开发板试用体验】第2個桌面簡單的程序天气预报

    【润鸿HH-SCDAYU800A开发板试用体验】第一個桌面簡單的程序 目的 一个基于OpenHarmony系统项目旨在通过调用互联网调用相
    发表于 07-30 06:42

    【润鸿HH-SCDAYU800A开发板试用体验】润鸿HH-SCDAYU800A开发板(四)

    (六)基于润鸿HH-SCDAYU800A开发板开发的在线温湿度互动屏 项目目的 本项目旨在通过调用互联网调用相关天气接口和显示环境温湿度
    发表于 07-17 15:20

    【润鸿HH-SCDAYU800A开发板试用体验】润鸿HH-SCDAYU800A开发板(二)

    鸿HH-SCDAYU800A开发板通过USB Type-C接入终端后,按住BOOT不松,再按RESET键,先松开RESET键,再松开BOOT键。 2.2.打开“设备管理”,右键“
    发表于 07-02 09:30

    基于RK3576处理,米尔RK3576开发板免费试用

    年7月19日   评测数量: 3块   更多热点文章阅读 基于平头哥TH1520芯片,润鸿HH-SCDAYU800A开发板免费试用 RIS
    的头像 发表于 06-09 15:00 1362次阅读
    基于RK3576处理<b class='flag-5'>器</b>,米尔RK3576<b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>

    搭载OpenHarmony操作系统,视美泰SC-3568HA开发板免费试用

    : 10块   更多热点文章阅读 基于平头哥TH1520芯片,润鸿HH-SCDAYU800A开发板免费试用 RISC-V
    的头像 发表于 06-05 16:45 1457次阅读
    搭载OpenHarmony操作系统,视美泰SC-3568HA<b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>

    基于RK处理,创龙TL3562-MiniEVM开发板试用体验

    数量: 10块   更多热点文章阅读 基于平头哥TH1520芯片,润鸿HH-SCDAYU800A开发板免费试用 RISC-V
    的头像 发表于 06-05 16:31 1340次阅读
    基于RK处理<b class='flag-5'>器</b>,创龙TL3562-MiniEVM<b class='flag-5'>开发板</b><b class='flag-5'>试用</b>体验

    【RA-Eco-RA4M2开发板评测】RA4M2 + ESP8266获取城市天气预报(二)使用串口助手获取天气+破解任意类型AT指令

    https://bbs.elecfans.com/jishu_2487602_1_1.html 前一篇帖子中我已经实现了完整的RA4M2配合ESP8266获取城市天气预报信息数据,可以完美结帖了
    发表于 05-04 10:07

    【RA-Eco-RA4M2开发板评测】RA4M2 + ESP8266获取城市天气预报(一)

    很高兴收到瑞萨电子的RA4M2开发板,有幸成为了幸运观众,本期就来使用瑞萨的RA4M2开发板通过串口连接WIFI模块ESP8266,获取天气预报
    发表于 05-02 14:28