一.系統概述
物聯網自動售賣機系統的主要功能如下:
- 核心控制器:采用STM32單片機作為系統核心,負責整體數據處理和各設備的統一控制。
- 商品選擇:支持語音識別及按鍵方式,方便用戶在售賣機內選擇商品。
- 語音播報:集成語音播報模塊,當用戶選定商品后,系統會通過語音播報告知商品的價格信息。
- 投幣檢測與計數:內置投幣檢測裝置,準確識別并統計用戶投入的硬幣數量,確保支付過程無誤。
- 舵機控制:在用戶完成支付后,舵機會控制動作,將所選商品推出售賣機。
- 環境監測:系統配備溫濕度傳感器和煙霧傳感器,實時采集售賣機內部的溫度、濕度及煙霧數據,保障操作安全和商品質量。
- 位置監控:利用GPS模塊實現售賣機實時定位,便于管理和定位。
- 數據上傳與遠程監控:通過無線通信模塊,將環境數據和銷售數據上傳至遠程監控軟件,便于管理員實時監控售賣機的銷售情況、庫存及價格信息。
- 遠程補貨:當商品庫存低于設定閾值時,系統會自動向管理員發送補貨提醒,確保用戶需求得到及時滿足。
二.電路設計
電路圖采用Altium Designer進行設計:
- 整個電路圖使用Altium Designer設計,其中以STM32F103C8T6單片機構成的最小系統電路作為核心控制單元;
- 利用DHT11模塊實現溫濕度檢測,其數據通過one-wire總線連接至單片機的GPIO引腳;
- 采用MQ-2模塊檢測CO濃度,將其模擬輸出信號接入單片機的模擬輸入端;
- 通過LU-ASR01高精度語音識別模塊實現語音指令的檢測,模塊與單片機通過UART串口通信;
- 利用光電開關進行硬幣檢測,檢測模塊的數據輸出直接接入單片機的GPIO口;
- 使用JR6001語音播報模塊,其與單片機通過UART串口相連,實現語音輸出功能;
- 通過ESP8266-01S模塊將采集到的數據上傳到上位機,該模塊同樣采用UART串口與單片機通信;
- 利用舵機完成購買成功后商品的推出,舵機的控制信號直接連接至單片機的GPIO口。
三.程序設計
#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)
{
u8 i;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優先級分組為組2:2位搶占優先級,2位響應優先級
delay_init(); //延時函數初始化
Usart1_Init(9600);
Usart3_Init(9600);
TIM4_Init(300,7200);
while(DHT11_Init()){}
Adc2_Init();
Servor_GPIO_Config_Time2_Init();
UART1Write(“AF:20”);
switch_Init();
KEY_Init();
ALi_ESP8266_GPIO_Init();
MQTT_Buff_Init();
AliIoT_Parameter_Init();
for(i=0;i<=50;i++)
{
UART1Write(“B0”);
delay_ms(200);
UART1Write(“B0”);
delay_ms(100);
}
while(1)
{
OLED_Display_Cotrol(); //顯示控制函數
}
}
四.資料內容
24-32-37