一.系统概述
智能自动售卖机系统实现了智能自动售卖机的多功能,包括环境监测、自动购买识别、远程管理统计和信息显示等,提升了售卖机的智能化和用户体验,具体包括以下主要功能:
1. 环境检测功能:
- 包括温湿度检测模块和烟雾检测模块,实时监测环境数据。
- 将检测到的数据显示在显示器上。
2. 硬币识别与语音购买功能:
- 实现对投币数量的自动检测。
- 支持语音购买功能,用户可以通过语音命令完成购买操作。
3. 按键购买功能:
- 提供按键界面,用户可以通过按键选择商品并完成购买。
4. 远程商品统计:
- 可以远程监测和统计售卖机内各商品的数量变化。
5. 上位机端显示:
- 在上位机端显示自动售卖机内商品的数量信息。
- 显示售卖机的位置信息,方便管理和定位。
二.电路设计
电路图采用Altium Designer进行设计:
1. 使用MQ-2进行烟雾浓度检测并将模块的模拟输出脚与单片机的模拟输入脚相接;
2. 通过DHT11进行温湿度检测,并通过one-wire总线与单片机的GPIO脚进行连接;
3. 通过ESP8266-01S将检测到数据上传到上位机,通过UART串口与单片机进行通信;
4. 使用JR6001进行语音播报,并通过UART串口与单片机进行连接;
5. 通过光电开关进行硬币检测,模块的数据输出脚与单片机的GPIO口直接连接;
6. 使用LU-ASR高精度语音识别模块进行语音指令检测,并通过UART串口与单片机进行通信;
7. 使用独立按键进行购买控制,按键的一端接地,一端接单片机的GPIO口;
8. 通过舵机推出购买成功的商品,舵机的控制线与单片机GPIO口进行连接。
三.程序设计
keil程序
#include "sys.h"
#include "delay.h"
#include "adc2.h"
#include "math.h"
#include "key.h"
#include "OLED_I2C.h"
#include "Control_Report_To_Police.h"
/************************************************
版权:小常硬件
公众号:微信搜索“小常硬件“在公众号免费下载相关资料
************************************************/
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
delay_init(); //延时函数初始化
Usart1_Init(9600);
Usart3_Init(9600);
TIM4_Init(300,7200);
Servor_GPIO_Config_Time2_Init();
while(DHT11_Init()){}
UART1Write("AF:20");
switch_Init();
Beep_init();
KEY_Init();
Led0_init();
OLED_Init(); //OLED初始化
Adc2_Init();
OLED_CLS(); //OLED清屏
ALi_ESP8266_GPIO_Init();
MQTT_Buff_Init();
AliIoT_Parameter_Init();
while(1)
{
OLED_Display_Cotrol(); //显示控制函数
}
}