艾廣心+李迅+周虹+王晨+楊曉宇+于家浩


摘要:該文提出了一種基于單片機的人工造景智能系統,該系統具備WEB訪問單片機數據的功能,包括采集數據和各設備的運行狀態信息等,模塊化的設計也便于系統進行升級、維護以及移植。在保證造景缸中環境等穩定的同時,減少了人工干預和操作的過程,把飼養變成了單純的觀賞享受。本項目來源于智能化熱帶水族箱的設計與開發項目(2016年黑龍江省大學生創新創業省級項目,項目編號:201610222053),介紹了系統各組成部分的軟硬件構成。
關鍵詞:單片機;物聯網;自動控制;人工造景
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)35-0266-03
Control System of Artificial Scene Based on Single Chip Microcomputer
AI Guang-xin, LI Xun, ZHOU Hong, WANG Chen,YANG Xiao-yu,YU Jia-hao
(Information and Electronic Technology Institute,Jiamusi University,Jiamusi 154000,China)
Abstract: This paper presents an intelligent system Based on single-chip microcomputer. The system has the functions of WEB access to the data of the single-chip microcomputer, including collecting data and running information of each device. The modular design also facilitates the system to upgrade, maintain and transplant. In the environment to ensure that the environment and other stable at the same time, reducing the manual intervention and operation of the process, the feeding into a simple ornamental enjoyment (2016 Heilongjiang provincial Undergraduate Training Programs for Innovation and Entrepreneurship , 201610222053). The project is derived from the design and development project of intelligent tropical aquarium, and introduces the hardware and software composition of each component of the system.
Key words: Microcontrollers; Internet of things; automatic control; artificial landscaping
1 項目功能簡介
在本設計中實現的是一個物聯網的人工造景控制系統,通過各個傳感器采集缸(包括淡水缸、汽水缸、海水缸等可以作為草缸、龜缸等應用,我們這里以最簡單的淡水草缸為例)內部的各項參數以及各項設備的運行狀態,單片機作為處理器根據采集的數據對人工造景進行自動控制(例如實現自動投喂,定時打氧或通入二氧化碳,自動換水等),并通過網絡將數據上傳到服務器端數據庫,用戶通過瀏覽器訪問的形式隨時隨地對數據進行監控。
2 系統結構
整個系統由上位機、下位機、服務端數據網絡以及客戶端瀏覽器組成。51 單片機技術自發展以來已走過了近 20 年的發展路程。單片機技術的發展以微處理器(MPU)技術及超大規模集成電路技術的發展為先導,以廣泛的應用領域拉動,表現出較微處理器更具個性的發展趨勢,小到電子遙控玩具,大到航空航天技術等電子行業都有單片機應用的影子[1]。STC89C52單片機作為淡水草缸的邏輯控制處理芯片,與外圍各個傳感器(如溫度傳感器)以及各項執行機構(如加溫開關繼電器,定時投喂繼電器等)共同組成淡水草缸的自動控制系統,該自動控制系統也組成了整體物聯網系統的下位機。該下位機與一臺上位機相連,在該項目中,單片機負責將數據定時傳到指定USB端口,采用樹莓派(微型計算機)作為該系統的上位機,在樹莓派上構建JAVA環境,通過運行程序定時掃描與單片機連接的USB端口來獲取實時數據[2],該上位機通過連接顯示器可作為第一個監控節點,在淡水草缸本地就即可作為終端展示淡水草缸中由單片機采集到的實時狀態信息以及實時數據信息[3]。同時數據通過外部網絡環境(Wifi環境或者實體網線)上傳到服務端數據網絡,存儲在服務器(采用任何可聯網的且擁有公網IP的服務器)數據庫中,使用者可以使用任何可以訪問網絡的終端(手機、電腦、平板,甚至是kindle)對服務器上的數據進行監控,以便于及時發現問題,在特定網站上不受時間地域的限制監測淡水草缸中的情況[4]。淡水草缸數據網絡示意簡圖如圖1所示。
2.1 單片機采集控制系統
在日常運行過程中,單片機通過用戶對溫度上限以及溫度下限的設定,實時讀取溫度傳感器(ds18b20溫度傳感器)實現對加溫棒開關繼電器的開關設定,從而實現對淡水草缸內部整體溫度的控制。用戶還可以設定每次投喂的間隔時間(單位為小時),由單片機內部的定時器進行定時,并在規定的時間內開啟自動投喂繼電器開關,實現對自動投喂的智能控制。出于節能以及避免資源浪費考慮[5],該系統還實現的間隔打氧功能,由用戶設置打氧的間隔時間,以及每次打氧的持續時間(單位為分鐘),而淡水草缸還涉及二氧化碳溶解度的問題,故添加了二氧化碳細化器,配合氧氣泵共同作為缸內水生生物(包括生產者和消費者),同時,考慮到淡水草缸換水的問題,該系統[6]還設置了一鍵換水的功能,用戶在安裝的時候將入水口連接到水龍頭上,出水孔連接到排放設備上,安裝好后,用戶只需要按下一個按鈕,單片機將開啟排水的電磁閥,將水位排放到最低水位線(最低、最高水位線由單片機檢測),隨后關閉排水電磁閥,開啟入水電磁閥,將水位加至最高水位線,隨后關閉入水電磁閥,至此,一次換水過程結束。整個系統各個部分既可以獨立運行,也可以整體自動控制。當用戶設置好各功能運行狀態以及停啟時間后,系統便會按照機器時間自動進行循環運行,該功能可以滿足部分客戶不能及時照料或疏于管理情況下的需求。系統結構圖如圖2所示,proteus部分仿真圖如圖3所示。endprint
2.2 上位機
上位機使用任何可以聯網的微電腦設備,PC、MAC、linux、甚至可以使用樹莓派,所有的設備的操作大致相同,本文中提供的數據在左右設備中均適用,上位機通過WIFI模塊相連或者通過USB與微處理器(MCU)直接連接,該項目中使用USB端口連接為例,JAVA程序上使用rxtxcomm.jar工具包實現串口信息讀取,環境配置上在該上位機中構建JAVA環境,通過運行事先編譯好的JAVA程序采集MCU發送到指定端口的數據,并在上位機將數據進行編碼并將數據上傳到服務器端數據庫[7]。
附:鏈接數據庫部分程序
2.3 數據庫
在該項目中使用mysql作為數據存儲軟件,該數據庫是一個關系型數據庫軟件,在數據表的設計上,由于發送到數據庫的數據是經過編碼的[8],所以數據表的設計上只需要三列,第一列記錄數據的id,即用來標識數據的唯一性,該列數據在每次插入時自動增加1,同時此id為該數據表的主鍵,方便以后數據的操作和整理,第二列用來記錄數據產生的時間,讓用戶更加清晰的觀測到當前的淡水草缸狀態,第三列用來存放編碼好的數據,是真正用來存儲數據的列,通過該列的數據,我們能夠讀取到淡水草缸內的所有信息
附:數據庫方面表結構
2.4 網頁監控端
網頁監控端,即用戶查看淡水草缸信息時展示的網站,該網站存放在外網服務器中,既可以與數據庫存放在同一個服務器也可以和數據庫存放在不同的服務器,該網站服務端使用java語言編寫,部分java程序如圖4所示[9],客戶端使用html語言編寫,網站前端使用bootstrap框架,以提高網站的觀賞性,通過ajax技術實現頁面的實時更新,以提高網站的實用性,使用JQuery作為js框架[10],以提高開發的簡易性,項目搭建上使用maven構建項目,通過pom文件對jar包進行管理,并使用springboot對整體項目進行部署,展示端模板框架使用thymeleaf,該框架可以實現前后端的開發完全分離,可脫離工程以html的格式進行渲染。
該網站的具體運行邏輯如下:用戶根據事先設置好的網址或ip通過瀏覽器訪問網站,瀏覽器從服務端下載客戶端頁面(html頁面,js,css等數據),并向服務端發送ajax請求并獲得請求返回的json數據,隨后,客戶端對該json數據進行解析,并構建出完整的html頁面[11],當我們定時的時間到了以后,用戶瀏覽器重新發送AJAX請求并重新獲取json字符串,隨后清理當前頁面已經過期的信息,重新通過js構建頁面,這樣我們就實現了頁面的實時更新。
3 結束語
在本設計中,首次采用了樹莓派作為上位機。在以往我們設計的自動控制系統中,例如多肉植物溫室大棚自動控制系統項目開發過程中采用PC作為上位機,如果PC機只是單純作為家用多肉大棚的上位機而言,價格略高,若是應用在多肉農場等大規模商業苗圃中,則采用工控機更為合適。而為了更加適用于家庭用戶,也是考慮到價格和空間的問題,我們在本次開發中選擇使用樹莓派作為上位機,在一定程度上節省了產品的造價,同時也為用戶提供了更加多樣化的選擇,也更加便于系統進行移植和維護。
參考文獻:
[1] 陳麗霞.基于51單片機的綜合開發板設計[J].科技經濟市場,2011(8):3.
[2] 肖洪兵. 跟我學用單片機[M].北京:北京航空航天大學出版社,2002.
[3] 趙曉安.MCS-51單片機原理及應用[M].天津:天津大學出版社,2001.
[4] 李廣第.單片機基礎[M].北京:北京航空航天大學出版社,1999.
[5] 夏繼強. 單片機實驗與實踐教程[M].北京:北京航空航天大學出版社, 2001.
[6] 陳志強 胡輝. 單片機應用系統設計實踐指南[M].自編教材
[7] Eric. Java編程思想[M]. 4版. 機械工業出版社, 2011.
[8] 杜波依斯. MySQL技術內幕[M].4版. 人民郵電出版社 , 2011.
[9] Metsker S J. Java設計模式[M]. 2版. 電子工業出版社, 2012.
[10] 孫衛琴. Tomcat與Java Web開發技術詳解[M]. 2版. 電子工業出版社, 2009.
[11] 劉京華. Java Web整合開發王者歸來[M]. 清華大學出版社, 2010.endprint