1038|3

65

帖子

3

TA的资源

一粒金砂(中级)

楼主
 

【DigiKey“智造万物,快乐不停”创意大赛】墨水屏天气看板 [复制链接]

  本帖最后由 xusiwei1236 于 2024-1-19 14:55 编辑

【DigiKey“智造万物,快乐不停”创意大赛】墨水屏天气看板

一、作品简介

(设计名称、作品照片、项目用到的板卡、芯片、模块等介绍,作品功能介绍等)

作品名称: 墨水屏天气看板

所用板卡: M5Paper

作品最终效果图:

 

 

 

 

1.1 作品功能简介

实现的功能:

  • 显示当前所在环境的温度、湿度

  • 显示当前所在城市的实时天气

  • 显示当前所在城市的最近四天天气

  • 硬件RTC计时

1.2 所用板卡简介

M5Paper板卡技术规格参数:

  • 主控芯片: ESP32

  • 内置存储:16M Flash,8M PSRAM

  • 显示屏: 4.7寸 960x540分辨率 (驱动IC:IT8951E)

  • 触摸屏: 电容触摸(驱动IC: GT911)

  • 传感器: SHT30 数字温湿度传感器(I2C)

  • RTC芯片: BM8563 上海贝岭实时时钟/日历芯片

  • EEPROM: FM24C02 2Kbit(256字节)

  • 按键:多功能按键(支持上下拨动、按下)

  • 供电:1150mAh锂电池、USB供电

  • 扩展接口:TF卡槽、HY2.0-4P

M5Stack出品的板子,一贯非常精致:

 

 

 

 

板子背面把各种资源和主控芯片的连接都标记的非常清楚了。

二、系统框图

(设计思路、系统软硬件介绍及实现框图,以图文结合的展示)

项目整体框图如下:

 

 

本项目主要实现了六大功能:

  • 环境监测功能

  • 时间日期功能

  • 天气信息功能

  • 自动联网功能

  • 自动定位功能

  • 界面显示功能

软件代码主要分为如下几个类:

  • AppMainController 应用代码,MVC的控制器

  • AppMainView 应用代码,MVC的视图,界面绘制逻辑

  • AppConfigStore应用代码,配置文件解析;

  • HalRtcDevice 设备抽象,封装了RTC操作;

  • HalSensorDevice 设备抽象,封装了传感器操作;

  • AmapLocationService 定位服务,封装了高德定位服务和ipify.org公网IP地址查询;

  • AmapWeatherService 天气服务,封装了高德实时天气和预报天气服务。

整体使用了MVC设计模式,AppMainController 为整体入口,管理其余的各种类。

 

三、各部分功能说明

(各部分实现的功能说明及讲解,以图文结合的展示)

各部分功能,具体实现方式如下:

  • 环境监测功能

    • 硬件基于开发板上的SHT30数字温湿度传感器,软件基于M5EPD 软件包里面的SHT30类库。

  • 时间日期功能

    • 硬件基于开发板上的BM8563 RTC芯片,软件基于M5EPD 软件包里面的BM8563类库。

  • 天气信息功能

    • 硬件基于ESP32的WiFi联网能力,软件基于Arduino的HTTPClient库、ArduinoJson库,实现了使用HTTPClient库向高德云服务发送请求、接收响应,使用ArduinoJson库解析响应数据。

  • 自动联网功能

    • 基于ESP32主控的WiFi联网能力、SD卡槽、SD卡,实现了解析SD卡上的json配置文件,使用其中配置的WiFi SSID、密码连接热点。

  • 自动定位功能

    • 基于ipify.org的公网IP查询服务,实现查询设备的公网IP;基于高德IP地址定位服务,实现IP定位。

  • 界面显示功能

    • 基于开发板上的墨水屏,实现界面显示,基于M5EPD的M5EPD_Canvas实现界面绘制、字体绘制等功能。

最终使用到的Arduino库如下:

 

 

 

四、作品源码

(可下载的项目源码及说明,源码请上传到EEWorld下载中心,下载链接粘贴到作品文档和作品提交帖中)

下载链接: https://download.eeworld.com.cn/detail/xusiwei1236/630820

源码文件简介:

