国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

單片機項目分享 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng) - 物聯(lián)網(wǎng) esp8266

這篇具有很好參考價值的文章主要介紹了單片機項目分享 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng) - 物聯(lián)網(wǎng) esp8266。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


0 前言

?? 這兩年開始畢業(yè)設計和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設題目缺少創(chuàng)新和亮點,往往達不到畢業(yè)答辯的要求,這兩年不斷有學弟學妹告訴學長自己做的項目系統(tǒng)達不到老師的要求。

為了大家能夠順利以及最少的精力通過畢設,學長分享優(yōu)質畢業(yè)設計項目,今天要分享的是

?? 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng)

??學長這里給一個題目綜合評分(每項滿分5分)

  • 難度系數(shù):4分
  • 工作量:4分
  • 創(chuàng)新點:3分

1 簡介

隨著社會的發(fā)展和人民生活水平的不斷提高,也有著非常多的工作壓力。與人的交往也會有很多的壓力,于是,越來越多的人選擇養(yǎng)一只小寵物陪伴自己。但是目前,寵物不像人一樣,可以選擇搭建自己的舒適居住環(huán)境,在這種背景和情況下,做一個智能的寵物家居系統(tǒng)顯得非常有趣和有必要。
本項目基于中科藍訊(Bluetrum)AB32VG1開發(fā)板,結合rt-thread物聯(lián)網(wǎng)操作系統(tǒng),同時外接ESP8266模塊,通過MQTT協(xié)議連接阿里云物聯(lián)網(wǎng)平臺。開發(fā)板上云后,就可以實時的上傳開發(fā)板采集到的傳感器數(shù)據(jù),同時通過云平臺提供的web界面設計,可以展示出數(shù)據(jù)的值,也可以通過控件來完成對設備的控制,從而實現(xiàn)遠程監(jiān)控的作用。

2 主要器件

  • stm32開發(fā)板
  • rt-thread物聯(lián)網(wǎng)操作系統(tǒng)
  • ESP8266模塊
  • MQTT協(xié)議連接阿里云物聯(lián)網(wǎng)平臺
  • B-LUX-V20光照檢測模塊
  • SSD_1306 OLED模塊
  • 風扇 加熱片 加濕器
  • DHT11溫濕度傳感器

3 實現(xiàn)效果

單片機項目分享 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng) - 物聯(lián)網(wǎng) esp8266,單片機
單片機項目分享 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng) - 物聯(lián)網(wǎng) esp8266,單片機
單片機項目分享 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng) - 物聯(lián)網(wǎng) esp8266,單片機

4 設計原理

4.1 硬件部分

本項目采用AB32VG1開發(fā)板作為主要的控制中心,連接ESP8266模塊,整體的架構如下框圖所示:
單片機項目分享 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng) - 物聯(lián)網(wǎng) esp8266,單片機
本項目用到的AB32VG1開發(fā)板的硬件接口有:

1.兩路I2C,主要連接OLED和光照傳感器

2.兩路UART,一路用于外接下載和調試,另外一路用于連接8266模塊

3.GPIO控制,由于風扇,加熱片,加濕器都是5V供電,所以需要利用光耦隔離輸出

本模塊主要用到的外設:

1.ESP8266模塊

2.B-LUX-V20光照檢測模塊

3.SSD_1306 OLED模塊

4.風扇

5.加熱片

6.加濕器

7.DHT11

4.2 模塊介紹

DHT11溫濕度傳感器

簡介
單片機項目分享 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng) - 物聯(lián)網(wǎng) esp8266,單片機
DHT11數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器。它應用專用的數(shù)字模塊采集技術和溫濕度傳感技術,確保產品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快響應、抗干擾能力強、性價比極高等優(yōu)點。每個DHT11傳感器都在極為精確的濕度校驗室中進行校準。校準系數(shù)以程序的形式儲存在OTP內存中,傳感器內部在檢測信號的處理過程中要調用這些校準系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20米以上,使其成為各類應用甚至最為苛刻的應用場合的最佳選則。產品為 4 針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。
接線
單片機項目分享 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng) - 物聯(lián)網(wǎng) esp8266,單片機
DHT11編碼步驟

  1. 單片機上點后1s內不讀取(不重要)
  2. 主機(單片機)發(fā)送起始信號:
    • 主機先拉高data
    • 拉低data延遲18ms
    • 拉高data(通過此操作將單片機引腳設置為輸入)。
  3. 從機(DHT11)收到起始信號后進行應答:
    • 從機拉低data,主機讀取到data線被拉低持續(xù)80us后從機拉高data線, 持續(xù)80us,直到高電平結束,意味著主機可以開始接受數(shù)據(jù)。
  4. 主機開始接收數(shù)據(jù):
    • 主機先把data線拉高(io設置為輸入)
    • 從機把data線拉低,主機讀取data線電平,直到低電平結束(大約50us)
    • 從機拉高data線后,延遲40us左右(28~70us之間)主機再次讀取data線電平,如果為低電平,則為“0”,如果為高電平,則為“1”。
    • 繼續(xù)重復上述1,2步驟累計40次。

ESP-01S WIFI模塊

簡介

