国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Node-Red和樹莓派的物聯(lián)網(wǎng)應用系統(tǒng)開發(fā)

2020-08-14 10:17莊進樣
廣東教育·職教版 2020年7期
關鍵詞:樹莓溫濕度閾值

莊進樣

一、引言

近年來物聯(lián)網(wǎng)編程工具Node-Red和樹莓派以學習門檻低、硬件成本低和具有趣味性的特點,在中職信息技術教學中倍受青睞。如廣州市中職信息技術教研會在2019年舉行了兩期樹莓派與人工智能機器人培訓,全國職校信息技術技能大賽中職組在2018年和2019年舉行了可視化智能控制系統(tǒng)設計與調(diào)試競賽,該賽項的內(nèi)容正是使用Node-Red編程工具和樹莓派。

目前的中職物聯(lián)網(wǎng)應用系統(tǒng)開發(fā)課程教學主要選擇單片機和C語言作為開發(fā)工具,而本文則基于實踐教學設計,介紹了如何使用可視化編程工具Node-Red和樹莓派進行物聯(lián)網(wǎng)應用系統(tǒng)開發(fā)。

二、樹莓派和Node-Red

樹莓派(Raspberry Pi)的尺寸只有信用卡大小,是為計算機編程教育而設計的微型電腦。它除了能代替日常桌面計算機的用途外,還能使用GPIO(General-Purpose Input/Output,通用輸入/輸出端口)為物聯(lián)網(wǎng)應用提供很好的實踐案例。官方推薦安裝操作系統(tǒng)為基于Debian的Raspbian,該系統(tǒng)中預安裝了Node-Red編程工具。

Node-Red是IBM開發(fā)的一個開源項目,以新穎有趣的方式將硬件設備、應用程序接口、在線服務連接起來,編程時只需要在瀏覽器中拖拽節(jié)點(Node),然后把這些節(jié)點用線連接起來,而數(shù)據(jù)則通過這些連線在節(jié)點間傳遞。節(jié)點是封裝了特定功能的模塊,核心節(jié)點會隨Node-Red一起被默認安裝,包括8個主要類別:輸入、輸出、功能、社交、存儲、高級和Raspberry Pi。除了核心節(jié)點外,用戶還可以在線安裝其他節(jié)點,如儀表盤節(jié)點(node-red-dashboard)、DHT溫濕度傳感器(node-dht-sensor)等等。正是由于Node-Red這種簡單、高效的編程方式,它被用作物聯(lián)網(wǎng)的一種粘合劑并很快發(fā)展成為一種通用的、可視化的物聯(lián)網(wǎng)編程工具。

三、系統(tǒng)功能設計

物聯(lián)網(wǎng)應用系統(tǒng)以智能教室系統(tǒng)為例,實現(xiàn)的功能包括:在終端顯示教室燈光當前的狀態(tài);進行開燈、關燈操作;顯示教室實時的溫度和濕度。除此之外,系統(tǒng)還能夠設定溫度的閾值,如果溫度高于設定的值,系統(tǒng)則發(fā)出人聲報警(“濕度太高,可以開空調(diào)”)和蜂鳴器鳴叫,并能夠設定濕度的閾值,如果濕度高于設定的值,則自動打開排氣扇進行抽濕。

四、硬件設計

現(xiàn)實智能教室功能的硬件主要包括樹莓派、LED、DHT11溫濕度傳感器、蜂鳴器、12V排氣扇、12V電源、繼電器、杜邦線。然而因為樹莓派GPIO輸出不能達到12V,無法直接驅(qū)動排氣扇,所以需要使用繼電器進行電路轉(zhuǎn)換。

樹莓派提供40個GPIO引腳,通過它們輸出高低電平或者通過它們讀入引腳的狀態(tài):高電平或低電平。用戶可以通過樹莓派的GPIO口和硬件進行數(shù)據(jù)交互、控制硬件工作、讀取硬件的工作狀態(tài)信號等,GPIO引腳如圖1所示。

圖1樹莓派的GPIO示意圖

各種傳感器和執(zhí)行器在樹莓派GPIO上的連接設計盡可能布局合理,減少線材交叉,達到方便編寫程序又美觀的目的。具體說明如下表1所示。

