物聯(lián)網(wǎng)采控系統(tǒng)「第二屆立創(chuàng)商城電子制作節(jié)30強(qiáng)作品」
2017-11-08 10:49:39閱讀量:15562來(lái)源:立創(chuàng)商城
本作品為第二屆立創(chuàng)商城電子制作節(jié)30強(qiáng)入圍作品,作者立創(chuàng)社區(qū)ID:求生之路;轉(zhuǎn)載請(qǐng)注明出處,未經(jīng)允許不得用作商業(yè)用途。作品原鏈接:http://club.szlcsc.com/article/details_6695_1.html。
一、作品簡(jiǎn)介
現(xiàn)在的物聯(lián)網(wǎng)設(shè)備品種太多,如果要把各類(lèi)的協(xié)議標(biāo)準(zhǔn)起來(lái)也不可能,例如MODBUS也只是標(biāo)準(zhǔn)了協(xié)議,并沒(méi)標(biāo)準(zhǔn)協(xié)議內(nèi)的有效數(shù)據(jù)。這樣就會(huì)使各個(gè)廠家有各自的軟件。如果自家用了5家的設(shè)備,那么最終你想控制這些設(shè)備要來(lái)回切換,不麻煩嗎?同時(shí)也防止廠家間接“強(qiáng)奸”用戶,例如:為了使用更加方便,買(mǎi)同一個(gè)牌子的設(shè)備,實(shí)際上有些我并不是很喜歡,只是能湊合罷了。
用這個(gè)網(wǎng)關(guān)就是集成各種廠家的數(shù)據(jù),最終給用戶的只是一個(gè)界面,這樣用戶體驗(yàn)更加清爽,舒適。同時(shí)還可以把古老的設(shè)備,沒(méi)有接入互聯(lián)網(wǎng)功能的設(shè)備讓它聯(lián)網(wǎng)!成為一個(gè)互聯(lián)網(wǎng)設(shè)備。讓數(shù)據(jù)集中管理,用戶單一管理,效率更高更實(shí)用。
二、系統(tǒng)構(gòu)架圖
網(wǎng)關(guān)與服務(wù)器通信架構(gòu)圖:
網(wǎng)關(guān)與節(jié)點(diǎn)的通信架構(gòu)圖:
三、硬件部分的描述
網(wǎng)關(guān)PCB源文件下載:http://club.szlcsc.com/article/downFile_F36711403017984F.html
網(wǎng)關(guān)原理圖:
(更多圖片詳見(jiàn)原帖)
網(wǎng)關(guān)PCB圖片如下:
(更多圖片詳見(jiàn)原帖)
網(wǎng)關(guān)PCB實(shí)物圖,手工焊接了2張,WIFI是預(yù)留了接口,ESP-08。
(更多高清圖片詳見(jiàn)原帖)
采用了很多鉭電容,目前全部焊接,如果作為實(shí)際的產(chǎn)品而言,可以通過(guò)測(cè)壓力,去掉一些鉭電容,畢竟成本太高了。
選取的網(wǎng)關(guān)外殼,鋁合金的,不過(guò)商家不給開(kāi)孔,我得想辦法了。
無(wú)線采集控制功能驗(yàn)證板
PC遠(yuǎn)程控制軟件
四、材料清單
MCU:STM32F205;
存儲(chǔ):W25Q64 & TF;
無(wú)線通信:RA-01/02 & NRF24L01P & ESP8266(預(yù)留接口);
有線通信:RS232/485;
RTC:PCF8563T;
傳感器:BH1750FVI,SHT211,DS18B20,MQ-135/MQ-2;
DCDC:MP2451;
LDO:ME6210。
所有元器件都是常用的,除了模塊,其他的立創(chuàng)都有。(硬件詳細(xì)介紹詳見(jiàn)原帖)
五、軟件部分的描述
網(wǎng)關(guān)功能介紹:
1. 遠(yuǎn)程升級(jí)
原理:通過(guò)以太網(wǎng)/RS232/R485/LORA 按照指定格式把升級(jí)Bin文件發(fā)送給網(wǎng)關(guān),目前實(shí)現(xiàn)的是通過(guò)以太網(wǎng)網(wǎng)絡(luò)發(fā)送,每次發(fā)送256byte字節(jié)。因?yàn)檐浖堑菳in文件接收完了之后,再跳轉(zhuǎn)到Bootloader進(jìn)行升級(jí),所以在此是存儲(chǔ)在SPI FLASH上的。該SPI FLASH 單次寫(xiě)入最大數(shù)據(jù)是256byte,所以這樣規(guī)定的。其次是因?yàn)閿?shù)據(jù)采用json協(xié)議,如果數(shù)據(jù)量過(guò)大,會(huì)導(dǎo)致解析json開(kāi)銷(xiāo)過(guò)大。
提示:發(fā)送bin文件,因?yàn)槭?6進(jìn)制,所以我用了base64進(jìn)行轉(zhuǎn)碼。
2. 數(shù)據(jù)緩存
軟件內(nèi)部會(huì)有一個(gè)RAM的緩存池,根據(jù)芯片的RAM來(lái)決定,目前我用的這款我采用了最大50KB來(lái)作為緩存池,以便于網(wǎng)絡(luò)不穩(wěn)定,數(shù)據(jù)不會(huì)丟失。如果數(shù)據(jù)存滿了,網(wǎng)絡(luò)依舊尚未暢通,則會(huì)按照指定格式存儲(chǔ)在SPI FLASH 指定的區(qū)域,以便于網(wǎng)絡(luò)通暢后把歷史數(shù)據(jù)上傳到服務(wù)器。
3. 無(wú)線通信
載無(wú)線通信模塊:RA-01(LORA) + NRF24L01P+ESP8266,目前ESP8266預(yù)留接口,功能調(diào)試主要是針對(duì)于RA-01+NRF24L01P。由于硬件原因,LORA的單包最大數(shù)據(jù)為128Byte,NRF24L01P最大數(shù)據(jù)為32Byte,這對(duì)于傳輸json數(shù)據(jù)太痛苦,但是傳輸modbus這種協(xié)議很難解讀。所以我采用的類(lèi)似json的“序列化”+“反序列化”的方式進(jìn)行編寫(xiě),這樣后期可無(wú)限制的添加協(xié)議,不會(huì)影響之前設(shè)備的協(xié)議。同時(shí)在LORA和NRF24L01P上做了簡(jiǎn)單的拆組包協(xié)議,以便于發(fā)送更長(zhǎng)的數(shù)據(jù)包。目前支持最高512Byte。
4. 兼容協(xié)議
無(wú)論是通過(guò)RS232/485、LORA、NRF24L01、ETH,所有的數(shù)據(jù)協(xié)議會(huì)分為兩種,第一種JSON,第二種自定義協(xié)議。然后把數(shù)據(jù)放入指定的TASK解析,例如要開(kāi)個(gè)燈,從RS232發(fā)送,從ETH發(fā)送,從LROA發(fā)送都是一樣的效果,而且執(zhí)行的程序也是一樣的,只是指令進(jìn)出的管道不一樣而已。這樣方便于管理通信協(xié)議,不會(huì)造成混亂。
5. 電量檢測(cè)
1秒一次檢測(cè)DCDC輸入電壓值,并記錄發(fā)送到服務(wù)器,方便于核實(shí)供電情況。
無(wú)線采集控制功能驗(yàn)證板介紹:
這只是為了驗(yàn)證功能,所以采用了N合一的設(shè)計(jì),實(shí)際應(yīng)用應(yīng)該不會(huì)用到這么多。
多合一內(nèi)容:SHT21 + DS18B20 + BH1750FVI + MQ-XXX + 2路繼電器 + 1個(gè)UART擴(kuò)展。
無(wú)線通信:LORA/NRF24L01P,二選一。演示采用LORA,這個(gè)相對(duì)復(fù)雜點(diǎn),NRF24L01P相對(duì)簡(jiǎn)單一點(diǎn),暫時(shí)不做演示。
模塊采用MOS管控制電源,不用則關(guān)閉,以降低功耗,主控采用STM8L151K4,最終最低功耗做到了2.5ua睡眠電流,RTC喚醒,視頻有介紹哈。
六、作品演示
七、總結(jié)
由于時(shí)間關(guān)系,只做了PC端演示程序,但是協(xié)議都是零活的,后續(xù)會(huì)完善B端展示。無(wú)論是http,ws,socket,有效數(shù)據(jù)里面的數(shù)據(jù)協(xié)議均是一樣,
這樣就讓整套系統(tǒng)更加容易管理。
服務(wù)器用的linux + php + workerman + mosquito + mysql + nginx搭建。支持長(zhǎng)連接,高并發(fā)!針對(duì)于嵌入式物聯(lián)網(wǎng)設(shè)備。服務(wù)器目前完成了:用戶登陸+數(shù)據(jù)解析+數(shù)據(jù)存儲(chǔ)+遠(yuǎn)程升級(jí) + 遠(yuǎn)程控制等,后續(xù)繼續(xù)完善B端,這樣就方便于手機(jī)操控,同時(shí)綁定在微信里面就更易用了。
提醒下:買(mǎi)物料一定要仔細(xì)?。?!我這就買(mǎi)錯(cuò)了一個(gè)物料,繼電器我設(shè)計(jì)的是5V供電,買(mǎi)成了12V,后面寫(xiě)程序的時(shí)候才發(fā)現(xiàn),然后在一個(gè)開(kāi)發(fā)板上卸了兩個(gè)下來(lái)。上面的圖片繼電器是12V,那是焊接好拍攝的。視頻里面是5V,那是后面寫(xiě)程序的時(shí)候修改過(guò)了。

