学校组织了为期两周的实训,疫情原因只能线上,学习的是stm32,本来利用32制作智能家居并上传阿里云网上的教程很多的,但是仿真并上云暂未发现,这也是我本次实训感觉学到的东西。
实现的东西其实很简单,就是温湿度,光照传感器,然后测得的数据在LCD屏显示并实时上传至阿里云。
接下来我将简要介绍一下本次实验的操作流程,一些个人认为没必要再解释的操作就不写了,就当做一次学习记录。
一、proteus电路图

二、仿真效果图


三、LCD显示文字与图标
仿真用到是ILI9341——LCD,分辨率为240x320,采用SPI接口协议,颜色格式为RGB256—16位真彩色,我们利用封装好的函数来在LCD显示文字与图标。这里要要用到两个取模软件,分别是汉字取模与图片取模。
首先需要将要显示的文字取模,取模得到的结果存放在工程里的font.h文件里。
1.汉字取模
打开文字取模软件并设置选项

复制取模的16进制代码,放在font.h文件里的const typFNT_GB16 tfont16[]里,和前面的格式保持一致,这里要注意const typFNT_GB16 tfont16[]里的文字取模只能出现一次,不能重复取模。


然后使用函数

x:在LCD屏上的x坐标
y:在LCD屏上的y坐标
fc:字体颜色
bc:背景颜色
str:提前在font.h里已经取模了的你想输出的文字
size:字高、字宽,取模是取得是16X16,这里就填16
mode:0-no overlying,1-overlying,0或1没有太大差别

Show_Str(u16 x, u16 y, u16 fc, u16 bc, u8 *str, u8 size, u8 mode)
2.图片取模
因为本次仿真使用的是stm32f103r6,其闪存只有32k,所以在对图片取模时就要求图片的分辨率不能太高。
首先选择一张图片,用电脑的画图打开,然后更改图片的分辨率为50x70,如果图片为非jpg格式需要另存为jpg格式。

打开图片取模软件,打开准备好的图片,并设置好参数,保存为.c文件。
如图,生成了一个数组,数组长度为7000,因为芯片的闪存较小,这里我多次验证最大应该不能超过7200。

将生成的.c文件加入到我们的过程中,在main.c里需要外部声明才能调用。

extern const unsigned char gImage_girl[7000];

利用函数

参数:x0 开始位置,y0开始位置  ,high高度,width 宽度 ,bmp 图片数据数组
Paint_Bmp(int x0, int y0, int width, int high, const unsigned char bmp[])

输出图片。
四、仿真连接阿里云配置
在我们的仿真图里,我们并没有用到实际的4g/5g模块或者WIFI模块,在仿真图里也不容易添加,所以我们添加了仿真串口COMPIM,其连接的是stm32的串口二,进行我们数据的转发。模拟上云的原理是,当我们的温湿度还有光照传感器得到数据后一方面会发送到虚拟串口显示,一方面我们也可以利用通讯转发软件将数据通过串口2发送到通讯转发软件,再由通讯转发软件发送到阿里云,利用我们电脑的网络来实现与阿里云的连接。这其中通过串口2发送数据到通讯转发软件需要用到虚拟COM口,我用的是VPSD,添加虚拟COM1和COM2,Proteus中的仿真串口使用COM1,则通讯转发软件用到COM2。


串口的波特率等要设置一致。
登录阿里云,在物联网平台新建自己的产品与设备

在创建的产品中添加设备,完成后查看产品的三元组(ProductKeyDeviceNameDeviceSecret),然后新建文本文档将三元组暂时保存

再查看设备的MQTT参数并将mqttHostUrlport保存到上面新建的文本,之后穿串口的转发需要用到

新建物模型
在产品中,点击“功能定义”,“编辑草稿”,“添加自定义功能”,添加“温度”,这里要注意标识符,物模型的标识符一定要和代码里写的标识符保持一致,否则数据无法发送到云端。


步长个人理解表示数据变化时是每次零点几的变化还是每次整数整数的变化,或者说是一个反应数据准确程度的吧。新建物模型后选择发布上线。
之后可以看到产品的Topic列表里的物模型通信Topic里有了属性上报Topic,这两个订阅和发布Topic在实际上云中会用到,但本次的仿真上云不需要。

至此阿里云的配置结束。
打开通讯转发软件,设置IP为我们之前保存的mqttHostUrl,端口为port,于是在收到串口2的数据以后便会转发到目的IP地,也会是我们阿里云的产品。

利用已经封装好的阿里云连接文件,在Ali.h添加自己的三元组

五、模拟上云
运行Proteus,并提前打开通讯转发软件的COM2,当仿真的虚拟串口输出“start connecting”,通讯转发软件连接IP。
当收到由网络发来的数据时,表示一次数据传输到云成功

连接IP的时机可能对于连接的成功有影响,因为是仿真连接时并不稳定,可能会自己突然中断,多尝试连接几次即可。

END
本人水平有限,以上叙述可能会有出错还望大佬赐教!!