五、編程設計

(一)編程環(huán)境

Node-Red可視化編程在智能控制系統(tǒng)的應用,只需要拖拽節(jié)點,設置相應的參數(shù),連接節(jié)點,即可搭建一個具備數(shù)據(jù)顯示、處理與控制界面的控制系統(tǒng),可用于通信與控制、物聯(lián)網(wǎng)、互聯(lián)網(wǎng)+等行業(yè)。Node-Red既可以下載安裝在電腦中,也可以在安裝了Raspbian操作系統(tǒng)的樹莓派中直接使用,更多的安裝使用方法可以參考官方網(wǎng)址https://nodered.org/docs/getting-started/,也可以使用在線版Node-Red,如:在瀏覽器中輸入網(wǎng)址https://goiot.cc/,注冊登錄后即可開始Node-Red的編程之旅。

因為本智能教室系統(tǒng)以樹莓派為控制中心,所以更方便的編程方式是在樹莓派中開啟Node-Red服務,然后在同一局域網(wǎng)中電腦端的瀏覽器中訪問http://<樹莓派IP>:1880/即可進行Node-Red程序編寫,以及訪問http://<樹莓派IP>:1880/UI即可運行用戶交互界面。

(二)顯示和交互界面

儀表盤節(jié)點(Dashboard)主要用于創(chuàng)建實時圖形化交互界面,與其它節(jié)點安裝類似,在菜單中的“節(jié)點管理”中“安裝”選項卡中輸入“dashboard”,找到名為“node-red-dashboard”并點擊安裝即可。

儀表盤的布局由Tab和Group兩個屬性組成。Tab相當于分頁,Group是分組,每個Tab中可以包含多個Group。智能教室系統(tǒng)設置一個Tab,命名為:智能教室;設置三個Group,分別命名為:燈光控制、濕度控制、溫度控制。每個Group包括dashboard的若干個節(jié)點:

燈光控制:text節(jié)點,用于顯示當前燈光的狀態(tài)(亮或滅);button節(jié)點兩個,分別對應開燈和關燈的按鈕。

溫度控制:text節(jié)點,用于顯示當前設置閾值;slider節(jié)點,用于調(diào)節(jié)溫度的臨界值,即當教室的溫度高于設定的閾值時,觸發(fā)蜂鳴器鳴叫和人聲報警(人聲報警使用文字轉(zhuǎn)語音節(jié)點實現(xiàn));guage節(jié)點,用于顯示教室的實時溫度。

濕度控制:與溫度控制類似,當環(huán)境濕度高于設置的閾值時,自動開啟排氣扇進行抽濕。

智能教室系統(tǒng)的顯示和交互界面,如圖2、圖3所示。

(三)燈光控制程序

開燈和關燈使用節(jié)點button,控制樹莓派引腳使用節(jié)點rpi-gpio out。在開燈節(jié)點button發(fā)送有效載荷設置為數(shù)字1(高電平),關燈節(jié)點button發(fā)送有效載荷設置為數(shù)字0(低電平)。然后分別從兩個節(jié)點button右邊的小方塊拉出連接線,并連接到節(jié)點rpi-gpio out左邊的小方塊,如圖4所示。

燈光LED的正極與引腳40-GPIO21相連,因此可以初始化該引腳為低電平(0),使燈光處于滅的狀態(tài)。當用戶點擊“開燈”時,數(shù)據(jù)流向右邊發(fā)送,使引腳40-GPIO21處于高電平狀態(tài),從而點亮教室的燈光;當用戶點擊“關燈”時,數(shù)據(jù)流向右邊發(fā)送,使引腳40-GPIO21處于低電平狀態(tài),從而熄滅教室的燈光。

變量msg.payload是從上一流程中接收到的有效載荷,最終函數(shù)返回對象msg,實現(xiàn)其轉(zhuǎn)換后的有效載荷往下一流程發(fā)送。完成后的燈光控制程序,如圖5所示。

圖5燈光控制的程序

(四)獲取并顯示溫濕度程序