ESP8266 系列模組是深圳市安信可科技有限公司開發(fā)的一系列基于樂鑫ESP8266的低功耗UART-WiFi芯片模組,可以方便地進行二次開發(fā),接入云端服務,實現(xiàn)手機3/4G全球隨時隨地的控制,加速產品原型設計。
單片機項目分享 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng) - 物聯(lián)網(wǎng) esp8266,單片機
尺寸、管腳定義
單片機項目分享 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng) - 物聯(lián)網(wǎng) esp8266,單片機
ESP8266的指令介紹

AT指令可以細分四種類型:
1.測試指令:AT+=?
該命令用于查詢設置指令的參數(shù)以及取值的范圍

2.查詢指令:AT+?
該命令用于返回參數(shù)的當前值

3.設置指令:AT+=<’’’>
該命令用于設置用戶自定義的參數(shù)

4.執(zhí)行指令:AT+
該命令用于執(zhí)行受模塊內部程序控制的變參數(shù)不可變的功能
單片機項目分享 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng) - 物聯(lián)網(wǎng) esp8266,單片機ESP8266的指令測試
可以通過STM開發(fā)板轉為電平轉換的功能連接上ESP8266模塊在通過串口顯示窗口在PC機上熱輸入AT指令來進行操作。
單片機項目分享 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng) - 物聯(lián)網(wǎng) esp8266,單片機

ESP8266的AT指令一覽
單片機項目分享 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng) - 物聯(lián)網(wǎng) esp8266,單片機

光照傳感器

簡介
光敏傳感器是最常見的傳感器之一,它的種類繁多,主要有:光電管、光電倍增管、光敏電阻、光敏三極管、太陽能電池、紅外線傳感器、紫外線傳感器、光纖式光電傳感器、色彩傳感器、CCD和CMOS圖像傳感器等。光傳感器是目前產量最多、應用最廣的傳感器之一,它在自動控制和非電量電測技術中占有非常重要的地位。光敏傳感器是利用光敏元件將光信號轉換為電信號的傳感器,它的敏感波長在可見光波長附近,包括紅外線波長和紫外線波長。光傳感器不只局限于對光的探測,它還可以作為探測元件組成其他傳感器,對許多非電量進行檢測,只要將這些非電量轉換為光信號的變化即可。
總結:照射光敏二極管的光強不同,通過光敏二極管的電流大小就不同,所以可以通過檢測電流大小,達到檢測光強的目的。利用這個電流變化,我們串接一個電阻,就可以轉換成電壓的變化,從而通過ADC讀取電壓值,判斷外部光線的弱。
單片機項目分享 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng) - 物聯(lián)網(wǎng) esp8266,單片機

優(yōu)點

  • 采用靈敏型光敏電阻傳感器
  • 比較器輸出,信號干凈,波形好,驅動能力超過15mA。
  • 配可調電位器可調節(jié)檢測光線亮度
  • 工作電壓3.3V-5V
  • 輸出形式 :數(shù)字開關量輸出(0和1)
  • 設有固定螺栓孔,方便安裝

原理圖

單片機項目分享 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng) - 物聯(lián)網(wǎng) esp8266,單片機

4.3 軟件設計

本項目利用了rt-thread的進行系統(tǒng)控制,利用一些rt-thread的軟件包進行物聯(lián)網(wǎng)上層驅動的開發(fā)工作。并且通過利用RT-ThreadStudio加快編譯開發(fā)AB32的環(huán)境,使得整體開發(fā)效率較高。

rt-thread提供了豐富的軟件包可以直接使用,其系統(tǒng)架構也是采用了系統(tǒng)與應用分層的設計思想,使得開發(fā)者不用關注底層架構的具體實現(xiàn)細節(jié),包括也不需要特別對riscv架構有很深刻的理解也能夠快速上手。這對于嵌入式應用開發(fā)者來說非常的友好,在現(xiàn)在stm32漲價缺貨的情況下,也能夠很好的進行業(yè)務邏輯的設計。

軟件的設計流程如下:

單片機項目分享 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng) - 物聯(lián)網(wǎng) esp8266,單片機

本項目主要的難點在于物聯(lián)網(wǎng)云平臺與設備的連接問題,采用MQTT連接物聯(lián)網(wǎng)平臺,目前ESP8266已經(jīng)做的非常的穩(wěn)定了,且在阿里云物聯(lián)網(wǎng)平臺上也提供了相關的SDK配置的教程,可以連接上自己的服務器即可。由于ESP8266只有一個半串口,UART0可以收發(fā),UART1只有TX,所以可以將ESP8266的串口打印映射到UART1,而將UART0作為與單片機通信的協(xié)議串口。這樣就能夠解決單片機與模塊之間的通信問題,接下來就是自定義協(xié)議,其通信協(xié)議的制定按照協(xié)議框架即可。

而在云端配置web時,阿里云平臺也可以利用阿里云IoT Studio進行控制和顯示界面設計,其直接可以調用內部接口,將數(shù)據(jù)進行控制和顯示,非常的方便。

而單片機則主要負責業(yè)務處理、協(xié)議解析、傳感器數(shù)據(jù)采集。在進行程序設計的時候,可以按照posix API接口進行設計,最后各種模塊之間各種獨立工作,完成整個項目設計。文章來源地址http://www.zghlxwxcb.cn/news/detail-827803.html

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ā)送光線強度
        // 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)
        {
            //說明有數(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;
        }
    }
}

5 最后

到了這里,關于單片機項目分享 單片機(stm32)遠程智能寵物喂養(yǎng)系統(tǒng) - 物聯(lián)網(wǎng) esp8266的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包