在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用Node-RED和Raspberry Pi實現按下按鈕即可發布天氣信息

陳靜 ? 來源:DevicePlus ? 作者:DevicePlus ? 2023-03-01 10:50 ? 次閱讀

Node-RED是一種可視化編程工具,可以將Raspberry Pi的 GPIO引腳 上的組件與各種網站和在線服務進行接合。該軟件由IBM開發,具有開源許可證,并且它的使用只需要編寫很少的代碼。
為了向您展示該軟件是如何工作的,我們現在使用Node-RED創建一個項目,功能為按下按鈕即可獲悉廷巴克圖的溫度。

一個帶電源的Raspberry Pi

pYYBAGPzHT2ADpUTAAAurKGf_IY139.jpg

一個面包板

poYBAGPy0t6AI3TuAAAWaY2q8tc733.jpg

一個p按鈕

pYYBAGPzHUOAfbJ_AAET4jjQuTE353.png

您還需要一些跳線或電線,以及一個Android或Apple OS手機

Node-RED的工作原理

如果您在不了解的情況下點擊菜單中的Node-RED,所看到的只是一個終端窗口以及其中顯示的一些狀態消息。看起來并沒有什么,對嗎?
其實它正在做的工作是啟動一個Node-RED服務器。您可以使用本地計算機或本地網絡上的另一臺機器上的Web瀏覽器對其進行訪問。
Node-RED構建在名為Node.js的服務器技術之上。這是一種用于物聯網的低代碼編程環境。
它提供了一個圖形化環境,可以讓您與項目中各種元素相對應的不同節點進行連接。這些元素包括GPIO引腳上的組件或互聯網托管服務。

在Raspberry Pi上安裝Node-RED

Node-RED預裝在Raspberry Pi OS上的一些軟件中。請查看桌面上的菜單確認是否有該選項。
如果沒有的話,您需要安裝該軟件。這要求您的Raspberry Pi連接互聯網。
您的操作系統應為Raspbian Jesse及之后的版本。如果您的Raspberry Pi的操作系統是在2016年之前安裝的,需要注意這一點。
這些代碼很長,所以直接復制和粘貼會更便捷一些。您可以通過SSH連接或通過在Raspberry Pi桌面環境中打開終端窗口來執行該程序。
如果需要的話,您可以通過輸入以下內容來啟動桌面:
startx
在此之前,我們先來確認一下操作系統已經更新。打開終端窗口并輸入:
sudo apt update && sudo apt upgrade -y
現在我們可以使用現成的腳本來安裝Node-RED了。要運行該腳本,請輸入:
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
當您運行該腳本時,它可能會詢問您是否要升級舊版本的node.js,以及是否要安裝特定于Pi的節點。對兩者都選擇“y”。
Node-RED現在已經完成了安裝,可以進行啟動了。

啟動Node-RED并在瀏覽器中對其進行訪問

您可以從桌面菜單中啟動Node-RED,它位于“programming”目錄下。
您也可以從命令行執行同樣的操作,輸入以下內容:
node-red-pi –max-old-space-size=256
現在該程序正在運行中,您可以使用本地網絡上的web瀏覽器,在端口1880上對其進行訪問。如果您使用的是Raspberry Pi上的瀏覽器,則可以通過在地址欄中輸入http://127.0.0.1:1880來進行訪問。
如果您正在遠程訪問Raspberry Pi,請將其替換為您用于登錄SSH會話的IP地址。例如,在我的本地網絡上,我的Raspberry Pi地址為192.168.0.8,所以我可以通過在地址欄中輸入http://192.168.0.8:1880將Web瀏覽器定向到Node-RED。
最后,您將會看到Node-RED的界面。

poYBAGPzHUWAd0i8AACi1qIzUIw228.png


左側的列項包含了一系列節點,我們可以將這些節點移動到工作區以構建將我們的設備連接到在線服務的流(flows)。

If This, Then That