獲取連接到樹莓派引腳溫濕度傳感器DHT11的數(shù)據(jù),需要安裝節(jié)點rpi-dht22(支持dht11和dht22)。值得注意的是:智能教室的溫濕度數(shù)據(jù)并不是獲取一次就終止了,而是按一定的時間間隔(如5秒)重復地獲取實時數(shù)據(jù)并在終端上更新。

節(jié)點inject能以有規(guī)律的時間間隔向下一節(jié)點發(fā)送消息,該消息中的有效載荷可以是字符串、Javascript對象或者當前時間等。把節(jié)點inject發(fā)送的內(nèi)容設置成當前時間,并每隔5秒執(zhí)行一次,正符合我們的設計要求。

節(jié)點rpi-dht11獲取到的溫度數(shù)據(jù)包含在msg.payload中,而獲取到的濕度數(shù)據(jù)則包含在msg.humidity。為了在儀表上能分別顯示溫度和濕度,可以使用節(jié)點function編寫Javascript代碼進行有效載荷的轉(zhuǎn)換,溫濕度顯示的程序如圖6所示。

(五)溫濕度與報警的聯(lián)動程序

在智能教室系統(tǒng)中,當溫度高于設定的閾值時,將會觸發(fā)報警,蜂鳴器鳴叫,同時把警示文字轉(zhuǎn)換成語音在終端中播放;當濕度高于設定的閾值時,將會觸發(fā)繼電器接通排氣扇進行抽濕。

以溫度高于閾值報警為例,用戶設置的閾值保存為函數(shù)節(jié)點中的全局變量,代碼為:flow.set(‘yuzhi_wendu,msg.payload)。在下一節(jié)點的函數(shù)中則獲取上一節(jié)點的全局變量后存放于新的變量yuzhi_wendu中,如果獲取失敗,則賦值26,代碼為:varyuzhi_wendu=flow.get(‘yuzhi_wendu)||26。實時溫度與用戶設置的閾值相比較,使用else-if條件分支語句進行判斷,程序如圖7所示。

濕度高于用戶設置的閾值時將會觸發(fā)排氣扇抽濕的程序,與溫度高于閾值時將會觸發(fā)報警程序的原理一致,只需要在上述程序基礎上修改少量代碼即可實現(xiàn)。

六、結語

用于實踐教學設計的中職物聯(lián)網(wǎng)應用系統(tǒng)開發(fā),因使用Node-Red和樹莓派而變得簡單和有趣,又因以智能教室為例,是學生所熟悉的情境,能夠較好地促進教學目標的達成?;贜ode-Red和樹莓派學習開發(fā)智能教室系統(tǒng),能幫助學生掌握物聯(lián)網(wǎng)應用系統(tǒng)開發(fā)的基本方法,同時,通過替換、增加傳感器和融入更多的Node-Red節(jié)點,使學生能夠開發(fā)功能更加完備的應用系統(tǒng),從而更好地進行創(chuàng)新創(chuàng)業(yè)活動。

責任編輯陳春陽

猜你喜歡
樹莓溫濕度閾值
非均勻光照下文本圖像分割算法研究
蛋雞育雛育成舍環(huán)境控制技術
特斯拉發(fā)布新功能 停電期間也可充電
檔案庫房溫濕度記錄統(tǒng)計及調(diào)控
利用迭代軟閾值方法抑制恒時演化類核磁共振實驗中的采樣截斷偽峰
黃金水果紅樹莓
樹莓紅了 游人醉了
e絡盟率先推出第三代樹莓派
年度睡姿大盤點(下)
變電站高壓配電智能溫濕度控制裝置的研發(fā)與應用
宁安市| 申扎县| 星座| 司法| 绵阳市| 广州市| 霸州市| 德阳市| 扎赉特旗| 蓬溪县| 甘德县| 沛县| 谷城县| 弥勒县| 宜兰市| 寿阳县| 乌海市| 阿巴嘎旗| 江山市| 抚松县| 巍山| 蒙自县| 长葛市| 长岭县| 安宁市| 淮南市| 普洱| 襄城县| 德令哈市| 米易县| 东丰县| 信阳市| 西贡区| 扎赉特旗| 蓬溪县| 瑞丽市| 通化市| 临沭县| 偃师市| 通榆县| 格尔木市|