提示:记录2022年4月做的毕设
文章目录
- 前言
- 一、任务书
- 1.1设计(研究)目标:
- 1.2设计(研究)内容:
- 二、思路
- 三、硬件
- 四、联系我
- 五、代码以及框图等资料
- 喜欢请点赞哦!
前言
基于STM32的车间环境监测系统,主控使用STM32F103ZET6,在正点原子的精英板上开发。
一、任务书
1.1设计(研究)目标:
以STM32单片机为核心器件,设计一个红外测距系统,红外测距仪基于红外线的不扩散原理,在测量短距离物体时有着较高的精度,在生活中发挥着重要的作用。通过硬件和软件的设计,实现能够精准测量10~50cm物体的红外技术测距仪。
设计(研究)内容及具体要求:
1.2设计(研究)内容:
- 题目的意义;
- 各种传感器及设备的一般技术和特殊技术的学习:
- 总体方案的选型设计:
- STM32单片机及其外围设备的软硬件系统的技术开发:
- 系统的调试和总体运行原理
- 其他设计内容;具体要求:
- 硬件要求1张1号以上的大图:
- 软件以流程图方式表示:
- 有调试的说明。
二、思路
- 第一步红外传感器模块GP2YOA21YKOF发送红外线;
- 第二步到达物体后反射红外线;
- 第三步红外传感模块接收反射后的红外线;
- 第四步传感器模块将信号发送给单片机处理模块;
- 第五步经过模数转换将非线性的模拟信号转换为线性的数字信号;
- 第六步由单片机处理模块发送数字信号到液晶显示模块;
- 第七步最后结果表明在液晶显示模块LCD1602上
三、硬件
- GP2YOA21YKOF
- OLED
- 按键
- PCF8591
- STM32F103
四、联系我
承接stm32单片机、STC系列单片机设计、嵌入式
问题联系QQ:2424644692
某宝店铺,搜:“晖亿科创”
五、代码以及框图等资料
int main(void)
{int distance=0,light=0;int shidu=0,wendu=0;char send_str1[200]="Infrared ranging detection system based on stm32!\r";char send_str2[200]=" ";NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);all_usart_init(); // 串口初始化delay_init(); // 延时初始化ESP8266_Init(); // 初始化WiFi模块使用的接口和外设Esp8266_ap();//LED_Init();OLED_Init();OLED_Clear();TIM2_Int_Init(999,7199); //10Khz的计数频率,计数到1000为100msPCF8591_Init();DHT11_Start();LIGHT_Init();show_caption();Show_Chinese();ESP8266_SendString( DISABLE, send_str1, strlen ( send_str1 ), ( ENUM_ID_NO_TypeDef ) 0 ); while(1){ /*****************************************************///以下是采集模拟量//ADC_IN2()是采集过来的电压值,校准后给distance/*****************************************************///distance = 70-(ADC_IN1()/3);//delay_ms(100);if(dis_flag==1){dis_flag=0;distance = (170-ADC_IN2())/2;OLED_ShowNum(34,3,distance,3,16);light=LIGHT_IN2(); OLED_ShowNum(34,6,light,3,16);}if(dht_flag==1){dht_flag=0;DHT11_ReadData(&shidu,&wendu);OLED_ShowNum(96,3,shidu,3,16);OLED_ShowNum(96,6,wendu,3,16);}/*****************************************************///以下是OLED显示/*****************************************************///OLED_ShowNum(34,6,distance,3,16);///*****************************************************///以下是ESP8266发送/*****************************************************/if(esp_flag==1){esp_flag=0;sprintf(send_str2,"距离:%d CM;光照:%d;温度:%d;湿度:%d\r\n", distance, light, wendu, shidu);ESP8266_SendString( DISABLE, send_str2, strlen ( send_str2 ), ( ENUM_ID_NO_TypeDef ) 0 ); } }
}