基于涂鸦智能和stm32的智能物联网温湿度计

演示视频:https://www.bilibili.com/video/BV1DA411K7TZ/
项目源码:https://github.com/lin-kangkang/temperature-and-humidity-senso-tuya-mcur
硬件开源地址:https://oshwhub.com/linkk/zhi-neng-wen-shi-du-zhuan-gan-qi

使用说明

  • 长按key0进行开关机
  • 开机后长按key1进入或退出设置界面
  • 短按key0和key1则进行页面切换
  • 在设置界面中,短按key1进行功能选择,短按key0确定执行对应的功能

硬件设计

先上图:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

注意到上面的时间了吗,这篇文章是我熬夜赶出来的,看来拖延症这毛病得改改了,hhh。

具体电路请参考项目原理图

  • 控制芯片采用的是STM32F103C8T6,原因是我对这块芯片最为熟悉。

  • 采用锂电池进行供电,并可通过typec接口进行充电。

  • 板载了CH340N芯片,可与电脑进行串口通信,方便调试。

  • 联网模组采用的是这次活动官方推荐的“WB3S-IPEX WiFi&BLE 双协议模组”,具有wifi和蓝牙功能。为避免模组的发热影响温度的测量,同时也为了避免模组的信号受到干扰,我将模组放到了另一块板子上,两个板子通过排针排母进行连接。涂鸦扩展板开源链接:https://lceda.cn/linkk/zhi-neng-wen-shi-du-chuan-gan-qi_-tu-ya-kuo-zhan-ban

  • 温湿度传感器采用的是常用的SHT30,同时在它周围进行了开槽处理,尽量降低板子温度对SHT30的干扰。不过实际使用中测量到的温度还是会比真实温度高一点。

  • 通过OLED屏进行显示。

  • 板载两个按键和三个LED。

  • 虽然搭载了这么多硬件,但板子的大小只有40mm X 40mm,非常小巧。

涂鸦 MCU SDK 的移植

1、首先在涂鸦工作台中下载所需要的 MCU SDK,如下图所示:

在这里插入图片描述

2、然后将里面所有的 .c 文件添加进过程,并添加头文件路径。

3、进入wifi.h,添加 #include “stm32f10x.h” (根据自己的芯片进行修改,我选用的芯片是stm32f103c8t6)

在这里插入图片描述

4、最后进入protocol.h中,根据自己的需要进行配置,再根据编译错误提示进行修改即可。

要修改的地方有如下几个:

4.1、在uart_transmit_output函数中调用串口单字节发送函数,注意是单字节发送!!!

在这里插入图片描述

4.2、在串口接收中断中调用uart_receive_input(value),参数value是中断接收到的数据。记得先打开串口中断,程序运行过程中也尽量不要关闭所用到的串口中断。

在这里插入图片描述

4.3、进入函数my_strcpy(char *dest, const char *src) ,将里面指针p的定义放到函数最前面。

在这里插入图片描述

4.4、在MCU主函数while循环中调用函数:wifi_uart_service()

4.5、在main函数中添加wifi_protocol_init()完成wifi协议初始化

4.6、根据自己的需求处理自动化生成数据上报函数all_data_update()

4.7、其他报错直接注释掉引起报错的那行即可

最后修改结果如下,0 Error, 0 Warning,哈哈哈

在这里插入图片描述

踩坑记录

1、如果需要用到获取天气的功能,一定要吧串口数据处理缓存区大小改大点,不然接收不到处理后的数据。

在这里插入图片描述

2、上面移植过程中已经提到过的,在uart_transmit_output函数中调用的串口发送函数,发送的数据一定要是单字节的。

3、获取天气数据时一定要看官方参考文档,确认数据的类型,不要只凭自己的感觉。比如风速是字符串类型的,我就在这卡了大半天,服了自己了。

在这里插入图片描述

  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值