那么,接下來我們應該如何使用Node-RED實現在手機上顯示消息通知呢?
我們可以向名為If This Then That(或IFTTT)的工具發送http請求。這將有助于應用程序和設備之間的連接,對我們使用Node-RED和Raspberry Pi所構建的DIY項目會很有用。
如果您還沒有IFTTT,請從應用商城或play store進行下載和安裝,并創建一個賬戶。這是免費的。
現在切換回您的Raspberry Pi或您用來訪問Node-RED的計算機。讓Node-RED頁面保持打開狀態,同時打開一個新的頁面以前往 https://ifttt.com/ 并登錄您的賬號。單擊創建(Create)。您將會看到如下所示的屏幕:

poYBAGPzHUeAE1o1AAAp6To0pXQ353.png

“this”字段需要一個觸發器,即它所要響應的事件。“that”字段需要設置一個動作,即它的響應動作。
我們將要使用的觸發器是Node-RED所發送的http請求。IFTTT會獲取這些“webhooks(鉤子)”,我們將其輸入搜索欄中,并進行選擇。當要求您對事件進行命名時,輸入weather_button,并點擊“Create trigger”。

pYYBAGPzHUmARPkaAABjScMsfws476.png

現在我們開始設置響應動作。我們希望動作為發送一個通知,所以搜索“notifications”并進行選擇。使用一般通知就可以。當要求輸入消息文本時,輸入:
The temperature in Timbuktu is {{Value1}} degrees

poYBAGPzHUuAXiJxAABh1imH0KQ383.png

現在來測試一下此通知是否能出現在您的手機上。
點擊右上角的頭像打開菜單,然后點擊“My Services”。瀏覽到底部,并選擇“Webhooks”,然后點擊右上角的“Documentation”鏈接。
您會看到一個快捷小表單,我們可以用它來測試所構建的項目。我們的事件名稱為weather_button,因此在網址中輸入該事件名稱,然后在“value1”字段輸入數字42,最后點擊“test it”。
您的手機應該會在幾秒內受到一條通知,告訴您廷巴克圖的氣溫為42度。如果沒有收到通知,請檢查您手機上的IFTTT應用程序是否安裝正確,以及是否具有發送通知的權限,然后重試。
不要關閉這個瀏覽器頁面,我們下面的操作中還會用到。

將Node-RED 與IFTTT連接

在此documentation頁面上,您將會看到有關如何通過一個特定URL的POST 或GET請求來觸發事件的說明。POST和GET都是我們可以從Node-RED發送到IFTTT的http請求。
因此,將您的節點拖動到工作區上的http請求節點(http request node)。我們需要對該節點進行配置,雙擊節點會打開一個窗口。對于方法,選擇一個POST請求(a POST request);對于URL,復制IFTTT documentation頁面中的URL。
為了測試是否有效,我們需要另一個節點來發送包含溫度值的消息。將一個注入節點(inject node)拖到http請求左側的工作區,然后雙擊進行配置。當設置時間戳時,將其更改為JSON并輸入以下代碼: {“value1”:”16”}

poYBAGPzHU-AEZNMAADofYSFTGQ825.png


點擊Done,然后將注入節點的右側與http請求節點的左側點相連接。點擊Deploy(部署),然后點擊Confirm deploy(確認部署)。

pYYBAGPzHVGAGXFGAACz9-0BPtc555.png


然后按下注入節點的左側按鈕以測試其是否工作正常。您的手機是否接收到了一條廷巴克圖氣溫為16度的通知? 如果一切正常,您就可以關閉IFFT頁面了。需要該頁面的工作已經完成。

獲取真實的天氣信息

既然我們有了獲得消息通知的功能了,現在讓我們來讀取真實的溫度信息。
首先,我們需要斷開注入節點和http請求節點的連接,所以點擊連接了節點的那條線,按下delete鍵。
向下滾動節點列表,直到出現天氣選項。現在將天氣節點(weather node)拖拽到工作區,并雙擊… 等一下!什么天氣節點?什么天氣選項?根本沒有這些內容,不是嗎?
不用擔心,Node-RED會讓該節點(以及其他節點)的安裝變得輕松而快捷。
點擊右上角的菜單欄,然后選擇Manage Palette。點擊install,然后再搜索欄中輸入openweathermap。點擊node-red-node-openweathermap上的install按鈕,然后在出現的對話框中點擊install。
現在我們就有了天氣節點了。接下來,將一個天氣節點拖拽到工作區中,并雙擊進行配置。在城市字段輸入Timbuktu(廷巴克圖),國家字段輸入ML(即馬里)。

