|
資料總覽:
0.png (51.45 KB, 下載次數(shù): 51)
下載附件
2017-11-24 00:46 上傳
基于云服務(wù)的遠(yuǎn)程植物看管助手pptx內(nèi)容預(yù)覽:
0.png (222.43 KB, 下載次數(shù): 62)
下載附件
2017-11-24 01:59 上傳
0.png (165.4 KB, 下載次數(shù): 56)
下載附件
2017-11-24 01:59 上傳
0.png (408.95 KB, 下載次數(shù): 48)
下載附件
2017-11-24 01:59 上傳
0.png (90.11 KB, 下載次數(shù): 43)
下載附件
2017-11-24 02:00 上傳
0.png (246.43 KB, 下載次數(shù): 47)
下載附件
2017-11-24 02:00 上傳
0.png (280.11 KB, 下載次數(shù): 57)
下載附件
2017-11-24 02:00 上傳
科技創(chuàng)新項(xiàng)目申報(bào)表
作品選題的確定(原專利、產(chǎn)品或生活、生產(chǎn)中不足之處) | 當(dāng)前市場(chǎng)上的智能花盆類產(chǎn)品其智能性大多局限于對(duì)花盆本身的自動(dòng)澆水功能,或者通過(guò)添加藍(lán)牙或者WiFi模塊實(shí)現(xiàn)與近距離的手機(jī)客戶端通信功能。這些功能雖然解決了用戶不能及時(shí)看護(hù)問(wèn)題,但是不夠智能化。因?yàn)閷?duì)于植物來(lái)說(shuō)最重要的是澆水量問(wèn)題,不同植物所需的澆水量不同,現(xiàn)有的自動(dòng)澆水功能多為設(shè)定一個(gè)統(tǒng)一的土壤濕度閾值,當(dāng)濕度低于此閾值時(shí)開啟自動(dòng)澆水功能。因此對(duì)一些需水量很大或者耐干旱的植物并不適用。同樣適用于近距離通過(guò)手機(jī)客戶端控制花盆澆水的功能也不能滿足長(zhǎng)期遠(yuǎn)距離出差用戶的使用需求。 | 創(chuàng)新之處 | 與市場(chǎng)上現(xiàn)有產(chǎn)品相比,本作品創(chuàng)新之處在于具有遠(yuǎn)程控制與智能澆水的功能。無(wú)論用戶身處何地,只需手機(jī)連上網(wǎng)絡(luò),打開客戶端便可實(shí)時(shí)獲取當(dāng)前植物信息;對(duì)養(yǎng)花愛(ài)好者可以根據(jù)當(dāng)前土壤濕度及光照強(qiáng)度實(shí)現(xiàn)遠(yuǎn)程一鍵澆水功能,這也解決了對(duì)不同植物的適用性問(wèn)題。同時(shí)對(duì)于設(shè)備的供電問(wèn)題,本作品結(jié)合外接電源、內(nèi)置電源以及太陽(yáng)能電池充電三種功能,可以不必?fù)?dān)心設(shè)備供電問(wèn)題。 | 基本思路 | 對(duì)于解決遠(yuǎn)程控制問(wèn)題采用云服務(wù)模式,移動(dòng)客戶端要有適用的app軟件,智能設(shè)備端要結(jié)合功能添加合適的傳感器。因此主要從兩大部分考慮,硬件和軟件部分。 (1)硬件部分:電源和控制部分。電源部分設(shè)計(jì)主要是實(shí)現(xiàn)主電源意外斷開后備用電源立刻供電,并且備用電源采用太陽(yáng)能電池板充電,實(shí)現(xiàn)當(dāng)電池電壓低于一定值時(shí)自動(dòng)充電的功能�?刂撇糠种饕菍�(shí)現(xiàn)各傳感器模塊將采集的數(shù)據(jù)信息上傳至 MCU,并通過(guò) WIFI 模塊將數(shù)據(jù)上傳至云端。生長(zhǎng)環(huán)境信息采集分為光照強(qiáng)度傳感器 BH1750,溫濕度傳感器 DHT11,土壤濕度傳感器三部分。并且設(shè)計(jì)有微型水泵實(shí)現(xiàn)澆水功能。 (2)軟件部分:設(shè)備端控制程序的設(shè)計(jì)以及客戶端app的設(shè)計(jì)。設(shè)備端控制程序?qū)崿F(xiàn)將采集的信息融合上傳至云端并且接收控制命令。app部分則主要實(shí)現(xiàn)接收融合后的信息并且可以實(shí)現(xiàn)控制功能。 | 集體作品中申報(bào)者各自的工作分工 | 張曼:負(fù)責(zé)整體框架設(shè)計(jì)、硬件部分設(shè)計(jì)、所用材料搜集、資料查找與報(bào)告的撰寫。 李巖:負(fù)責(zé)軟件程序的設(shè)計(jì)調(diào)試、整個(gè)實(shí)驗(yàn)平臺(tái)的檢測(cè)與調(diào)試。 | 進(jìn)一步完善該作品的設(shè)想 | 基于云服務(wù)的遠(yuǎn)程植物看管助手系統(tǒng)作為物聯(lián)網(wǎng)接入點(diǎn)可以在原硬件基礎(chǔ)上進(jìn)行擴(kuò)展,以此為基點(diǎn)可實(shí)現(xiàn)遠(yuǎn)程控制家中所有接入設(shè)備。在接下來(lái)打算設(shè)計(jì)擴(kuò)展口,以便于其他設(shè)備通過(guò)基于云服務(wù)的遠(yuǎn)程植物看管助手系統(tǒng)接入云端。只要家中擁有了植物看管助手,那么如果有其他接入需求,只需簡(jiǎn)單升級(jí)即可,不需要更換硬件設(shè)備便可輕松實(shí)現(xiàn)。 | | 1.作品研究技術(shù)說(shuō)明書(論文) 0 件。 2.作品附件(圖紙、圖表、調(diào)查問(wèn)卷表等) 0 件。 3.作品數(shù)據(jù)光盤 0 件。 4.其他 6 件。 總計(jì): 6 件。 說(shuō)明:申報(bào)材料可為復(fù)印件,均不退回,請(qǐng)申報(bào)者自留底稿。 |
| 我(們)確認(rèn)所有申報(bào)資料屬實(shí),服從大賽評(píng)委會(huì)的決議。 申報(bào)者(第一作者)簽名: 監(jiān)護(hù)人簽名(或班主任代表): 年 月 日 | 項(xiàng)目摘要 | 基于云服務(wù)的遠(yuǎn)程植物看管助手是基于云概念的智能植物看管平臺(tái),通過(guò)手機(jī)客戶端接入云端與智能硬件相連實(shí)現(xiàn)遠(yuǎn)程控制的功能。其硬件平臺(tái)采用以 ARM Cortex-M3為內(nèi)核的 STM32 高性能嵌入式處理芯片,通過(guò)采集植物所處土壤的濕度、外界環(huán)境的溫度和濕度、外界光照強(qiáng)度等信息并實(shí)時(shí)上傳至移動(dòng) APP 客戶端,便于植物主人無(wú)論在家還是遠(yuǎn)在異地都能實(shí)時(shí)掌握植物的生長(zhǎng)狀態(tài)。移動(dòng)客戶端 APP不僅可以接收信息,還可以發(fā)送指令。只要認(rèn)為植物需要澆水,便可發(fā)送指令遠(yuǎn)程管理。另外如果沒(méi)有時(shí)間或所處環(huán)境沒(méi)有網(wǎng)絡(luò),智能硬件端設(shè)定有土壤濕度最低閾值,只要達(dá)到澆水要求,系統(tǒng)就會(huì)自動(dòng)開啟澆水功能。而且倘若主人不善養(yǎng)殖花卉,可以根據(jù)花卉的生長(zhǎng)環(huán)境生存周期不同,設(shè)置不同閾值,有區(qū)分的來(lái)幫助主人澆水養(yǎng)花,因此無(wú)需擔(dān)心無(wú)人照顧而使植物缺水。另外此系統(tǒng)還具有語(yǔ)音播報(bào)功能,當(dāng)檢測(cè)到人體紅外信號(hào)時(shí)會(huì)播報(bào)植物信息;當(dāng)植物缺水時(shí)會(huì)語(yǔ)音提醒澆水。智能移動(dòng)花管家的設(shè)計(jì)秉承“環(huán)保、低碳、節(jié)能”理念。采用移動(dòng)電源供電,另外可以選擇外接充電方式或太陽(yáng)能電池板進(jìn)行充電。設(shè)計(jì)太陽(yáng)能充電的目的在于長(zhǎng)時(shí)間無(wú)人看管條件下當(dāng)電源電量低于一定值時(shí)可以自動(dòng)啟動(dòng)太陽(yáng)能充電,確保系統(tǒng)不會(huì)斷電。因此無(wú)論在何種環(huán)境下都可以放心使用。 |
總結(jié)展望
設(shè)計(jì)擴(kuò)展口,便于家中其他設(shè)備通過(guò)基于云服務(wù)的遠(yuǎn)程植物看管助手系統(tǒng)接入云端。只要家中擁有了植物看管助手,那么如果有其他接入需求,只需簡(jiǎn)單升級(jí)即可,不需要更換硬件設(shè)備便可輕松實(shí)現(xiàn)。
STM32單片機(jī)源程序如下:
- #include "include.h"
- #include "bh1750.h"
- //#include "max7219.h"
- UART_HandleTypeDef UART_HandleStruct;
- Pro_Wait_AckTypeDef Wait_AckStruct;
- Device_WirteTypeDef Device_WirteStruct;
- Device_ReadTypeDef Device_ReadStruct;
- Pro_M2W_ReturnInfoTypeDef Pro_M2W_ReturnInfoStruct;
- Pro_CommonCmdTypeDef Pro_CommonCmdStruct;
- Pro_W2D_WifiStatusTypeDef Pro_W2D_WifiStatusStruct;
- Pro_CommonCmdTypeDef Pro_M2WResetCmdStruct;
- Pro_D2W_ConfigWifiTypeDef Pro_D2WConfigCmdStruct;
- Pro_D2W_ReportDevStatusTypeDef Pro_D2W_ReportStatusStruct;
- KEY_StatusTypeDef KEY_Status;
- uint8_t SN;
- uint32_t SystemTimeCount = 0;
- uint32_t ReportTimeCount = 0;
- uint8_t Set_LedStatus = 0;
- uint8_t gatersensorflag=0;
- uint8_t gaterpowerflag=0;
- uint8_t flat = 1;
- uint8_t watertimeflag=0;
- uint8_t Yyflag=0;
- //u8 Tab[]={0x00,0x42,0xe7,0x00,0x00,0x81,0x42,0x3c};//笑臉
- //u8 Tab2[]={0x00,0xe7,0x42,0x00,0x00,0x3c,0x42,0x81};//哭
- void McuStatusInit(void)
- {
- memset(&UART_HandleStruct, 0, sizeof(UART_HandleStruct));
- memset(&Pro_CommonCmdStruct, 0, sizeof(Pro_CommonCmdStruct));
- Pro_CommonCmdStruct.Pro_HeadPart.Head[0] = 0XFF;
- Pro_CommonCmdStruct.Pro_HeadPart.Head[1] = 0XFF;
-
- memset(&Pro_CommonCmdStruct, 0, sizeof(Pro_CommonCmdStruct));
- Pro_CommonCmdStruct.Pro_HeadPart.Head[0] = 0XFF;
- Pro_CommonCmdStruct.Pro_HeadPart.Head[1] = 0XFF;
-
-
- memset(&Pro_M2W_ReturnInfoStruct, 0, sizeof(Pro_M2W_ReturnInfoStruct));
- Pro_M2W_ReturnInfoStruct.Pro_HeadPart.Head[0] = 0XFF;
- Pro_M2W_ReturnInfoStruct.Pro_HeadPart.Head[1] = 0XFF;
- Pro_M2W_ReturnInfoStruct.Pro_HeadPart.Len = exchangeBytes(sizeof(Pro_M2W_ReturnInfoStruct) - 4);
- Pro_M2W_ReturnInfoStruct.Pro_HeadPart.Cmd = Pro_D2W__GetDeviceInfo_Ack_Cmd;
- memcpy(Pro_M2W_ReturnInfoStruct.Pro_ver, PRO_VER, strlen(PRO_VER));
- memcpy(Pro_M2W_ReturnInfoStruct.P0_ver, P0_VER, strlen(P0_VER));
- memcpy(Pro_M2W_ReturnInfoStruct.Hard_ver, HARD_VER, strlen(HARD_VER));
- memcpy(Pro_M2W_ReturnInfoStruct.Soft_ver, SOFT_VER, strlen(SOFT_VER));
- memcpy(Pro_M2W_ReturnInfoStruct.Product_Key, PRODUCT_KEY, strlen(PRODUCT_KEY));
- Pro_M2W_ReturnInfoStruct.Binable_Time = exchangeBytes(0);;
-
- memset(&Pro_D2W_ReportStatusStruct, 0, sizeof(Pro_D2W_ReportStatusStruct));
- Pro_D2W_ReportStatusStruct.Pro_HeadPartP0Cmd.Pro_HeadPart.Head[0] = 0XFF;
- Pro_D2W_ReportStatusStruct.Pro_HeadPartP0Cmd.Pro_HeadPart.Head[1] = 0XFF;
- Pro_D2W_ReportStatusStruct.Pro_HeadPartP0Cmd.Pro_HeadPart.Len = exchangeBytes(sizeof(Pro_D2W_ReportStatusStruct) - 4);
- Pro_D2W_ReportStatusStruct.Pro_HeadPartP0Cmd.Pro_HeadPart.Cmd = Pro_D2W_P0_Cmd;
-
- memset(&Pro_M2WResetCmdStruct, 0, sizeof(Pro_M2WResetCmdStruct));
- Pro_M2WResetCmdStruct.Pro_HeadPart.Head[0] = 0XFF;
- Pro_M2WResetCmdStruct.Pro_HeadPart.Head[1] = 0XFF;
- Pro_M2WResetCmdStruct.Pro_HeadPart.Len = exchangeBytes(sizeof(Pro_M2WResetCmdStruct) - 4);
- Pro_M2WResetCmdStruct.Pro_HeadPart.Cmd = Pro_D2W_ResetWifi_Cmd;
-
- memset(&Pro_D2WConfigCmdStruct, 0, sizeof(Pro_D2WConfigCmdStruct));
- Pro_D2WConfigCmdStruct.Pro_HeadPart.Head[0] = 0XFF;
- Pro_D2WConfigCmdStruct.Pro_HeadPart.Head[1] = 0XFF;
- Pro_D2WConfigCmdStruct.Pro_HeadPart.Len = exchangeBytes(sizeof(Pro_D2WConfigCmdStruct) - 4);
- Pro_D2WConfigCmdStruct.Pro_HeadPart.Cmd = Pro_D2W_ControlWifi_Config_Cmd;
- memset(&Device_WirteStruct, 0, sizeof(Device_WirteStruct));
- // Device_WirteStruct.Motor = exchangeBytes(0x05); //關(guān)閉電機(jī)
-
- memset(&Device_ReadStruct, 0, sizeof(Device_ReadStruct));
-
- memset(&KEY_Status, 0, sizeof(KEY_Status));
-
- }
- void Printf_SystemRccClocks(void)
- {
- uint8_t SYSCLKSource;
- RCC_ClocksTypeDef SystemRCC_Clocks;
- SYSCLKSource = RCC_GetSYSCLKSource();
- RCC_GetClocksFreq(&SystemRCC_Clocks);
- }
- void printf_DevStatus(void)
- {
- Printf_TimeDisplay();
-
- }
-
- void Hal_Init(void)
- {
- TIM3_Int_Init(7199,9); //1ms SystemTimeCount + 1
- KEY_GPIO_Init();
- Motor_Init();
- Delay_Init(72);
- DHT11_Init(); //溫濕度傳感器初始化
- // RGB_LED_Init();
- LED_GPIO_Init();
- Init_BH1750(); //光強(qiáng)度傳感器初始化
- AdcInit(); //ADC初始化
- // SPI1_Init(); //led點(diǎn)陣初始化
- // Init_MAX7219();
- }
- void ReportDevStatusHandle(void);
- int main(void)
- {
- u16 adcx,adc2,i,j;
- float ADC_ConvertedValueLocal,iol_temp,Vdd;
-
- /* 系統(tǒng)初始化*/
- SystemInit();
- UARTx_Init();
- Printf_SystemRccClocks();
- RTC_Init();
- /*應(yīng)用初始化*/
- Hal_Init();
- /* 初始化各類型數(shù)據(jù)幀*/
- McuStatusInit();
- while(1)
- {
-
- MessageHandle(); //處理來(lái)自串口的數(shù)據(jù)幀
- KEY_Handle(); //處理來(lái)自按鍵的事件
-
-
- if(gatersensorflag !=0) //上傳信息
- {
- gatersensorflag = 0;
-
- Start_BH1750(); //光強(qiáng)
- Delay_ms(180);
- Read_BH1750();
- Convert_BH1750();
- Device_ReadStruct.light =Light_crc();
-
- DHT11_Read_Data(&Device_ReadStruct.Temperature, &Device_ReadStruct.Humidity); //溫濕度
-
- adcx=AdcGetValHum(); //土壤濕度
- ADC_ConvertedValueLocal = (float)adcx/4096*3.3;
- iol_temp =100- (ADC_ConvertedValueLocal/3.3)*100 -32;
- Device_ReadStruct.iol_temp=iol_temp;
- }
-
- //有人時(shí)播放語(yǔ)音
- if(HW == 1 && iol_temp >=45 && Yyflag == 1)
- {
- UART2_Send_DATA(0xAA);
- UART2_Send_DATA(0x07);
- UART2_Send_DATA(0x02);
- UART2_Send_DATA(0x00);
- UART2_Send_DATA(0x03);
- UART2_Send_DATA(0xB6);
- //Delay_ms(6000);
- Yyflag = 0;
- }
-
- if(iol_temp <43) //如果土壤濕度小于43,語(yǔ)音提示
- {
- UART2_Send_DATA(0xAA);
- UART2_Send_DATA(0x07);
- UART2_Send_DATA(0x02);
- UART2_Send_DATA(0x00);
- UART2_Send_DATA(0x01);
- UART2_Send_DATA(0xB4);
- Delay_ms(1500);
- }
-
- if(flat == 1) //客戶端發(fā)出控制命令,關(guān)閉自動(dòng)澆水模式
- {
- if(iol_temp <45) //土壤濕度小于45
- {
- JDQ_ON(); //打開澆水
- //間隔一定時(shí)間關(guān)閉澆水
- Delay_ms(3000);
- JDQ_OFF();
- }
- else //如果土壤濕度大于45
- {
- JDQ_OFF(); //關(guān)閉澆水
- }
- }
-
- //測(cè)量備用電源電壓
- if(gaterpowerflag !=0)
- {
- gaterpowerflag=0;
-
- adc2=AdcGetValuePower();
- Vdd=(float)adc2*2.55*(3.3/4096);
-
- if(Vdd<1.7) // 如果電源電壓低于6.4V,開啟繼電器充電
- {
- Power_ON();
- }
- else
- {
- Power_OFF();
- }
- }
-
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼 資料列表:
附件5:程序\
科技創(chuàng)新項(xiàng)目查新報(bào)告.doc
科技創(chuàng)新項(xiàng)目申報(bào)表.doc
附件1:小米智能花盆.doc
附件2:智能花盆設(shè)計(jì)報(bào)告.doc
附件3:基于ZigBee3G網(wǎng)絡(luò)的溫室無(wú)線遠(yuǎn)程植物生態(tài)監(jiān)測(cè)系統(tǒng).caj
附件4:原理圖.PDF.lnk
附件6:基于云服務(wù)的遠(yuǎn)程植物看管助手.pptx
所有資料51hei提供下載:
機(jī)械-張曼-基于云服務(wù)的遠(yuǎn)程植物看管助手.rar
(13.3 MB, 下載次數(shù): 35)
2017-11-24 00:51 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|