物联网毕设选题 - 单片机智能远程宠物喂养系统(物联网 esp8266 stm32)
文章目錄
- 0 前言
- 1 簡(jiǎn)介
- 2 主要器件
- 3 實(shí)現(xiàn)效果
- 4 設(shè)計(jì)原理
- 4.1 硬件部分
- 4.2 模塊介紹
- DHT11溫濕度傳感器
- ESP-01S WIFI模塊
- 光照傳感器
- 4.3 軟件設(shè)計(jì)
- 5 部分核心代碼
0 前言
🔥 Hi,大家好,這里是丹成學(xué)長(zhǎng)的畢設(shè)系列文章!
🔥 對(duì)畢設(shè)有任何疑問(wèn)都可以問(wèn)學(xué)長(zhǎng)哦!
這兩年開始,各個(gè)學(xué)校對(duì)畢設(shè)的要求越來(lái)越高,難度也越來(lái)越大… 畢業(yè)設(shè)計(jì)耗費(fèi)時(shí)間,耗費(fèi)精力,甚至有些題目即使是專業(yè)的老師或者碩士生也需要很長(zhǎng)時(shí)間,所以一旦發(fā)現(xiàn)問(wèn)題,一定要提前準(zhǔn)備,避免到后面措手不及,草草了事。
為了大家能夠順利以及最少的精力通過(guò)畢設(shè),學(xué)長(zhǎng)分享優(yōu)質(zhì)畢業(yè)設(shè)計(jì)項(xiàng)目,今天要分享的新項(xiàng)目是
🚩 單片機(jī)(stm32)遠(yuǎn)程智能寵物喂養(yǎng)系統(tǒng)
🥇學(xué)長(zhǎng)這里給一個(gè)題目綜合評(píng)分(每項(xiàng)滿分5分)
- 難度系數(shù):4分
- 工作量:4分
- 創(chuàng)新點(diǎn):3分
🧿 選題指導(dǎo), 項(xiàng)目分享:
https://blog.csdn.net/molodi/article/details/125933857
1 簡(jiǎn)介
隨著社會(huì)的發(fā)展和人民生活水平的不斷提高,也有著非常多的工作壓力。與人的交往也會(huì)有很多的壓力,于是,越來(lái)越多的人選擇養(yǎng)一只小寵物陪伴自己。但是目前,寵物不像人一樣,可以選擇搭建自己的舒適居住環(huán)境,在這種背景和情況下,做一個(gè)智能的寵物家居系統(tǒng)顯得非常有趣和有必要。
本項(xiàng)目基于中科藍(lán)訊(Bluetrum)AB32VG1開發(fā)板,結(jié)合rt-thread物聯(lián)網(wǎng)操作系統(tǒng),同時(shí)外接ESP8266模塊,通過(guò)MQTT協(xié)議連接阿里云物聯(lián)網(wǎng)平臺(tái)。開發(fā)板上云后,就可以實(shí)時(shí)的上傳開發(fā)板采集到的傳感器數(shù)據(jù),同時(shí)通過(guò)云平臺(tái)提供的web界面設(shè)計(jì),可以展示出數(shù)據(jù)的值,也可以通過(guò)控件來(lái)完成對(duì)設(shè)備的控制,從而實(shí)現(xiàn)遠(yuǎn)程監(jiān)控的作用。
2 主要器件
- stm32開發(fā)板
- rt-thread物聯(lián)網(wǎng)操作系統(tǒng)
- ESP8266模塊
- MQTT協(xié)議連接阿里云物聯(lián)網(wǎng)平臺(tái)
- B-LUX-V20光照檢測(cè)模塊
- SSD_1306 OLED模塊
- 風(fēng)扇 加熱片 加濕器
- DHT11溫濕度傳感器
3 實(shí)現(xiàn)效果
4 設(shè)計(jì)原理
4.1 硬件部分
本項(xiàng)目采用AB32VG1開發(fā)板作為主要的控制中心,連接ESP8266模塊,整體的架構(gòu)如下框圖所示:
本項(xiàng)目用到的AB32VG1開發(fā)板的硬件接口有:
1.兩路I2C,主要連接OLED和光照傳感器
2.兩路UART,一路用于外接下載和調(diào)試,另外一路用于連接8266模塊
3.GPIO控制,由于風(fēng)扇,加熱片,加濕器都是5V供電,所以需要利用光耦隔離輸出
本模塊主要用到的外設(shè):
1.ESP8266模塊
2.B-LUX-V20光照檢測(cè)模塊
3.SSD_1306 OLED模塊
4.風(fēng)扇
5.加熱片
6.加濕器
7.DHT11
4.2 模塊介紹
DHT11溫濕度傳感器
簡(jiǎn)介
DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測(cè)溫元件,并與一個(gè)高性能8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比極高等優(yōu)點(diǎn)。每個(gè)DHT11傳感器都在極為精確的濕度校驗(yàn)室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲(chǔ)存在OTP內(nèi)存中,傳感器內(nèi)部在檢測(cè)信號(hào)的處理過(guò)程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡(jiǎn)易快捷。超小的體積、極低的功耗,信號(hào)傳輸距離可達(dá)20米以上,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場(chǎng)合的最佳選則。產(chǎn)品為 4 針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。
接線
DHT11編碼步驟
- 主機(jī)先拉高data
- 拉低data延遲18ms
- 拉高data(通過(guò)此操作將單片機(jī)引腳設(shè)置為輸入)。
- 從機(jī)拉低data,主機(jī)讀取到data線被拉低持續(xù)80us后從機(jī)拉高data線, 持續(xù)80us,直到高電平結(jié)束,意味著主機(jī)可以開始接受數(shù)據(jù)。
- 主機(jī)先把data線拉高(io設(shè)置為輸入)
- 從機(jī)把data線拉低,主機(jī)讀取data線電平,直到低電平結(jié)束(大約50us)
- 從機(jī)拉高data線后,延遲40us左右(28~70us之間)主機(jī)再次讀取data線電平,如果為低電平,則為“0”,如果為高電平,則為“1”。
- 繼續(xù)重復(fù)上述1,2步驟累計(jì)40次。
ESP-01S WIFI模塊
簡(jiǎn)介
ESP8266 系列模組是深圳市安信可科技有限公司開發(fā)的一系列基于樂(lè)鑫ESP8266的低功耗UART-WiFi芯片模組,可以方便地進(jìn)行二次開發(fā),接入云端服務(wù),實(shí)現(xiàn)手機(jī)3/4G全球隨時(shí)隨地的控制,加速產(chǎn)品原型設(shè)計(jì)。
尺寸、管腳定義
ESP8266的指令介紹
AT指令可以細(xì)分四種類型:
1.測(cè)試指令:AT+=?
該命令用于查詢?cè)O(shè)置指令的參數(shù)以及取值的范圍
2.查詢指令:AT+?
該命令用于返回參數(shù)的當(dāng)前值
3.設(shè)置指令:AT+=<’’’>
該命令用于設(shè)置用戶自定義的參數(shù)
4.執(zhí)行指令:AT+
該命令用于執(zhí)行受模塊內(nèi)部程序控制的變參數(shù)不可變的功能
ESP8266的指令測(cè)試
可以通過(guò)STM開發(fā)板轉(zhuǎn)為電平轉(zhuǎn)換的功能連接上ESP8266模塊在通過(guò)串口顯示窗口在PC機(jī)上熱輸入AT指令來(lái)進(jìn)行操作。
ESP8266的AT指令一覽
光照傳感器
簡(jiǎn)介
光敏傳感器是最常見(jiàn)的傳感器之一,它的種類繁多,主要有:光電管、光電倍增管、光敏電阻、光敏三極管、太陽(yáng)能電池、紅外線傳感器、紫外線傳感器、光纖式光電傳感器、色彩傳感器、CCD和CMOS圖像傳感器等。光傳感器是目前產(chǎn)量最多、應(yīng)用最廣的傳感器之一,它在自動(dòng)控制和非電量電測(cè)技術(shù)中占有非常重要的地位。光敏傳感器是利用光敏元件將光信號(hào)轉(zhuǎn)換為電信號(hào)的傳感器,它的敏感波長(zhǎng)在可見(jiàn)光波長(zhǎng)附近,包括紅外線波長(zhǎng)和紫外線波長(zhǎng)。光傳感器不只局限于對(duì)光的探測(cè),它還可以作為探測(cè)元件組成其他傳感器,對(duì)許多非電量進(jìn)行檢測(cè),只要將這些非電量轉(zhuǎn)換為光信號(hào)的變化即可。
總結(jié):照射光敏二極管的光強(qiáng)不同,通過(guò)光敏二極管的電流大小就不同,所以可以通過(guò)檢測(cè)電流大小,達(dá)到檢測(cè)光強(qiáng)的目的。利用這個(gè)電流變化,我們串接一個(gè)電阻,就可以轉(zhuǎn)換成電壓的變化,從而通過(guò)ADC讀取電壓值,判斷外部光線的弱。
優(yōu)點(diǎn)
- 采用靈敏型光敏電阻傳感器
- 比較器輸出,信號(hào)干凈,波形好,驅(qū)動(dòng)能力超過(guò)15mA。
- 配可調(diào)電位器可調(diào)節(jié)檢測(cè)光線亮度
- 工作電壓3.3V-5V
- 輸出形式 :數(shù)字開關(guān)量輸出(0和1)
- 設(shè)有固定螺栓孔,方便安裝
原理圖
4.3 軟件設(shè)計(jì)
本項(xiàng)目利用了rt-thread的進(jìn)行系統(tǒng)控制,利用一些rt-thread的軟件包進(jìn)行物聯(lián)網(wǎng)上層驅(qū)動(dòng)的開發(fā)工作。并且通過(guò)利用RT-ThreadStudio加快編譯開發(fā)AB32的環(huán)境,使得整體開發(fā)效率較高。
rt-thread提供了豐富的軟件包可以直接使用,其系統(tǒng)架構(gòu)也是采用了系統(tǒng)與應(yīng)用分層的設(shè)計(jì)思想,使得開發(fā)者不用關(guān)注底層架構(gòu)的具體實(shí)現(xiàn)細(xì)節(jié),包括也不需要特別對(duì)riscv架構(gòu)有很深刻的理解也能夠快速上手。這對(duì)于嵌入式應(yīng)用開發(fā)者來(lái)說(shuō)非常的友好,在現(xiàn)在stm32漲價(jià)缺貨的情況下,也能夠很好的進(jìn)行業(yè)務(wù)邏輯的設(shè)計(jì)。
軟件的設(shè)計(jì)流程如下:
本項(xiàng)目主要的難點(diǎn)在于物聯(lián)網(wǎng)云平臺(tái)與設(shè)備的連接問(wèn)題,采用MQTT連接物聯(lián)網(wǎng)平臺(tái),目前ESP8266已經(jīng)做的非常的穩(wěn)定了,且在阿里云物聯(lián)網(wǎng)平臺(tái)上也提供了相關(guān)的SDK配置的教程,可以連接上自己的服務(wù)器即可。由于ESP8266只有一個(gè)半串口,UART0可以收發(fā),UART1只有TX,所以可以將ESP8266的串口打印映射到UART1,而將UART0作為與單片機(jī)通信的協(xié)議串口。這樣就能夠解決單片機(jī)與模塊之間的通信問(wèn)題,接下來(lái)就是自定義協(xié)議,其通信協(xié)議的制定按照協(xié)議框架即可。
而在云端配置web時(shí),阿里云平臺(tái)也可以利用阿里云IoT Studio進(jìn)行控制和顯示界面設(shè)計(jì),其直接可以調(diào)用內(nèi)部接口,將數(shù)據(jù)進(jìn)行控制和顯示,非常的方便。
而單片機(jī)則主要負(fù)責(zé)業(yè)務(wù)處理、協(xié)議解析、傳感器數(shù)據(jù)采集。在進(jìn)行程序設(shè)計(jì)的時(shí)候,可以按照posix API接口進(jìn)行設(shè)計(jì),最后各種模塊之間各種獨(dú)立工作,完成整個(gè)項(xiàng)目設(shè)計(jì)。
5 部分核心代碼
/開啟傳感器發(fā)送線程 static void send_thread_entry(void *parameter) {uint8_t temp_val = 22;uint8_t humi_val = 18;uint8_t light_val = 102;while(1){//發(fā)送溫度// if(temp_val>40)// {// temp_val = 0;// }// else// {// temp_val++;// }rt_kprintf("send temp val is %d\n", show_temp);ab_send_msg(AB_TEMP, 0, show_temp);rt_thread_mdelay(1000 * 10); //10s 上傳//發(fā)送濕度// if(humi_val>40)// {// humi_val = 0;// }// else// {// humi_val++;// }rt_kprintf("send temp val is %d\n", show_humi);ab_send_msg(AB_HUMI, 0, show_humi);rt_thread_mdelay(1000 * 10); //10s 上傳//發(fā)送光線強(qiáng)度// if(light_val>500)// {// light_val = 0;// }// else// {// light_val++;// }rt_kprintf("send temp val is %d\n", 69);ab_send_msg(AB_LIGHT, 0, show_light);rt_thread_mdelay(1000 * 10); //10s 上傳} }void sensor_send_task(void) {send_thread = rt_thread_create("sendto", send_thread_entry, RT_NULL, 1024, 18, 10);if (send_thread != RT_NULL){rt_thread_startup(send_thread);}else{rt_kprintf("creat task err!\n");} }int main(void) {uint32_t val;rt_uint8_t temp,humi;int cnt = 0;int show_flag = 0;rt_kprintf("Hello, world\n");ssd1306_bitmap();dht11_init_pin();ab32_uart1_init();sensor_send_task();blux_v20_Init();fan_init();hdr_init();ptc_init();fan_off();hdr_off();ptc_off();//RGBLeds_Init();while (1){//RunningWaterLamp();//獲取LED值if(get_ctrl_val(ESP_LED, &val)){rt_kprintf("led val is %d\n", val);}//獲取FAN值if(get_ctrl_val(ESP_FAN, &val)){show_fan_flag = 1;show_fan_val = val;if(val == 1){fan_on();}else {fan_off();}rt_kprintf("fan val is %d\n", val);}//獲取PTC值if(get_ctrl_val(ESP_PTC, &val)){show_ptc_flag = 1;show_ptc_val = val;if(val == 1){ptc_on();}else {ptc_off();}rt_kprintf("ptc val is %d\n", val);}//獲取加濕器值if(get_ctrl_val(ESP_HUMIDIFIER, &val)){show_hdr_flag = 1;show_hdr_val = val;if(val == 1){hdr_on();}else {hdr_off();}rt_kprintf("humidifier val is %d\n", val);}rt_thread_mdelay(500);get_temp_humi(&temp, &humi);show_temp = temp;show_humi = humi;// show_light = range()%100;if(show_fan_flag || show_ptc_flag || show_hdr_flag){//說(shuō)明有數(shù)據(jù),立即刷新show_net_set(show_fan_flag, show_ptc_flag, show_hdr_flag, val);cnt = 0;show_fan_flag = 0;show_ptc_flag = 0;show_hdr_flag = 0;}cnt++;if(cnt >= 10){if(show_flag == 0){ssd1306_set_main_1(show_temp, show_humi, show_light);show_flag = 1; // fan_on(); // hdr_off(); // ptc_off();}else if(show_flag == 1){ssd1306_set_main_2(show_fan_val, show_ptc_val, show_hdr_val);show_flag = 0; // fan_off(); // hdr_on(); // ptc_on();}else{}cnt = 0;}} }🧿 選題指導(dǎo), 項(xiàng)目分享:
https://blog.csdn.net/molodi/article/details/125933857
總結(jié)
以上是生活随笔為你收集整理的物联网毕设选题 - 单片机智能远程宠物喂养系统(物联网 esp8266 stm32)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【NOJ1130】【算法实验三】poly
- 下一篇: python红楼梦人物词频统计_通过数据