poYBAGPzHVSAJCNqAAD19N7iFjo187.png


我們現在需要獲取API密鑰。前往https://openweathermap.org/并注冊一個免費賬號。確認您的電子郵件地址后,點擊包含API密鑰的鏈接,并復制該密鑰。切換回Node-RED頁面,并將該密鑰粘貼到API Key字段中。
當天氣節點被激活時,會獲取一個名為tempc的變量,但IFTTT正在尋找的是一個名為value1的變量。我們可以使用功能節點(function node)來分配該值。
因此,在天氣節點和http請求節點之間拖入一個功能節點,雙擊該節點,并輸入以下代碼:
msg.payload.value1 = msg.payload.tempc

poYBAGPzHVeAM0KHAADv1G8BzN4916.png


現在將注入節點連接到天氣節點,天氣節點連接到功能節點,功能節點連接到http請求節點。然后再執行一次上文中的部署流程。

pYYBAGPzHVmAbJ3pAADjuGquKxk488.png


按下注入節點上的按鈕,測試是否工作正常。這可能需要幾秒鐘的時間,如果一切正常,您應該會收到帶有廷巴克圖實際溫度信息的IFTTT通知。

引入GPIO引腳

該功能也可以通過單擊鼠標來實現,現在我們嘗試通過實際觸摸按鈕來實現該目的。這里不再需要注入節點,所以雙擊該節點然后按下delete鍵。
然后我們連接面包板。首先,將3.3v電源引腳連接到沿著板底部部署的正電源軌。

poYBAGPzHVyAWg0-AAGfg_PokRU135.png


接下來,將按鈕放在板的中間。將一個引腳連接到GPIO引腳13,并將對角相對的引腳連接到正電源軌。

poYBAGPzHV-ALc0uAAG6JdVT73M503.png


所有的連接已經完成!接下來要在Node-RED中進行配置了。向下滾動節點列表,直到看到rpio gpio。將其拖拽到您的工作區。雙擊節點進行配置,并選擇GPIO13。
現在我們已經連接了按鈕,當按鈕被按下時,它會閉合連接了3.3V電源軌的電路,所以我們希望在引腳上有一個下拉電阻,以確保電路斷開時它的讀取值為0。為此,請在電阻菜單中選擇pulldown(下拉電阻)。

pYYBAGPzHWKAcEtRAAFjfVMo_6U393.png


接下來,將gpio節點連接到天氣節點,并再次部署。

pYYBAGPzHWWAbiHOAADLT2lv0JM858.png


按下面包板上的按鈕。如果您完成了所有的連接,手機上應該會接收到通知。

為什么會發送兩條相同消息?

您可能會注意到,按一次按鈕,會出現幾乎同時到達的兩個通知。
由于gpio節點直接連接到了天氣節點,每次邏輯電平發生變化都會觸發事件。而按下按鈕時邏輯電平會發生一次變化,釋放按鈕時會發生另一次變化。
為了僅發送這些消息中的一個,我們需要在這些節點中插入另一個節點。我們可以利用一個轉換節點(switch node)將消息發送到不同節點。
首先刪除gpio節點和天氣節點之間的連接,然后在它們之間放置一個轉換節點。雙擊進行配置,然后在“==”旁邊的文本字段寫入數字1。

poYBAGPzHWiAbfMUAADxmQD6MfM698.png


點擊Done,然后將其連接到gpio節點和天氣節點,再次部署。

pYYBAGPzHWqAJYkzAADu6sNxfH8830.png


現在,當您按下按鈕時,應該只會收到一條通知了。

顯然,這是一個專為練習而構建的項目

