环境监测仪
1.项目背景由于是初次接触STM较高端的产品,开发经验尚浅,所以将目标定在了相对容易实现的环境监测仪。2.作品简介本设计全程使用CubeMX、TouchGFX以及MDK5进行开发。环境监测仪以STM32H735G-DK为主机,MB1355C为从机。使用无线模块完成主-从机之间的通讯。从机利用open MEMS工具包提供的传感器算法,完成传感器模块的信号采集。传感器模块中包括-温湿度计、气压计和磁力计。从机的显示终端为一块OLED12864。主机通过由TouchGFX配置的GUI,来显示主要的显示部分以及实现人机交互。主机利用来自从机的数据完成以下若干项功能:1. 各传感器数据同屏的柱状图式总览2. 图表式的传感器数据日志3. 日期时间的显示及设置从机自身的独立功能:4. 从机数据显示5. 电子指南针其它功能:中英文切换
3.系统架构
4. 各部分功能实现功能一-总览-柱状图式传感器数据显示
功能二-图表式传感器数据日志温度传感器:
湿度传感器:
功能三-日期时间的显示及设置日期设置:时间设置:
功能四-从机数据显示
功能五-电子指南针
其它:开机界面:
中英文切换:
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.其他
(注:以上为目录结构范例,可供参考,您可根据实际情况增加、删减或修改目录结构。)
stm32设计几个模拟量的输入、运算,然后在电脑上显示。大虾可以弄吗 温湿度这个太经典了,基本每个入门的人都得学,经典中的经典
页:
[1]