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

    文章

    149

    浏览量

    1675
  • NiobeU4
    +关注

    关注

    3

    文章

    31

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【润鸿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

    Texas Instruments AMP-PDK-EVM子开发套件数据手册

    Texas Instruments AMP-PDK-EVM子开发套件设计用于搭配AMP-PDK-EVM主板使用。子套件选项适用于不同封装
    的头像 发表于 07-09 14:15 ?241次阅读
    Texas Instruments <b class='flag-5'>AMP</b>-PDK-EVM子<b class='flag-5'>板</b><b class='flag-5'>开发</b>套件数据手册

    【润鸿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 ?616次阅读
    基于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 ?660次阅读
    搭载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 ?577次阅读
    基于RK处理<b class='flag-5'>器</b>,创龙TL3562-MiniEVM<b class='flag-5'>开发板</b><b class='flag-5'>试用</b>体验

    性能强悍!合众HZ-RK3568开发板试用体验

    月19日 ? 评测数量: 10块 ? 更多热点文章阅读 基于平头哥TH1520芯片,润鸿HH-SCDAYU800A开发板免费试用 RISC
    的头像 发表于 06-05 16:30 ?664次阅读
    性能强悍!合众HZ-RK3568<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

    【道生物联TKB-620开发板试用】开箱&amp;amp;开发板说明&amp;amp;未来试用计划

    开箱 各位少东家好,很荣幸获得道生物联TKB0620开发板试用机会,同时收到了两套开发板解决了互联互通的调试问题极具诚意,以下是开箱展示: 1、首先是外包装(两个好基友) 2、开箱后里面包含
    发表于 04-13 20:51

    能力再次提升! 迅为RK3588/RK3568开发板&amp;amp;amp;核心新增定制分区镜像

    能力再次提升! 迅为RK3588/RK3568开发板&amp;核心新增定制分区镜像
    的头像 发表于 11-06 15:11 ?1542次阅读
    能力再次提升! 迅为RK3588/RK3568<b class='flag-5'>开发板</b>&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;核心<b class='flag-5'>板</b>新增定制分区镜像

    迅为itop-3568开发板AMP双系统使用手册之烧写AMP镜像

    迅为itop-3568开发板AMP双系统使用手册之烧写AMP镜像
    的头像 发表于 11-04 15:00 ?1389次阅读
    迅为itop-3568<b class='flag-5'>开发板</b><b class='flag-5'>AMP</b>双系统使用手册之烧写<b class='flag-5'>AMP</b>镜像

    onsemi LV/MV MOSFET 产品介绍 &amp;amp;amp; 行业应用

    系列MOSFET介绍。4.onsemiLV/MVMOSFET市场&amp;应用。技术亮点onsemi最新一代T10系列MOSFET优势&amp;市场前景。学习收获期望了解onsemiSi
    的头像 发表于 10-13 08:06 ?995次阅读
    onsemi LV/MV MOSFET 产品介绍 &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; 行业应用