通過在手機上安裝一個預報天氣的應用程序來獲取廷巴克圖(或其他任何城市)的天氣信息會容易得多。
但是我們在這里所探索的工作原理會很有用。例如,您可以配置一個設備,來為網站或應用程序提供實時消息。
您還可以通過其他方式來進行連接,并使用來自線上服務的消息來控制您的設備,比如通過使用天氣報告和預報來為家庭或花園進行自動化工作。

Node-RED是一種將事物相接合的一種快捷方法

Node-RED經常被描述為一種讓沒有編程背景的人入門物聯網的工具。但是,雖然它只需要編寫很少的代碼,您仍然需要掌握在使用編程語言時所用到的Web和嵌入式系統的概念。
在這個介紹性的項目中,我們涉及到了http請求、API、JSON數據、邏輯電平、上拉和下拉電阻。我們還需要編寫一個非常簡短的函數。
了解這些內容并不需要您具有相關專業的學位。但是,如果您以前從來沒有作過相關的工作,那么使用更傳統的環境(Python)來入門確實會更合適,也更容易。
如果您已經克服入門時的一些障礙,那么Node-RED將會是很棒的選擇。您可以快速地將所有事物連接在一起,并且明晰地知道它們之間的聯系。這是一個用于快速原型設計以及協調不同設備的出色工具。

pYYBAGPbhjqAbi1JAAAGd6_rQT0867.png

DevicePlus 編輯團隊

設備升級版適用于所有熱愛電子和機電一體化的人。

審核編輯黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 可視化編程
    +關注

    關注

    0

    文章

    5

    瀏覽量

    6173
  • Raspberry Pi
    +關注

    關注

    2

    文章

    559

    瀏覽量

    22240