相关的代码和软件都放在这里了
https://gitee.com/hree-2002/smart_home

利用Proteus仿真基于stm32的智能家居并上传至阿里云相关推荐

  1. 基于STM32的“智能家居”课程设计

    基于STM32的"智能家居系统"课程设计 此设计是基于STM32F407单片机的智能家居系统,具体完成要求如下: 基于蓝牙的智能家居系统设计 设计一个基于蓝牙/Wifi的智能家居控 ...

  2. 基于stm32的智能家居项目

    基于stm32的智能家居 具体教程可以看文中的B站链接,上面有手把手教程 本人其他项目链接基于linux的智能仓储项目 基于Qt的人脸识别 移植人脸识别到Linux开发板上 基于正点原子的IMX6UL ...

  3. STM32+Air202+Air530+HXDZ-30102-ACC心率血氧GPS采集上传到阿里云

    主要功能 HXDZ-30102-ACC采集心率血氧数据 STM32通过串口将数据转发到air202模块 air202将数据上传到阿里云平台进行展示与处理 整合合宙air530GPS模块,将定位数据上传 ...

  4. 基于STM32的智能花盆系统设计与实现(华为云IOT)

    一.设计需求 1.1 设计需求总结 伴随着人们生活水平以及现在科学技术的急速发展,越来越多的人喜欢在家庭栽培一些盆栽植物.可是当代生活节奏过快,导致盆栽大多数都不能得到很好的补充水分和阳光照射,从而导 ...

  5. 基于STM32设计智能家居控制系统(OneNet)_2022

    1. 前言 随着科学技术的发展,人们的生活方式发生着巨大改变,基于物联网技术实现的智能家居使我们的生活变得更加方便快捷.本次设计结合现代生活的具体需求,设计出一套基于物联网技术的智能家居电子系统设计, ...

  6. 基于STM32的智能家居系统设计

    目录 第1章 前言 1 1.1 课题研究的背景和实际意义 1 1.1.1课题背景 1 1.1.2实际意义 1 1.2国内外发展现状.存在问题以及前景 2 1.2.1发展现状 2 1.2.2存在问题 2 ...

  7. 基于STM32的智能家居控制系统设计与实现(带红外遥控控制空调)

    1. 前言 智能家居作为家庭信息化的实现方式,已经成为社会信息化发展的重要组成部分,物联网因其巨大的应用前景,将是智能家居产业发展过程中一个比较现实的突破口,对智能家居的产业发展具有重大意义. 本文基 ...

  8. STM32项目设计:基于stm32的智能家居系统设计

    文章目录 @[toc] 一.项目功能概述 二.项目原理图 三.程序设计 四.扩展功能 五.项目展示: 项目资料链接:https://pan.baidu.com/s/1nghgsyOM_isTMALuW ...

  9. 7天搭建物联网项目 STM32 + ESP8266 第 1 节 上传数据到云平台

    开发环境准备: 硬件平台我们需要如下设备,一个stm32开发板(STM3F103C8T6型号,使用其他型号只需要修改下软件工程配置,也可以直接买我做好的开发板哈).ESP8266 wifi 芯片.jl ...

最新文章

  1. java显示服务器端ip,Java服务器获取客户端的ip
  2. JSP中文乱码问题(get,post篇)
  3. 超干货 | 一线从业者实践案例大分享:To B行业如何做增长
  4. 防摇控制matlab,一种起重机防摇控制方法与流程
  5. 11旋转编码器原理_旋转编码器的原理是什么?增量式编码器和绝对式编码器有什么区别?...
  6. 第二周进度及工作量统计
  7. 图像标注技巧_保护互联网上图像的一个简单技巧
  8. C++根据系统时间生成不重复的随机数
  9. smarty中的在模板页中应用js css img等文件时,地址是相对与模板页对应的php文件
  10. ASP.NET 對cookies的操作
  11. Unity官方文档(英文)
  12. 二级域名间相互请求 ajax跨域请求
  13. 全球链界科技发展大会_科技界的女性-过去,现在和未来
  14. 富兰克林的十三种美德
  15. Mark- 新的开始
  16. Linux Cannot assign requested address
  17. 织梦有哪些文件需要设置robot的Disallow呢?
  18. 1033 旧键盘打字 (20分)
  19. Excel数据分析之数组
  20. Caffe简明教程1:Caffe简介

热门文章

  1. Python breakpoint()函数
  2. 测试计划和测试用例的方法
  3. 【OpenGL】glm库的配置
  4. (详解)钉钉接口,PC端微应用,免登录及获取当前用户信息
  5. 项目js文件修改后浏览器不能及时更新的解决办法
  6. [机器翻译]—BLEU值的计算
  7. 2016年下半年信息安全工程师上午选择题及解析
  8. 手把手教你做一个天气时钟,推荐收藏
  9. 四叶草云演-CTF04# 后台管理系统
  10. 安装包的原理与制作安装包的流程