摘 要:為了提高欽州青蟹圍塘養(yǎng)殖效益,對(duì)水質(zhì)環(huán)境數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)測(cè)與規(guī)律分析,設(shè)計(jì)了基于MQTT協(xié)議和Android的養(yǎng)殖環(huán)境監(jiān)測(cè)與分析系統(tǒng)。該系統(tǒng)由STM32主控的數(shù)據(jù)采集部分與基于Android設(shè)計(jì)開發(fā)的APP組成,通過MQTT服務(wù)器實(shí)現(xiàn)數(shù)據(jù)的傳輸。用戶可在APP端獲取水質(zhì)實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)并對(duì)異常數(shù)據(jù)進(jìn)行處理,同時(shí)可獲得水體特征的長期變化規(guī)律,方便提前進(jìn)行人為干預(yù),提高青蟹養(yǎng)殖成活率。測(cè)試結(jié)果表明,該系統(tǒng)具有較高的測(cè)量精度,時(shí)效性好,穩(wěn)定性強(qiáng),符合實(shí)際應(yīng)用需要。
關(guān)鍵詞:環(huán)境監(jiān)測(cè);MQTT;STM32;Android;欽州青蟹;養(yǎng)殖
中圖分類號(hào):TP39 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2024)07-00-05
0 引 言
欽州青蟹,學(xué)名鋸緣青蟹,是欽州市四大名海產(chǎn)(大蠔、青蟹、對(duì)蝦、石斑魚)之一。它味道鮮美,營養(yǎng)價(jià)值高,在2014年被評(píng)選為中華人民共和國農(nóng)業(yè)部農(nóng)產(chǎn)品地理標(biāo)志保護(hù)產(chǎn)品[1]。
欽州灣作為廣西省最主要的青蟹產(chǎn)地,人工養(yǎng)殖規(guī)模達(dá)到了5 000噸以上,已成為欽州沿海農(nóng)村經(jīng)濟(jì)的主要支柱產(chǎn)業(yè)之一[2]。青蟹對(duì)養(yǎng)殖水質(zhì)環(huán)境有較高的要求,當(dāng)溫度高于
32 ℃或低于17 ℃時(shí)其攝食速度明顯減緩,高于37 ℃或低于13 ℃時(shí)就會(huì)停止覓食;青蟹適宜生長的pH值范圍為7.8~8.6,即弱堿性環(huán)境;水體透明度(濁度)處于20~40 NTU范圍時(shí)較適宜,濁度過高會(huì)引起青蟹自相殘殺,過低則會(huì)影響其覓食等[3-4]。
基于青蟹養(yǎng)殖環(huán)境的特點(diǎn),本文設(shè)計(jì)了一款養(yǎng)殖環(huán)境監(jiān)測(cè)與分析系統(tǒng)。該系統(tǒng)借助傳感器實(shí)時(shí)采集養(yǎng)殖環(huán)境水質(zhì)數(shù)據(jù),幫助用戶全天候掌握水質(zhì)特征。根據(jù)水質(zhì)環(huán)境的變化規(guī)律,使用戶掌握更多主動(dòng)性,因時(shí)制宜,提高養(yǎng)殖效益。
1 相關(guān)技術(shù)
1.1 MQTT協(xié)議
消息隊(duì)列遙測(cè)傳輸(Message Queuing Telemetry Transport, MQTT)是一個(gè)輕量級(jí)的基于TCP/IP協(xié)議的發(fā)布/訂閱協(xié)議[5-6]。相較于傳統(tǒng)采用請(qǐng)求/響應(yīng)模式進(jìn)行數(shù)據(jù)交互的HTTP協(xié)議,MQTT的最大優(yōu)點(diǎn)在于可以用極少的代碼和有限的帶寬,為連接遠(yuǎn)程設(shè)備提供實(shí)時(shí)可靠的消息服務(wù)。也正因如此,其在物聯(lián)網(wǎng)、小型設(shè)備、移動(dòng)應(yīng)用等方面有著較廣泛的應(yīng)用。2013年3月,OASIS宣布將MQTT作為新興的物聯(lián)網(wǎng)消息傳遞協(xié)議的首選標(biāo)準(zhǔn)[7],將MQTT協(xié)議應(yīng)用于物聯(lián)網(wǎng)的模型,如圖1所示。
MQTT數(shù)據(jù)包由三部分組成,包括有效載荷(Payload)、固定報(bào)頭(Fixed header)和可變報(bào)頭(Variable header)[8],擁有三種不同的消息發(fā)布服務(wù)質(zhì)量[9],見表1所列。消息服務(wù)質(zhì)量越高,流程越復(fù)雜,系統(tǒng)耗能也更大,各用戶可根據(jù)自己的實(shí)際情況選取合理的質(zhì)量等級(jí)。
1.2 STM32F103C8T6處理器
STM32F103C8T6是由意法半導(dǎo)體公司開發(fā)的一款基于ARM Cortex-M內(nèi)核的STM32系列32位高性能增強(qiáng)型處理器[10],工作電壓為2~3.6 V,工作溫度為-40~85 ℃,引腳及外設(shè)資源如圖2所示。該款單片機(jī)憑借其功耗低、成本低、性能高和封裝體積小等優(yōu)勢(shì)已被廣泛應(yīng)用于智能家居、生產(chǎn)制造、農(nóng)業(yè)養(yǎng)殖等領(lǐng)域,且完全滿足本次設(shè)計(jì)在數(shù)據(jù)處理上快速、高效的讀取、計(jì)算和傳輸需求。
2 系統(tǒng)設(shè)計(jì)方案
本系統(tǒng)采用軟硬件相結(jié)合的方式,以STM32單片機(jī)作為硬件的主控設(shè)備,連接DS18B20封裝型溫度傳感器、TSW-30型濁度傳感器、E-201型復(fù)合pH傳感器,通過引腳給傳感器供電并進(jìn)行信息交互,采集數(shù)據(jù)并處理后交由ESP8266-01S模塊發(fā)送至本地EMQX服務(wù)器,該服務(wù)器為MQTT消息服務(wù)器的開源版本。APP則是利用Android Studio設(shè)計(jì)開發(fā)完成。
相較于傳統(tǒng)的云端數(shù)據(jù)存儲(chǔ)與網(wǎng)頁端數(shù)據(jù)可視化,本系統(tǒng)采用本地SQL Server對(duì)采集的數(shù)據(jù)進(jìn)行存儲(chǔ),并在移動(dòng)端對(duì)數(shù)據(jù)進(jìn)行調(diào)用和可視化,更方便用戶對(duì)數(shù)據(jù)的管理以及即時(shí)查看。圖3為本系統(tǒng)的整體架構(gòu)。
3 系統(tǒng)硬件設(shè)計(jì)
3.1 STM32F103C8T6最小系統(tǒng)板
STM32F103C8T6單片機(jī)有三個(gè)全雙工通用同步/異步串行收發(fā)模塊,本設(shè)計(jì)中僅使用USART1和USART2兩個(gè)串口,其中串口1(PA9、PA10)連接USB轉(zhuǎn)TTL用于與上位機(jī)進(jìn)行數(shù)據(jù)交互、代碼的燒錄等,串口2(PA2、PA3)與ESP8266-01S模塊連接用于發(fā)送采集的數(shù)據(jù)以及接收返回值等。單片機(jī)整體功能設(shè)計(jì)如圖4所示。
3.2 溫度傳感器
DS18B20溫度傳感器采用單總線數(shù)據(jù)傳輸設(shè)計(jì),即單根信號(hào)線,既傳輸時(shí)鐘信號(hào),又傳輸數(shù)據(jù),且數(shù)據(jù)傳輸是雙向的。它具有節(jié)省I/O口線資源、結(jié)構(gòu)簡單、成本低廉、便于總線擴(kuò)展和維護(hù)等諸多優(yōu)點(diǎn)。圖5為溫度傳感器設(shè)計(jì)流程(部分)。
定義函數(shù)DS18B20_Output_Input(u8 cmd),通過參數(shù)配置傳感器當(dāng)前為輸入或輸出模式,在檢測(cè)到數(shù)據(jù)總線存在的情況下向傳感器發(fā)送讀寫命令,并接收返回的溫度數(shù)值,其中讀取溫度值的核心代碼如下:
DS18B20_Startup();//檢測(cè)數(shù)據(jù)總線是否存在
DS18B20_Write_Byte(0Xcc);//跳過搜索ROM
DS18B20_Write_Byte(0X44);//開啟溫度轉(zhuǎn)換
Delay_ms(1);
DS18B20_Startup();
DS18B20_Write_Byte(0Xcc);
DS18B20_Write_Byte(0Xbe);//讀寄存器溫度數(shù)據(jù)
LSB = DS18B20_Read_Byte();//低八位數(shù)據(jù)
MSB = DS18B20_Read_Byte();//高八位數(shù)據(jù)
Temp = MSB; Temp lt;lt;= 8; Temp |= LSB;
return Temp;
3.3 濁度傳感器
TSW-30濁度傳感器利用光學(xué)原理,通過溶液中的透光率和散射率來綜合判斷濁度情況[11-12]。傳感器探頭內(nèi)部是一個(gè)紅外線對(duì)管,當(dāng)光線穿過一定量的液體時(shí),光線的透過量取決于該液體的污濁程度,水越污濁,透過的光就越少。光接收端把光強(qiáng)度轉(zhuǎn)換為對(duì)應(yīng)的電流,傳感器模塊將探頭輸出的電流信號(hào)轉(zhuǎn)換為電壓信號(hào)并通過單片機(jī)引腳讀取,再以模擬量的方式轉(zhuǎn)換為液體濁度值。
在監(jiān)測(cè)濁度值時(shí),定義PA1引腳作為模擬量接收端,且設(shè)置時(shí)鐘為主頻的1/6。配置引腳為獨(dú)立轉(zhuǎn)換模式、連續(xù)工作狀態(tài)、單通道轉(zhuǎn)換、不使用外部轉(zhuǎn)換以及數(shù)據(jù)右對(duì)齊。為了數(shù)據(jù)更加接近真實(shí)值,我們采集10次模擬量信號(hào)取平均值作為1次濁度模擬量值。利用如下代碼,將模擬量與濁度值進(jìn)行轉(zhuǎn)換:
Turb=(float)adcx*(3.3/4 096);
Turb= Turb*100/3.3
該部分整體設(shè)計(jì)流程如圖6所示。
3.4 pH傳感器
本款pH傳感器在傳統(tǒng)復(fù)合電極傳感器的基礎(chǔ)上添加了3倍運(yùn)放電路[13],可以輸出0~5 V或0~3 V的模擬電壓信號(hào),同時(shí)擴(kuò)展有DS18B20傳感器接口,可以方便進(jìn)行軟件溫度補(bǔ)償設(shè)計(jì)。該傳感器模塊包含一共6個(gè)功能引腳,分別為VCC、GND電源接入口,PO、GND模擬量信號(hào)輸出正負(fù)極,基準(zhǔn)電壓2.5 V輸出口和溫度傳感器DS18B20信號(hào)輸出口。使用+5 V電壓供電,工作溫度為0~60 ℃,工作精度為±0.01(25 ℃),測(cè)試響應(yīng)時(shí)間小于1 min,具有使用方便、測(cè)量精度高的優(yōu)點(diǎn)。
基于本設(shè)計(jì)的實(shí)際需求,我們依然采用模擬量信號(hào)接入單片機(jī)來采集pH值。指定單片機(jī)的PA4引腳為模擬量接收端,時(shí)鐘設(shè)置6分頻,即12 MHz,與PA1引腳一樣進(jìn)行ADC配置(此處選用通道4),并同樣獲取10次讀取量的平均值作為1次函數(shù)返回值;然后利用以下轉(zhuǎn)換代碼得到最后的pH值:
pH=(float)adcx*(3.3/4 096);
pH = -5.754 1*pH+16.654
在主函數(shù)中調(diào)用引腳初始化函數(shù)并打印輸出處理后的pH值。
3.5 ESP8266-01S模塊
本設(shè)計(jì)使用AT指令實(shí)現(xiàn)單片機(jī)與MQTT服務(wù)器的連接,在這之前需要從安信可官網(wǎng)下載MQTT固件庫(1471)并燒錄到WiFi模塊中,然后將ESP8266與STM32單片機(jī)的串口2
進(jìn)行連接,具體為模塊的VCC接3.3 V,GND接GND,RX接PA2,TX接PA3并配置PA2為復(fù)用推挽輸出,PA3為浮空輸入。使用重定向打印函數(shù)printf()向串口輸出AT指令,具體指令如下:
\"AT+RST\"\\ WiFi模塊復(fù)位
\"AT+CWMODE=1\"\\設(shè)置工作模式為Station
\"AT+CWJAP=\\"WiFiName\\",\\"Password\\"\"
\\通過WiFi名和對(duì)應(yīng)密碼使ESP8266接入互聯(lián)網(wǎng)
\"AT+MQTTUSERCFG=0,1,\\"client_ID\\",\\"username\\",\\"password\\",0,0,\\"\\"\"
\\設(shè)置MQTT用戶屬性,包括唯一標(biāo)識(shí)ID以及登錄用戶名和密碼
\"AT+MQTTCONN=0,\\"10.211.2.xxx\\",1883,0\"
\\向服務(wù)器所在IP地址的端口發(fā)起連接請(qǐng)求;至此,ESP8266成功連接到MQTT服務(wù)器
\"AT+MQTTPUB=0,\\"Topic\\",\\"String\\",1,0\"
\\向MQTT服務(wù)器發(fā)送數(shù)據(jù),其主題為Topic,消息體為String
4 系統(tǒng)軟件設(shè)計(jì)
4.1 實(shí)時(shí)監(jiān)測(cè)
APP界面通過連接MQTT服務(wù)器接收對(duì)應(yīng)Topic發(fā)送過來的水質(zhì)監(jiān)測(cè)數(shù)據(jù),經(jīng)過處理后將其顯示在UI界面的控件內(nèi)并隨著傳感器實(shí)時(shí)采集數(shù)據(jù)進(jìn)行更新。APP還設(shè)置了數(shù)據(jù)異常報(bào)警功能,當(dāng)水質(zhì)數(shù)據(jù)超過設(shè)定閾值時(shí)會(huì)通過字體顏色、手機(jī)鈴聲、振動(dòng)以及頂部通知欄消息的方式提醒用戶及時(shí)查看,做出干預(yù)。同時(shí)水質(zhì)數(shù)據(jù)會(huì)保存在本地SQL Server數(shù)據(jù)庫中,方便進(jìn)一步進(jìn)行數(shù)據(jù)分析和管理。界面運(yùn)行流程如圖7所示,運(yùn)行效果如圖8所示。
在頁面加載之前,先初始化連接屬性,然后實(shí)例化MqttClient對(duì)象并調(diào)用connect方法向服務(wù)器發(fā)起連接,通過返回值判斷是否連接成功。接收服務(wù)器數(shù)據(jù)并與閾值進(jìn)行比較。當(dāng)數(shù)據(jù)值超出相應(yīng)閾值范圍時(shí),通過調(diào)用Notification類向用戶發(fā)送警報(bào)提醒,該部分核心代碼如下:
Notification.Builder notification = new" Notification.Builder(getActivity());
notification.setAutoCancel(true);//查看通知后消失
notification.setContentTitle(\"檢測(cè)水域數(shù)據(jù)異常\");
//設(shè)置通知的標(biāo)題
notification.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE);//設(shè)置默認(rèn)提示音和振動(dòng)
notificationManager.notify(NOTIFY_ID,notification.build());
//發(fā)送通知
4.2 統(tǒng)計(jì)分析
通過調(diào)用MPAndroidChart開源庫對(duì)水質(zhì)數(shù)據(jù)進(jìn)行可視化處理,以折線圖(LineChart)的方式獨(dú)立選擇繪制溫度、pH值、濁度的往期變化規(guī)律折線圖。用戶可以通過頂部的三個(gè)按鈕來調(diào)整統(tǒng)計(jì)時(shí)間跨度,幫助掌握不同時(shí)間間隔的規(guī)律情況。界面采用不同顏色的折線來顯示三個(gè)不同監(jiān)測(cè)值,使得數(shù)據(jù)的呈現(xiàn)更加具有辨識(shí)度。界面運(yùn)行流程如圖9所示,運(yùn)行效果如圖10所示。
系統(tǒng)中的圖表庫可在項(xiàng)目導(dǎo)入依賴的情況下直接調(diào)用。對(duì)圖表樣式進(jìn)行設(shè)置,通過Java服務(wù)器連接SQL Server數(shù)據(jù)庫,獲取數(shù)據(jù)創(chuàng)建數(shù)據(jù)集,將數(shù)據(jù)集添加到LineChart對(duì)象中完成繪制。當(dāng)用戶在界面更改顯示對(duì)象或時(shí)間跨度時(shí),設(shè)置圖表立即根據(jù)新的需求刷新顯示,避免用戶的每一次操作都重新開啟子線程從數(shù)據(jù)庫獲取數(shù)據(jù),減少系統(tǒng)耗能和延時(shí)。以下為該部分功能代碼:
String[]" Temp_1 = new String[TimeLength];
//根據(jù)數(shù)組創(chuàng)建數(shù)據(jù)集
for (int m=0;mlt;TimeLength;m++){
Temp_1[TimeLength-m-1]=tempSet[tempSet.length-m-1];}
Listlt;Entrygt;" entrie_Temp = new ArrayListlt;gt;();
for (int i=0;ilt;TimeLength;i++)
entrie_Temp.add(newEntry(i,F(xiàn)loat.parseFloat(Temp_1[i])));LineDataSet lineDataSet_Tem =
new" LineDataSet(entrie_Tem, \"溫度\");
lineDataSet_Tem.setColor(Color.parseColor(\"#F15A4A\"));
LineData data = new LineData(lineDataSet);
mLineChart.setData(data);//將數(shù)據(jù)添加到圖表對(duì)象
mLineChart.notifyDataSetChanged();//對(duì)圖表進(jìn)行更新
mLineChart.invalidate();//對(duì)圖表的顯示進(jìn)行更新
4.3 天氣預(yù)報(bào)
本界面采用Spinner+LinearLayout+RecyclerView的布局方式來呈現(xiàn)當(dāng)前天氣情況以及未來6天的天氣預(yù)報(bào)。其中天氣數(shù)據(jù)包括:當(dāng)前日期、天氣、溫度、風(fēng)力風(fēng)向和空氣質(zhì)量、紫外線強(qiáng)度等,以及今日最高溫和最低溫,且可在下拉框選擇城市后實(shí)時(shí)更新數(shù)據(jù)。
界面中所展示的天氣數(shù)據(jù)來源于天氣網(wǎng)(http://yiketianqi.com/)提供的免費(fèi)API接口。通過在子線程中調(diào)用HttpURLConnection類訪問網(wǎng)頁獲取JSON數(shù)據(jù),并在本地利用GSON和解析數(shù)據(jù)的類對(duì)數(shù)據(jù)進(jìn)行格式化解析和應(yīng)用,其中JSON是一種輕量級(jí)的純文本數(shù)據(jù)交換格式[14],而GSON是在Java對(duì)象和JSON數(shù)據(jù)之間進(jìn)行映射的Java類庫[15]。
5 系統(tǒng)測(cè)試與分析
為驗(yàn)證系統(tǒng)運(yùn)行的穩(wěn)定性與數(shù)據(jù)有效性,我們分別在實(shí)驗(yàn)環(huán)境下和自然環(huán)境下對(duì)各個(gè)觀測(cè)數(shù)值進(jìn)行測(cè)試。
提前準(zhǔn)備20 ℃和60 ℃白水各一杯,pH值為4.6和9.3的標(biāo)準(zhǔn)溶液各一瓶,沙泥水一杯,將各傳感器分別放于對(duì)應(yīng)測(cè)試溶液中,觀察測(cè)量數(shù)值(3次取平均)見表2所列。系統(tǒng)檢測(cè)值與參考值存在一定的誤差,但誤差在可接受范圍內(nèi)。
為測(cè)試真實(shí)環(huán)境下系統(tǒng)的工作性能,現(xiàn)將本裝置放于一養(yǎng)殖魚塘邊運(yùn)行16 h(6:00—22:00),數(shù)據(jù)匯總見表3所列。由于篇幅有限,故僅列出8組數(shù)據(jù),每組時(shí)間間隔2 h。
根據(jù)實(shí)驗(yàn)數(shù)據(jù)和測(cè)試結(jié)果,該系統(tǒng)在誤差允許范圍內(nèi)能夠有效測(cè)量水體溫度、pH值和濁度值數(shù)據(jù),且硬件設(shè)備工作穩(wěn)定,網(wǎng)絡(luò)連接未出現(xiàn)異常,滿足長時(shí)間監(jiān)測(cè)采集的應(yīng)用需求。
6 結(jié) 語
本文致力于為鋸緣青蟹人工養(yǎng)殖過程設(shè)計(jì)一套合適的軟硬件系統(tǒng),進(jìn)而避免因水體質(zhì)量變化而導(dǎo)致青蟹大規(guī)模死亡。通過不同種類、不同層次的傳感器實(shí)時(shí)采集水域數(shù)據(jù)并經(jīng)由MQTT服務(wù)器發(fā)送到手機(jī)APP,同時(shí)將數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)庫,再從數(shù)據(jù)庫獲取歷史數(shù)據(jù)繪制折線圖以展示水質(zhì)變化規(guī)律,令養(yǎng)殖過程高透明、高可控。經(jīng)測(cè)試分析,該系統(tǒng)運(yùn)行穩(wěn)定,數(shù)據(jù)可靠,低時(shí)延低功耗,基本符合設(shè)計(jì)預(yù)期要求且具有實(shí)際應(yīng)用價(jià)值。
注:本文通訊作者為楊豪。
參考文獻(xiàn)
[1]農(nóng)業(yè)部農(nóng)產(chǎn)品質(zhì)量安全監(jiān)管局. 中華人民共和國農(nóng)業(yè)部公告第2136號(hào)[EB/OL]. (2014-08-07)[2023-06-02]. http://www.jgs.moa.gov.cn/gzdt/jgjdt/201408/t20140807_6296044.htm.
[2]王春琳.中國青蟹養(yǎng)殖產(chǎn)業(yè)現(xiàn)狀與高質(zhì)量發(fā)展對(duì)策[J].大連海洋大學(xué)學(xué)報(bào),2023,38(6):913-924.
[3]袁海燕,李利衛(wèi).水環(huán)境因子與氣象災(zāi)害對(duì)臺(tái)州市圍塘養(yǎng)殖鋸緣青蟹的影響[J].水產(chǎn)養(yǎng)殖,2022,43(2):35-39.
[4]李利衛(wèi).提高鋸緣青蟹圍塘養(yǎng)殖成活率五措施[J].科學(xué)養(yǎng)魚,2006,22(4):29.
[5]向晟,崔永俊.基于MQTT和微信小程序的火工品倉庫監(jiān)測(cè)系統(tǒng)[J].電子器件,2022,45(1):209-214.
[6]鮑震,茍曉東,王飛,等.多協(xié)議工業(yè)數(shù)據(jù)網(wǎng)關(guān)在駱駝山選煤廠的應(yīng)用[J].工業(yè)控制計(jì)算機(jī),2021,34(12):115-117.
[7]侯敏,劉倩,楊華勇,等.基于MQTT協(xié)議的海洋觀測(cè)數(shù)據(jù)推送系統(tǒng)[J].計(jì)算機(jī)工程與應(yīng)用,2019,55(20):227-231.
[8]孫磊. 基于MQTT協(xié)議的物聯(lián)網(wǎng)消息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].南京:東南大學(xué),2021.
[9]趙靖,王如武,周皓.基于NS-3的MQTT協(xié)議仿真研究[J].計(jì)算機(jī)工程與應(yīng)用,2021,57(23):137-145.
[10]周朝霞.基于STM32F103C8T6的藍(lán)牙智能垃圾桶設(shè)計(jì)[J].無線互聯(lián)科技,2022,19(12):65-67.
[11]崔雪峰,張日強(qiáng),孟祥宇,等.基于Arduino的硝酸銨溶液析晶點(diǎn)溫度測(cè)量系統(tǒng)的研究[J].現(xiàn)代礦業(yè),2020,36(12):165-167.
[12]何淼,董振華,許佳彤,等.用北斗定位的城市遠(yuǎn)程水質(zhì)監(jiān)測(cè)系統(tǒng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2023,23(3):80-83.
[13]董華. 基于MSP430單片機(jī)的pH計(jì)的研制[D].長春:吉林大學(xué),2008.
[14]于京,詹曉東.一種基于JSON格式的生產(chǎn)線數(shù)據(jù)采集系統(tǒng)模型[J].制造業(yè)自動(dòng)化,2012,34(3):154-156.
[15]徐文立. 基于智能移動(dòng)設(shè)備的移動(dòng)學(xué)習(xí)支持平臺(tái)設(shè)計(jì)[D].杭州:浙江工業(yè)大學(xué),2013.