文件名 功能
eink_weather_board.ino Arduino脚手架(Sketch)程序,提供init和loop函数的实现
app_config_store[.h/.cpp] AppConfigStore类,实现了基于json文件的配置项的存放和读取;
app_main_controller[.h/.cpp] AppMainController类,MVC模式中的控制器,用于管理其他几个类对象,以及控制视图绘制;
app_main_model.h 界面所需的基准数据类型,MVC模式中所谓的“模型(Model)”类型定义
app_main_view[.h/.cpp] AppMainView类,实现了界面绘制逻辑,MVC模式中的“视图(View)”
hal_rtc_device[.h/.cpp] HalRtcDevice类,实现了RTC芯片操作的封装;
hal_sensor_device[.h/.cpp] HalSensorDevice类,实现了SHT30温湿度传感器的封装;
webapi_amap_base[.h/.cpp] 高德云服务基础数据类型定义;
webapi_amap_location[.h/.cpp] AmapLocationService类,高德定位云服务和ipify.org公网IP云服务的封装;
webapi_amap_weather[.h/.cpp] AmapWeatherService类,高德天气查询云服务的封装;
webapi_http_utils[.h/.cpp] 实现HTTP请求工具函数。
compile.sh 源码编译脚本
download.sh 固件下载脚本

eink_weather_board.zip (18.54 KB, 下载次数: 0)

五、作品功能演示视频

(视频简介+链接,视频链接:可上传到EEWorld大学堂,观看链接粘贴到作品文档和作品提交帖中,也可直接上传到作品帖中)

视频链接:【DigiKey“智造万物,快乐不停”创意大赛】墨水屏天气看板 - EEWORLD大学堂

 

六、项目总结

本次项目的硬件上,使用了M5Stack出品的M5Paper开发板。这款开发板制作非常精致,有外壳、按键、说明书,基本上是一个准产品级别的了。同时,板子内部也集成了非常多的功能,得益于此,本次作品硬件上完全无需额外扩展即可完成功能(M5Paper也提供了两个扩展接口)。

本次项目的软件上,初期使用Arduino IDE作为开发环境,用的是2.x版本。后来,因为字节更习惯于使用VSCode,切换成VSCode + Arduino CLI的方式进行开发了。总体下来,有两点感受非常深刻。

一方面,Arduino CLI编译、烧录 ESP32非常方便,因此使用 VSCode + Arduino CLI完全可行(可能有网友知道VSCode有Arduino插件,但是插件不支持Arduino 2.x)。

另外一方面,使用C++开发嵌入式软件,开发效率也非常高。除了编译速度慢一点之外,开发效率可以媲美Python了;但同时具有C的执行效率,开发效率又比纯C高很多。总体而言,使用C++开发嵌入式软件,能够完美兼顾在执行效率和开发效率。如果非要说C++开发的缺点的话,就是如果不太熟悉的话,开发起来会比较费头发。

 

项目Word文档:

digikey_iot_contest_2023_xusiwei.doc (4.71 MB, 下载次数: 4)

 

七、参考链接

  1. M5Paper文档首页: https://docs.m5stack.com/en/core/m5paper_v1.1

  2. M5Stack系列Arduino开发环境搭建: https://docs.m5stack.com/en/quick_start/arduino

  3. M5Paper快速入门指南(hello-world): https://docs.m5stack.com/en/quick_start/m5paper/arduino

  4. ArduinoJson库: https://arduinojson.org/

  5. 高德开放平台-IP定位: https://lbs.amap.com/api/webservice/guide/api/ipconfig

  6. 高德开放平台-天气查询: https://lbs.amap.com/api/webservice/guide/api/weatherinfo

     

最新回复

徐老师一出手就知道有没有!!! 这个做的太棒了,直接打样出产品,或者众筹吧。   详情 回复 发表于 2024-1-19 17:55
点赞 关注
 
 

回复
举报

7244

帖子

2

TA的资源

版主

沙发
 

这墨水屏感觉还有更多的可玩性。

 
 
 

回复

330

帖子

5

TA的资源

纯净的硅(中级)

板凳
 

徐老师一出手就知道有没有!!!

这个做的太棒了,直接打样出产品,或者众筹吧。

 
 
 

回复

65

帖子

3

TA的资源

一粒金砂(中级)

4
 
作品全部源码已经开源:
链接已隐藏,如需查看请登录或者注册
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表