请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

环境监测仪

作者:Ruihao Ke 2021-04-23 09:14:03 2 694
1.项目背景
由于是初次接触STM较高端的产品,开发经验尚浅,所以将目标定在了相对容易实现的环境监测仪。
2.作品简介
本设计全程使用CubeMX、TouchGFX以及MDK5进行开发。
环境监测仪以STM32H735G-DK为主机,MB1355C为从机。
使用无线模块完成主-从机之间的通讯。

从机利用open MEMS工具包提供的传感器算法,完成传感器模块的信号采集。传感器模块中包括-温湿度计、气压计和磁力计。从机的显示终端为一块OLED12864。
主机通过由TouchGFX配置的GUI,来显示主要的显示部分以及实现人机交互。
主机利用来自从机的数据完成以下若干项功能:
1. 各传感器数据同屏的柱状图式总览
2. 图表式的传感器数据日志
3. 日期时间的显示及设置
从机自身的独立功能:
4. 从机数据显示
5. 电子指南针
其它功能:
中英文切换

3.系统架构

4. 各部分功能实现功能一-总览-柱状图式传感器数据显示

功能二-图表式传感器数据日志
温度传感器:

湿度传感器:
1.png

功能三-日期时间的显示及设置
日期设置:
6.png
时间设置:
7.png

功能四-从机数据显示
5.png

功能五-电子指南针

其它:
开机界面:

中英文切换:

5.视频演示
6.源码

请附上相关实现代码,并加以说明。
电子指南针源码:
//计算方位角
float Get_LIS2MDL_Angle(void)
{
        IKS01A3_MOTION_SENSOR_GetAxes           (IKS01A3_LIS2MDL_0  , MOTION_MAGNETO , &MOTION_SENSOR.Axes_LIS2MDL );
        IKS01A3_MOTION_SENSOR_GetAxesRaw        (IKS01A3_LIS2MDL_0  , MOTION_MAGNETO , &MOTION_SENSOR.AxesRaw_LIS2MDL );//三轴磁力计

        short x = MOTION_SENSOR.Axes_LIS2MDL.x + 360.5;//校准值(max + min) / 2
        short y = MOTION_SENSOR.Axes_LIS2MDL.y + 258.5;//校准值(max + min) / 2
        double Angle = ((atan2((double)(y),(double)(x))) * PI) + 180;
        return Angle;
}

打印图像:
void Print_Compass(void)
{
        float Target_X = cos((Angle_Sensor - 180) * PI2) * 15;
        float Target_Y = sin((Angle_Sensor - 180) * PI2) * 15;
        float Font_X = cos((Angle_Sensor - 180) * PI2) * 21;
        float Font_Y = sin((Angle_Sensor - 180) * PI2) * 21;

        OLED_Circle(32,32,31,1);
        OLED_Line(32,32,Target_X + 32,Target_Y + 32,1);

        OLED_Show_Str(Font_X + 29,Font_Y + 28,"N",Font6x8,0);

}

7.项目总结

项目收获、过程体会、成果分享等。
8.其他


(注:以上为目录结构范例,可供参考,您可根据实际情况增加、删减或修改目录结构。)

2 收藏 评论0 发布时间:2021-4-23 09:14

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版