基于瑞萨MCU的智能环境检测小车设计

1.项目设计简介
本项目用瑞萨的mcu作为主控,两个编码电机作为动力装置,一个万向轮提高车子的机动性、搭载蓝牙模块、dht11模块、火焰传感器模块、wifi模块,实现的功能如下:
①在手机上app界面按下相应的指令能够控制小车的运动和获取当前环境的温湿度
②火焰靠近火焰传感器模块,蜂鸣器会报警
③是否有火源的信息,可根据火焰传感器的检测,在0.96寸oled屏幕上实时显示上传的信息
视频演示
小车整体实物图
2.所用到的模块
2.1 火焰传感器模块
1、可以检测火焰或者波长在760纳米~1100纳米范围内的光源,打火机测试火焰距离为80cm,对火焰越大,测试距离越远
2、探测角度60度左右,对火焰光谱特别灵敏
3、灵敏度可调(图中蓝色数字电位器调节)
4、比较器输出,信号干净,波形好,驱动能力强,超过15ma
5、配可调精密电位器调节灵敏度
6、工作电压3.3v-5v
do引脚输出数字信号
  2.2 0.96寸oled屏幕
0.96 寸oled屏幕,利用iic通信总线,可以很好的传输和显示数据
2.3 dht11模块
该模块使用奥松dht11数字温湿度传感器,dht11是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有可靠的稳定性,响应快,抗干扰能力强。传感器包括一个高分子电阻式感湿元件和一个ntc测温元件,并与一个高性能8位单片机相连接,通过单总线与微处理器通讯,只需要一根线。
2.4 蓝牙模块
利用串口就能发送想要的数据。
2.5 手机端控制界面
按下相应的指令能够控制小车的运动和获取当前环境的温湿度
2.6 电机驱动模块
采用的整体化设计,便于接线。
3.程序设计
3.1 oled屏幕采用硬件iic
左右滑动查看更多
//==================================================================================================// 实现功能: 0.96寸oled 接口演示例程// 说明:// gnd 电源地// vcc 接5v或3.3v电源// scl 接p505(scl6)// sda 接p506(sda6)//==================================================================================================------------------------------------------------------------------------// | - | - | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9//==================================================================================================//==================================================================================================#include oled.h#include stdlib.h#include oledfont.h#include math.h#include hal_data.hextern fsp_err_t err;extern int timeout_ms;extern i2c_master_event_t i2c_event ;//oled的显存//存放格式如下.//[0]0 1 2 3 ... 127//[1]0 1 2 3 ... 127//[2]0 1 2 3 ... 127//[3]0 1 2 3 ... 127//[4]0 1 2 3 ... 127//[5]0 1 2 3 ... 127//[6]0 1 2 3 ... 127//[7]0 1 2 3 ... 127//==================================================================================================// 函数功能: iic外设驱动函数部分// 函数标记: write_iic_command// 函数说明: 无//-------------------------------------------------------------------------------------------------// | - | - | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9//==================================================================================================void write_iic_command(unsigned char iic_command){ uint8_t ii[2]={0x00,0x00}; ii[1] = iic_command; err = r_sci_i2c_write(&g_sci6_i2c_ctrl, ii, 0x02, true); assert(fsp_success == err); /* since there is nothing else to do, block until callback triggers*/ //while ((i2c_master_event_tx_complete != i2c_event) && timeout_ms) while ((i2c_master_event_tx_complete != i2c_event) && timeout_ms>0) { r_bsp_softwaredelay(100u, bsp_delay_units_microseconds); timeout_ms--; } if (i2c_master_event_aborted == i2c_event) { __bkpt(0); } /* read data back from the i2c slave */ i2c_event = i2c_master_event_aborted; timeout_ms = 100000;}//==================================================================================================// 函数功能: iic外设驱动函数部分// 函数标记: write_iic_data// 函数说明: 无//-------------------------------------------------------------------------------------------------// | - | - | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9//==================================================================================================void write_iic_data(unsigned char iic_data){ uint8_t ii[2]={0x40,0x00}; ii[0] = 0x40; ii[1] = iic_data; err = r_sci_i2c_write(&g_sci6_i2c_ctrl, ii, 0x02, true); assert(fsp_success == err); /* since there is nothing else to do, block until callback triggers*/ //while ((i2c_master_event_tx_complete != i2c_event) && timeout_ms) while ((i2c_master_event_tx_complete != i2c_event) && timeout_ms>0) { r_bsp_softwaredelay(100u, bsp_delay_units_microseconds); timeout_ms--; } if (i2c_master_event_aborted == i2c_event) { __bkpt(0); } /* read data back from the i2c slave */ i2c_event = i2c_master_event_aborted; timeout_ms = 100000;}//==================================================================================================// 函数功能: iic外设驱动函数部分// 函数标记: write_iic_data// 函数说明: 无//-------------------------------------------------------------------------------------------------// | - | - | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9//==================================================================================================void oled_wr_byte(unsigned dat,unsigned cmd){ if(cmd) { write_iic_data(dat); } else { write_iic_command(dat); }}/********************************************// fill_picture********************************************/void fill_picture(unsigned char fill_data){ unsigned char m,n; for(m=0;m0;m--);}void delay_1ms(unsigned int del_1ms){ unsigned char j; while(del_1ms--) { for(j=0;j>4)|0x10,oled_cmd); oled_wr_byte((x&0x0f),oled_cmd);}//开启oled显示void oled_display_on(void){ oled_wr_byte(0x8d,oled_cmd); //set dcdc命令 oled_wr_byte(0x14,oled_cmd); //dcdc on oled_wr_byte(0xaf,oled_cmd); //display on}//关闭oled显示void oled_display_off(void){ oled_wr_byte(0x8d,oled_cmd); //set dcdc命令 oled_wr_byte(0x10,oled_cmd); //dcdc off oled_wr_byte(0xae,oled_cmd); //display off}//清屏函数,清完屏,整个屏幕是黑色的!和没点亮一样!!!void oled_clear(void){ u8 i,n; for(i=0;i<8;i++) { oled_wr_byte(0xb0+i,oled_cmd); //设置页地址(0~7) oled_wr_byte(0x00,oled_cmd); //设置显示位置—列低地址 oled_wr_byte(0x10,oled_cmd); //设置显示位置—列高地址 for(n=0;n<128;n++)oled_wr_byte(0,oled_data); } //更新显示}void oled_on(void){ u8 i,n; for(i=0;i<8;i++) { oled_wr_byte (0xb0+i,oled_cmd); //设置页地址(0~7) oled_wr_byte (0x00,oled_cmd); //设置显示位置—列低地址 oled_wr_byte (0x10,oled_cmd); //设置显示位置—列高地址 for(n=0;nmax_column-1){x=0;y=y+2;} if(char_size ==16) { oled_set_pos(x,y); for(i=0;i<8;i++) oled_wr_byte(f8x16[c*16+i],oled_data); oled_set_pos(x,y+1); for(i=0;i<8;i++) oled_wr_byte(f8x16[c*16+i+8],oled_data); } else { oled_set_pos(x,y); for(i=0;i<6;i++) oled_wr_byte(f6x8[c],oled_data); }}//m^n函数u32 oled_pow(u8 m,u8 n){ u32 result=1; while(n--)result*=m; return result;}//显示2个数字//x,y :起点坐标//len :数字的位数//size:字体大小//mode:模式 0,填充模式;1,叠加模式//num:数值(0~4294967295);void oled_shownum(u8 x,u8 y,u32 num,u8 len,u8 size2){ u8 t,temp; u8 enshow=0; for(t=0;t

加速产业化人工智能正“狂飙突进”
基于S3C44B0开发板的图像采集方法研究
人工智能如何从学校走出去
下半年USB 3.1相关方案将轮番登场
PCI5565反射内存卡系统结构与使用
基于瑞萨MCU的智能环境检测小车设计
主动降噪蓝牙耳机怎么选?2021年降噪耳机推荐
CDMA技术概述
一文详解EMC设计
大流行加剧了银行对人工智能的使用
小米投资MEMS传感器公司矽睿科技
MouldCAD冲压模具设计软件
能够引爆物联网的无线连接技术需要做到什么
采用PN512的NFC驱动电路设计
MAXQ618引脚图及其说明
载体为照明灯及电力线的移动通信系统介绍
Flink在2020年蝉联Apache社区最活跃的项目
你想象中的未来工厂是什么样的
为什么越来越多人选择降噪蓝牙耳机?
区块链合同已在多个场景中落地应用