?功能介紹
- ?以51/STM32單片機(jī)作為主控系統(tǒng);
- ? LCD1602液晶顯示當(dāng)前時(shí)間、溫濕度、藥品重量
- ? 3次吃藥時(shí)間、藥品類目和藥品數(shù)量
- ?HX711壓力采集當(dāng)前藥品重量
- ?紅外感應(yīng)當(dāng)前藥盒是否打開
- ?DS1302時(shí)鐘芯片顯示當(dāng)前年月日、時(shí)分秒、星期
- ?DHT11采集當(dāng)前環(huán)境溫度和濕度? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
- 手機(jī)端連接WIFI后可以顯示當(dāng)前溫濕度、重量、吃藥時(shí)間等信息
- 手機(jī)端可以設(shè)置當(dāng)前吃藥時(shí)間、藥品種類、藥品數(shù)量等信息
- 當(dāng)吃藥時(shí)間到后手機(jī)端震動(dòng)提醒
- 并且進(jìn)行語音播報(bào):“吃藥時(shí)間到了,請(qǐng)及時(shí)吃藥”
- 手機(jī)端點(diǎn)擊“已吃藥”停止震動(dòng)和播報(bào)
- ?整個(gè)電路以5v供電;
?電路圖
PCB
源代碼
#include <reg52.h>
#include <intrins.h>
#include <stdio.h>//printf串口輸出頭文件
#define uchar unsigned char
#define ushort unsigned int
#define uint unsigned long
#include "lcd1602.h"
#include "uart_trx.h"
#include "eeprom52.h"
#define RATIO 800 //系數(shù),建議選擇800-1000
sbit key1 = P1^0;//加鍵
sbit key2 = P1^1;//減鍵
sbit beep = P2^0;//蜂鳴器
sbit Fan = P1^3;//風(fēng)扇
unsigned char pmBuf[7] = 0;//數(shù)據(jù)接收數(shù)組
uint PM25_Value = 0; //PM = ((pmBuf[1]<<8)+pmBuf[2])/1024*8*ratio
uint PM25_ValueMax = 200; //上限初始值
void EEPROM_WRITE()//EEPROM寫入
{
SectorErase(0x2000);//擦除扇區(qū)
byte_write(0x2001, (PM25_ValueMax>>8)&0xFF);//存儲(chǔ)高8位
byte_write(0x2002, (PM25_ValueMax>>0)&0xFF);//存儲(chǔ)低8位
byte_write(0x2009, 111);//存儲(chǔ)校驗(yàn)值
}
void EEPROM_READ()//EEPROM讀出
{
if(byte_read(0x2009)!=111)//開機(jī)檢測單片機(jī)是不是第一次使用,如果不是第一次使用,則先把數(shù)據(jù)存儲(chǔ)一遍,再讀取,數(shù)據(jù)就不會(huì)亂碼
{
EEPROM_WRITE();//存儲(chǔ)
delay_ms(100);
}
PM25_ValueMax = byte_read(0x2001)<<8 | byte_read(0x2002);//讀取上限值
}
void Get_PM(void)//讀取PM2.5值,具體的數(shù)據(jù)幀意思,請(qǐng)自行查閱芯片手冊(cè)
{
char i = 0;
char j = 0;
char k = 0;
COM.RX_Cnt = 0;
if(COM.B_RX_OK == 1)//串口數(shù)據(jù)接收完成
{
for(i = 0; i<8; i++)
{
if((RX_Buffer[i] == 0xAA)&&(RX_Buffer[i+6]==0xFF))//判斷接收的數(shù)據(jù)是否正確
{
goto find2;
}
}
goto end2;
find2:
for(j = 0; j<7; j++)
{
pmBuf[j] = RX_Buffer[i+j];//數(shù)據(jù)獲取
}
PM25_Value = (unsigned int)((pmBuf[1]*256)+pmBuf[2])*5/2048.0*RATIO;//計(jì)算PM2.5值
COM.B_RX_OK = 0;
}
end2:
return;
}
void main(void)
{
unsigned int test;
EEPROM_READ();//開機(jī)讀取存儲(chǔ)值
LCD_init();//1602初始化
Uart_Init(2400);//串口初始化波特率2400
LCD_write_string(0,0,"Pm2.5: ug/m3 ");
LCD_write_string(0,1,"PmMax: ug/m3 ");
//顯示上限值
LCD_write_char(7, 1, PM25_ValueMax % 1000 / 100 + 0x30);
LCD_write_char(8, 1, PM25_ValueMax % 100 / 10 + 0x30);
LCD_write_char(9, 1, PM25_ValueMax % 10 + 0x30);
while(1)
{
if (test ++ > 250)//大約250ms讀取一次
{
test = 0 ;
Get_PM();//獲取PM2.5
if(PM25_Value > 999)//限值,最大999
PM25_Value = 999;
//顯示PM2.5
LCD_write_char(7, 0, PM25_Value % 1000 / 100 + 0x30);
LCD_write_char(8, 0, PM25_Value % 100 / 10 + 0x30);
LCD_write_char(9, 0, PM25_Value % 10 + 0x30);
if(PM25_Value >= PM25_ValueMax)//超過上限,蜂鳴器報(bào)警
{
beep = ~beep;
Fan = 0;
delay_ms(100);
}
else
{
beep = 1;
Fan = 1;
}
}
if(key1 == 0)//加鍵按下
{
delay_ms(10);//消抖
if(key1 == 0)
{
beep = 0;
delay_ms(100);
beep = 1;
while(key1 == 0);
if(PM25_ValueMax<999)PM25_ValueMax+=10;//上限最大到999,每次加10
//顯示
LCD_write_char(7, 1, PM25_ValueMax % 1000 / 100 + 0x30);
LCD_write_char(8, 1, PM25_ValueMax % 100 / 10 + 0x30);
LCD_write_char(9, 1, PM25_ValueMax % 10 + 0x30);
EEPROM_WRITE();//保存
}
}
if(key2 == 0)//減鍵按下
{
delay_ms(10);
if(key2 == 0)
{
beep = 0;
delay_ms(100);
beep = 1;
while(key2 == 0);
if(PM25_ValueMax>=10)PM25_ValueMax-=10;//上限最小到0,每減10
//顯示
LCD_write_char(7, 1, PM25_ValueMax % 1000 / 100 + 0x30);
LCD_write_char(8, 1, PM25_ValueMax % 100 / 10 + 0x30);
LCD_write_char(9, 1, PM25_ValueMax % 10 + 0x30);
EEPROM_WRITE();//保存
}
}
delay_ms(1);
}
}
? ? ?
元器件清單
基于51/STM32單片機(jī)的智能藥盒 物聯(lián)網(wǎng)定時(shí)吃藥 藥品分類的設(shè)計(jì)與實(shí)現(xiàn) | ||
名稱 | 型號(hào) | 數(shù)量 |
單片機(jī) | STC89C52 | 1 |
IC座 | DIP40 | 1 |
萬能板 | 9*15cm | 1 |
晶振 | 11.0592M | 1 |
電解電容 | 10uF | 1 |
電解電容 | 1000uf | 1 |
瓷片電容 | 22pF | 2 |
電阻 | 10K | 3 |
電阻 | 1K | 4 |
電阻 | 2K | 1 |
LED紅 | 5MM | 1 |
LED綠 | 5MM | 1 |
蜂鳴器 | 有源 | 1 |
三極管 | S9012 | 1 |
按鍵 | 5 | |
顯示屏 | LCD1602 | 1 |
排針 | 16P | 1 |
排母 | 16P | 1 |
人體紅外模塊 | HC-SR501 | 1 |
排母 | 3P | 1 |
溫度傳感器 | DS18B20 | 1 |
煙霧傳感器 | MQ-2 | 1 |
模數(shù)轉(zhuǎn)換器 | ADC0832 | 1 |
IC座 | 8P | 1 |
GSM模塊 | SIM800c | 1 |
電源座 | 5MM | 1 |
電源線 | 5V2A | 1 |
自鎖開關(guān) | 1 | |
繼電器 | 1 | |
小水泵 | 1 | |
導(dǎo)線 | 若干 | |
焊錫絲 | 若干 |
參考文獻(xiàn)
參考文獻(xiàn)
[1]王德保.GPS在城市控制網(wǎng)中的應(yīng)用研究[D].山東:山東科技大學(xué),2005.
[2]何立民.從現(xiàn)代計(jì)算機(jī)視角看嵌入式系統(tǒng)(4)嵌入式系統(tǒng)40年發(fā)展史[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2016,16(04):77-79.
[3]康桂霞,劉達(dá).FPGA應(yīng)用技術(shù)教程[M].北京:人民郵電出版社:201306.229.
[4]樸德慧,衣英剛.液晶顯示器驅(qū)動(dòng)板MCU電路介紹(上)[J].家電檢修技術(shù),2012(11):53.
[5]段廷魁.全球衛(wèi)星定位系統(tǒng)(GNSS)在工程測量中的實(shí)踐運(yùn)用探索0[J].科技創(chuàng)新與應(yīng)用,2021(05):182-184.
[6]宋戈,黃鶴松.51單片機(jī)應(yīng)用開發(fā)范例大全[M].北京:人民郵電出版社:國家信息技術(shù)緊缺人才培養(yǎng)工程系列叢書,201206.558.
[7]羅小青.單片機(jī)原理及應(yīng)用教程[M].北京:人民郵電出版社,201409.180.
[8]沈慶陽.單片機(jī)實(shí)踐與應(yīng)用[M].北京:清華大學(xué)出版社,2002.
[9]杜深慧.溫濕度檢測裝置的設(shè)計(jì)與實(shí)現(xiàn)[M].北京:機(jī)械工業(yè)出版社,2004.
[10]林嘉.基于89S52的LCD1602程序設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2012(26):6376-6378.
[11]劉光偉.基于單片機(jī)的溫室溫濕度監(jiān)測系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].秦皇島市:燕山大學(xué),2012.
[12]褚福強(qiáng),董學(xué)仁.單片機(jī)的網(wǎng)絡(luò)接入技術(shù)研究[J].儀器儀表用戶,2006(05):4-5.
[13]陳英俊.基于單片機(jī)的溫濕度監(jiān)測和報(bào)警系統(tǒng)設(shè)計(jì)[J].廣東石油化工學(xué)院學(xué)報(bào),2013(04):42-46.
[14]廖麗媛.基于應(yīng)變式扭矩傳感器的測量系統(tǒng)的設(shè)計(jì)[D].上海市:東華大學(xué),2013.
[15]劉九慶.溫室環(huán)境工程技術(shù)[M].吉林:東北林業(yè)大學(xué)出版社,2002.
[16]王明喜,崔世茂.大棚型日光溫室光照、溫度及濕度等性能的初步研究[J].農(nóng)業(yè)工程技術(shù)(溫室園藝),2008(05):19-21.
[17]張迎輝.單片微型計(jì)算機(jī)鍵盤接口設(shè)計(jì)[J].信息技術(shù),2004(07):68-69+91.
[18]張友德,趙志英.單片微型機(jī)原理應(yīng)用與實(shí)驗(yàn)[M].上海市:復(fù)旦大學(xué)出版社,2003.
[19]趙芝蕓.溫室智能監(jiān)控系統(tǒng)[D].江蘇:江蘇科技大學(xué),2010.
[20]張宏偉.基于STM32的智能環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].大慶師范學(xué)院學(xué)報(bào),2020(05):32-35.
[21]王世偉,楊越.基于STM32的多型號(hào)舵機(jī)調(diào)試器設(shè)計(jì)[J].九江學(xué)院學(xué)報(bào)(自然科學(xué)版),2020,35(02):33-36.
[22]Pengcheng Zhao,Meijun Ni,Chao Chen,Chenxi Wang,PingpingYang,Xiahui Wang,Chunyan Li,Yixi Xie,Junjie Fei. A Novel Self-protection Hydroquinone Electrochemical Sensor Based on Thermo -sensitive Triblock Polymer PS-PNIPAm-PS[J].
[23]Jian Wang,Jing Chen,Xiaofu Xiong,Xiaofeng Lu,ZhengLiao,Xiaobo Chen.Temperature safety analysis and backup protectionscheme improvement for overhead transmission line in poweroscillation condition[T].Electric Power Systems Research,2019,166.
[24]Fuji Electric Co.Ltd.;Patent Issued for SeiconductorDevice And Method Of Outputting Temperature Alarm (USPTO10,164,626)[J].Electronics Newsweekly,2019.
[25]VERSID,INC;Patent Issued for Refrigeration UnitTemperature Alarm Using Thermal Properties of Food to Eliminate FalseAlarms (USPTO 9752810)[J].Computers,Networks &Communications,2017.
[26]Fuji Electric Co.Ltd;Patent Application Titled"Semiconductor Device and Method of Outputting Teperature Alarm"Published Online (USPTO 20170077919)[J]. Technology & BusinessJournal,2017.
[27]su Yuanping,Xu Lihong,Goodman Erik D.Multi-layerhierarchical optimisation of greenhouse climate setpoints for energyconservation and improvement of crop yield[J].Biosystems
[28]黃松茂.基于STM32的家庭環(huán)境監(jiān)測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].甘肅蘭州.西北師范大學(xué),2018.:23-30.
[29]李大琳.智能車內(nèi)溫度監(jiān)測系統(tǒng)設(shè)計(jì)[J].山東工業(yè)技術(shù),2014(12):80-81.
[30]郭雯,王海濤. 智能輸液系統(tǒng)的發(fā)展與應(yīng)用.醫(yī)療衛(wèi)生裝備,2012文章來源:http://www.zghlxwxcb.cn/news/detail-827038.html
?實(shí)物可做,資料齊全,其他功能也可做~?文章來源地址http://www.zghlxwxcb.cn/news/detail-827038.html
到了這里,關(guān)于基于51/STM32單片機(jī)的智能藥盒 物聯(lián)網(wǎng)定時(shí)吃藥 藥品分類的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!