收藏 人收藏

    評論

    相關推薦

    Node-RED實現電表數據采集并上云

    本案例將通過Docker容器安裝DLT-645協議插件采集實現電表數據上云,前面已經講過ModbusRTU協議通過Node-RED上云,如果采用支持ModbusRTU電表可以參考之前的“Docker
    的頭像 發表于 06-07 08:21 ?2851次閱讀
    <b class='flag-5'>Node-RED</b><b class='flag-5'>實現</b>電表數據采集并上云

    基于node-RedRaspberry Pi的物聯網實驗設計

    基于node-RedRaspberry Pi的物聯網實驗設計,都是小實驗,有人會嗎?
    發表于 03-06 12:11

    Node-Red是什么?如何去學習Node-Red

    Node-Red是什么?如何去學習Node-Red?有哪些方法可以去學習Node-Red
    發表于 07-02 06:11

    新手求助如何去學習Node-Red

    如何去學習Node-Red?怎樣去安裝dashboard這個UI控件庫?
    發表于 09-01 06:53

    第2部分:使用Node-RED的程序

    Understand how to use the Node-RED* interface to add sensors and send data to the AWS* cloud.
    的頭像 發表于 10-26 07:17 ?6687次閱讀

    運用 Node-RED 開發 LoRa 應用

    在之前的課程LoRa G-IoT模塊基礎應用中,我們已經知道如何將從LoRa得到的數值上傳服務器,本文我們將學習撰寫Node-RED,將數據傳送到自己設計的網頁監測接口。
    的頭像 發表于 12-25 17:54 ?807次閱讀

    Raspberry Pi中利用Node-RED控制LED

    在今天的教程中,我們將研究如何使用 Node-RED 在樹莓派上部署簡單的項目。
    的頭像 發表于 09-01 16:00 ?6006次閱讀
    在<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>中利用<b class='flag-5'>Node-RED</b>控制LED

    虹科工業樹莓派Node-RED應用(一) : 低代碼實現狀態監測

    Node-RED是一種可視化編程工具,可以快速實現代碼塊的復用,簡單快捷地構建IIOT程序。本文為大家講解虹科工業樹莓派如何結合Node-RED實現狀態監測,趕緊點開文章了解學習吧!
    的頭像 發表于 11-15 09:58 ?2281次閱讀

    Node-RED在ARM嵌入式工控機上的應用

    BL302 ARM嵌入式工控機Node-RED使用教程
    的頭像 發表于 03-02 18:45 ?4996次閱讀
    <b class='flag-5'>Node-RED</b>在ARM嵌入式工控機上的應用

    Node-red啟動電腦攝像頭案例

    通過Node-red實現打開電腦自帶的攝像頭或者USB攝像頭
    的頭像 發表于 06-01 06:50 ?5246次閱讀
    <b class='flag-5'>Node-red</b>啟動電腦攝像頭案例

    虹科干貨 | 虹科工業樹莓派Node-RED應用(一) : 低代碼實現狀態監測

    虹科IIoT虹科工業樹莓派Node-RED應用(一)低代碼實現狀態監測HongKeTechnology虹/科/干/貨01前言Node-RED是一種編程開發工具,用于以新穎有趣的方式將硬件設備、API
    的頭像 發表于 11-03 17:57 ?1062次閱讀
    虹科干貨 | 虹科工業樹莓派<b class='flag-5'>Node-RED</b>應用(一) : 低代碼<b class='flag-5'>實現</b>狀態監測

    物聯網與ESP32、Node-RED和InfluxDB與WebSocket

    電子發燒友網站提供《物聯網與ESP32、Node-RED和InfluxDB與WebSocket.zip》資料免費下載
    發表于 07-13 09:51 ?0次下載
    物聯網與ESP32、<b class='flag-5'>Node-RED</b>和InfluxDB與WebSocket

    Node-RED安裝本地教程

    Node-RED是一個基于流的開發工具,廣泛應用于物聯網(IoT)、家庭自動化和其他數據驅動的應用程序。它通過圖形化的編程界面,使得非專業程序員也能輕松上手。本文將介紹如何在本地環境中安裝Node-RED,幫助你快速開始項目開發。
    的頭像 發表于 06-24 12:10 ?2119次閱讀
    <b class='flag-5'>Node-RED</b>安裝本地教程

    Node-RED如何制作漂亮的界面

    Node-RED深度融合(如成都的縱橫智控和蘇州穩聯科技將Node-RED與物聯網網關深度融合,打造可視化、硬件加持的物聯網開發平臺,使用者無需編碼即可快速實現各類應用,開拓物聯網無
    的頭像 發表于 06-26 16:50 ?4658次閱讀
    <b class='flag-5'>Node-RED</b>如何制作漂亮的界面

    Node-RED初學者教程-三分鐘學習

    通過這短短三分鐘的教程,你已經掌握了Node-RED的基本操作。你可以利用Node-RED的強大功能來創建更復雜的數據流和自動化任務,無論是物聯網應用、API集成還是數據處理。Node-RED簡化了編程過程,讓開發更直觀、更高效
    的頭像 發表于 06-27 17:09 ?2824次閱讀
    <b class='flag-5'>Node-RED</b>初學者教程-三分鐘學習
    主站蜘蛛池模板: 美女扒开尿口给男人桶爽视频| 777色淫网站女女| 天天做天天爱天天一爽一毛片| freesexvideo性欧美tv| 九九精品在线观看| 国产热视频| 久久综合九色综合欧洲| 日本最黄| 精品国产免费观看久久久| 免费欧美| 欧美乱妇15p| 欧美xxxx性特级高清| 性殴美高清视频| 国产精品一一在线观看| 波多野结衣中文字幕教师| 亚洲国产精品乱码一区二区三区| 日本视频h| 午夜快播| 热re99久久国产精品| 涩涩涩丁香色婷五月网视色| 久久夜色精品国产亚洲| 久操久操| 婷婷色综合网| 一级毛片免费不卡在线视频| 2021天天操| 婷婷激情小说| 又黄又爽的成人免费网站| 日本一区视频| 久青草免费视频| wwwxxx亚洲| 色狠狠狠色噜噜噜综合网| 操美女网址| 99涩涩| 亚洲六月丁香六月婷婷花| 久青草国产在线视频_久青草免| 黄a免费| 色爱区综合| 久久久夜| aaaaaaa欧美黄色大片| 国产精品视频色拍拍| 亚洲一区二区三区免费|