L7805CV-DG/線性穩(wěn)壓器(LDO) | 0.5401 | |
AMS1117-3.3/線性穩(wěn)壓器(LDO) | 0.1237 | |
BAT54C,215/肖特基二極管 | 0.0336 | |
LM358DR2G/運(yùn)算放大器 | 0.345 | |
CJ431/電壓基準(zhǔn)芯片 | 0.1157 | |
LM393DR2G/比較器 | 0.3153 | |
ADUM4160BRWZ-RL/隔離式USB芯片 | 34.83 | |
REF3012AIDBZR/電壓基準(zhǔn)芯片 | 0.9316 | |
SS8050/三極管(BJT) | 0.035 | |
8S005/錫膏/錫漿 | 17.67 |
- SM Switch無(wú)錫斯茂:電子開(kāi)關(guān)專(zhuān)業(yè)制造商
- 震東電子:一站式電感解決方案
- 用立創(chuàng)開(kāi)發(fā)板,做了個(gè)AI小電視!能聊天,能翻譯……
- 中芯國(guó)際,利潤(rùn)暴漲!
- XBLW/芯伯樂(lè)產(chǎn)品應(yīng)用在數(shù)字萬(wàn)用表上的開(kāi)發(fā)設(shè)計(jì)
- 鴻利智匯:成為L(zhǎng)ED車(chē)燈國(guó)產(chǎn)化堅(jiān)定擁護(hù)者
- STM32F103C8T6和GD32F103C8T6有啥區(qū)別?
- 原來(lái)小米的屏幕,放大后長(zhǎng)這樣!我做了個(gè)電子顯微鏡……
- 動(dòng)態(tài)心電圖設(shè)備存儲(chǔ)解決方案:STM32L431RCT6主芯片與貼片式TF卡
- 航順:32位MCU HK32F005顛覆市場(chǎng)格局