物联网的震动传感器检测系统设计
2018-08-11杨楠金亚玲沈阳工学院
杨楠 金亚玲* 沈阳工学院
引言:以专业角度来分析,震动开关分为弹簧开关与滚珠开关两大类来看。两大类开关都有两个比较重要的指标特性,灵敏度和方向性。弹簧开关的灵敏度是指不同的产品,在实际装置中会产生因感应振动力大小不同的差异,此差异称为林敏度。
1 振动传感器
FSMC:可变静态存储控制器,是STM32系列采用的一种新型的存储器扩展技术。一般可以用FSMC接口与液晶驱动IC连接,实现数据交换。用于各种震动触发作用,报盗报警,智能小车,地震报警,摩托车报警等。
2 内部资源
CPU型号: STM32F103ZET6 / LQFP-144 / ARM 32-bit Cortex-M3
主频: 72MHz
内部Flash容量: 512KB
内部SRAM容量: 64KB
定时器: 11个
UART : 5 个
SPI: 3个 (2个可复用为I2S)
I2C: 2个
ADC : 3个独立的12位ADC
DAC: 2路独立12位DAC
CAN : 1个 CAN 2.0B
SDIO : 1个
USB : USB2.0全速(从机)无需外部PHY。
3 设计方法
(1)硬件连接
首先把振动传感器模块插到实验箱的主板上子节点的串口上,再把ST-Link插到标有ST-Link标志的JTAG口上,最后把仿真器一段的USB线插到PC机的USB端口,通过主板上的“加”“减”按键选择要编程实验的传感器。
(2)打开工程
使用IAR SWSTM8 1.30软件,打开文件。
(3)编译文件
补全文件中的代码,点击“Project”下面的“Rebuid ALL”,编译完后无警告,无错误。
(4)烧写程序
编译完后把程序烧到模块里,接下来通过串口进行上位机通信,把采集到的数据同步的传送到上位机中。
(5)振动传感器原理图,如图1.1
1.1 振动传感器原理图
4 程序设计
#include "stm32f1xx_hal.h"
#include "usartsp_debug_usart.h"
#include "ff.h"
#include "ff_gen_drv.h"
FATFS fs;
FRESULT f_res;
#endif
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_ClkInitTypeDef RCC_ClkInitStruct;
RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLMUL=RCC_PLL_MUL9;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
HAL_RCC_ClockConfig(&RCC_ClkInitStruct,FLASH_LATENCY_2);
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
HAL_NVIC_SetPriority(SysTick_IRQn,0,0);
}
int main(void)
{
LCD_Clear(0,0,LCD_DEFAULT_WIDTH,LCD_DEFAULT_HEIGTH,BLACK);
HAL_Delay(1000);
LCD_BK_ON();
LCD_DispString_EN_CH(70,50,(uint8_t *)"开 发 板",BLACK,BLUE,USE_FONT_24);
while (1)
{
if(SW420_StateRead()==SW420_HIGH)
{
LED1_ON;
LCD_DispString_EN_CH(80,200,"有",BLACK,RED,USE_FONT_24);
}
else
{
LED1_OFF;
LCD_DispString_EN_CH(80,200,"无",BLACK,RED,USE_FONT_24);
}
5 结果
振动输出高电平,不振动输出低电平。振动时LED3亮,不振动时LED3灭。设计效果较好,实现了设计目的和要求。