- Förutsättningar
- Nödvändiga komponenter
- Installerar Node-RED på Raspberry Pi
- Lanserar Node-RED i Raspberry Pi
- Förstå Node-RED-gränssnittet
- Scheman
- Skapa ett flöde i Node-RED
- Lägga till en tryckknapp / omkopplare i Node-RED-gränssnitt med Raspberry Pi
Har någonsin undrat om det fanns ett sätt att skapa enkla prototyper av IoT-lösningar utan att behöva spendera dagar på att skriva koder eller att bygga praktiska avancerade projekt utan kodning. Ja, detta är möjligt med Node-Red Platform. Node-RED är utvecklat av IBM och är ett programmeringsverktyg med öppen källkod för att koppla ihop hårdvaruenheter, API: er och onlinetjänster på ett nytt och intressant sätt. Det ger en webbläsarbaserad redigerare som gör det enkelt att koppla ihop " flöden" med det breda utbudet av noder i paletten som kan distribueras till dess körning med ett enda klick.
Node-RED är ett kraftfullt verktyg för att bygga IoT-applikationer (Internet of Things) med målet att förenkla programmeringskomponenten.
Den använder visuell programmering som låter dig ansluta kodblock, så kallade noder, tillsammans för att utföra en uppgift. För dagens handledning kommer vi att undersöka hur du kan distribuera enkla projekt på hallon pi med hjälp av Node-RED. Den hallon pi nod röda handledning kommer att täcka;
- Installera Node-RED på Raspberry Pi.
- Introduktion till Node-RED användargränssnitt
- Hur man ställer in Node-RED-flöden
- Så här kontrollerar du Raspberry Pi GPIO-stift med Node-RED
- Hur man använder Node-RED-ingångar, -utgångar och om-annat som beslutsfattande med switchar
Förutsättningar
Denna handledning kommer att baseras på Raspbian stretch OS och jag antar att du är bekant med att ställa in Raspberry Pi med den, och att du vet hur man SSH i Pi med en terminal programvara som kitt. Om du har problem med något av detta finns det massor av Raspberry Pi-handledning på den här webbplatsen som kan hjälpa till.
För att enkelt genomföra handboken kommer jag att rekommendera att du använder en bildskärm ansluten till hallon pi eller att du använder programvaran VNC Viewer. Om du inte har en bildskärm och börjar nytt med Pi kan du läsa den här Headless Raspberry Pi-inställningen för att fortsätta med den här handledningen. Medan Node-Red går från en webbläsare och kan nås på din dator som Pi är ansluten till via Pi: s IP-adress, tror jag att VNC / monitor-upplevelsen ger dig en bättre grej om saker.
Som en demo för att visa hur Node-Red fungerar kommer vi att använda Node-RED för att programmera Raspberry Pi för att styra en lysdiod som är ansluten till sin GPIO och senare modifiera programmet så att LED kan styras från en taktil tryckknapp ansluten till Pi: s GPIO.
Nödvändiga komponenter
Följande komponenter krävs för att bygga detta projekt;
- Raspberry Pi 3 med SD-kort förladdat med Raspbian Stretch förladdat
- 100 ohm motstånd (1)
- LED (1)
- Brödbräda (1)
- Bygeltrådar från man till kvinna
- Taktil tryckknapp (1)
Installerar Node-RED på Raspberry Pi
Medan Node-Red kommer förinstallerat på Raspbian Stretch OS, måste vi uppgradera det innan vi kan njuta av några av dess senaste funktioner. Uppgradera Node-Red testamentet
- Uppgradera den befintliga användaren till LTS 8.x eller 10.x Node.js och senaste Node-RED
- Migrera alla befintliga globalt installerade noder till användarnas ~ /.node-red-utrymme så att de kan hanteras via palethanteraren, det uppdaterar INTE några användare som har installerat befintliga noder. Detta måste göras manuellt av användaren (se nedan).
- Alternativt (re) installera de extra noder som är förinstallerade på en fullständig Raspbian Pi-bild.
Processen med att uppgradera Node-Red liknar dock att installera en ny, så för denna handledning kommer vi bara att behandla den som en ny installation så att personer som använder andra OS-versioner kan följa.
Följ stegen nedan för att installera / uppgradera Node-RED på din Raspberry Pi.
Vi börjar med att uppgradera och uppdatera pi, för att säkerställa att allt på det är uppdaterat och undvika kompatibilitetsproblem. Gör detta genom att öppna en terminal eller via ssh, och kör;
Sudo apt-get-uppdatering
följd av
sudo apt-get uppgradering
När detta är gjort, kör bash-skriptet nedan på terminalen;
bash <(curl -sL
Den bash script kommer att göra följande saker
- Fråga om du vill (om) installera extra Pi-noder
- Spara en lista över alla globalt installerade nodröda noder som finns i / usr / lib / node_modules
- apt-get ta bort befintlig Node-Red
- ta bort alla nodröda binärer från / usr / bin och / usr / local / bin
- Ta bort alla nodröda moduler från / usr / lib / node_modules och / usr / local / lib / node_modules
- Upptäck om Node.js installerades från Node.js-paketet eller Debian
- Om inte v8 eller nyare - ta bort vid behov och installera senaste v8 eller v10 LTS (använder inte apt).
- Rensa ut npm-cache och.node-gyp-cache för att ta bort tidigare versioner av koden
- Installera Node-RED senaste versionen
- Installera om alla noder som tidigare installerats globalt under användarkontot
- Installera om extra Pi-noder om det behövs
- Bygg om alla noder - för att kompilera om binära filer för att matcha senaste Node.js-versionen
- Lägg till kommandon nod-röd-start, nod-röd-stopp och nod-röd-logg till / usr / bin
- Lägg till menygenväg och ikon
- Lägg till systemskript och ställ in användare
- Om du lägger till en CPU-temperatur på en Pi -> exempel på IoT
Bash-skriptet ovan kör många kommandon som sudo och raderar befintliga Node.js och kärnkoderna Node-RED. Du kan kontrollera innehållet i skriptet på den här GitHub-sidan innan du kör det för att vara säker på att det inte påverkar något projekt du redan har på Pi.
När installationen är klar bör du nu se Node-Red-ikonen under programmeringsapplistan på din meny.
Lanserar Node-RED i Raspberry Pi
Node-Red kan startas via menysektionen från ditt hallon pi-skrivbord, via terminalen eller via ssh.
För att starta på hallon pi-skrivbordet, klicka på Raspberry-ikonen, håll musen på Programmering, klicka på Node-RED (Meny> Programmering> NodeRed) för att starta den.
Det kan också startas från ssh eller terminal genom att köra;
nod-röd-start
Du bör se ett fönster som det nedan som visar nodröd start på skrivbordet.
När du ser det här, gå till meny-> internet och starta webbläsaren krom. Medan din Raspberry pi inte behöver internet för att köra Node-Red, använder den en webbläsare som gränssnitt.
När krom lanseras anger du localhost: 1880 i adressfältet följt av Enter-tangenten. 1880 är porten på hallon pi som Node-Red är förinställd för att kommunicera. Detta ska visa gränssnittet Node-Red som visas i bilden nedan.
Förstå Node-RED-gränssnittet
De gränssnitts Node-Röda består av den flödespanelen, den palett noder, debug konsoler och info konsol vilket betonas i bilden ovan.
Den flödespanelen är där noderna är förenade tillsammans för att skapa ett program som i Node-röd kallas flöde, medan paletten Node består av föremål som är representativa för hårdvara, protokoll och mjukvara egenskaper som hör ihop med enheter. Den innehåller protokoll som MQTT för IoT och GPIO-utmatnings- och inmatningslägen för kort som hallon pi. Den info konsolen ger information om markerade / valda objekt medan debug-konsolfungerar precis som Arduino Serial monitor och kan ge feedback medan flödet körs. Distribueringsknappen används för att ladda upp flödet till målhårdvara. Menyknappen innehåller olika uppladdningstyper som hjälper dig att få ut det bästa av ditt projekt. När Node-Red är igång kan vi nu fortsätta bygga demoprojektet.
Scheman
Som nämnts under introduktionen kommer vårt demoprojekt för idag att vara att kontrollera Raspberry Pi's GPIO med hjälp av ett Node-RED-flöde. För att visa variationen i GPIO: s tillstånd kommer vi att ansluta en LED till GPIO så att när den specifika GPIO-stiftet slås på tänds lysdioden och vice versa.
Anslut lysdioden till Raspberry PI enligt bilden nedan.
Jag bygger också detsamma på min hårdvara med hjälp av ett brödbräda, LED, motstånd och några anslutande ledningar. Min hårdvaruinstallation ser ungefär så här ut när anslutningarna har gjorts.
Detta projekt kan enkelt omvandlas till ett hemautomatiseringsprojekt, bara genom att ersätta lysdioden med ett relä och någon AC-apparat, lär dig hur du gör det genom att gå igenom olika hemautomationsprojekt.
Skapa ett flöde i Node-RED
Med lysdioden ansluten kan vi fortsätta utveckla flödet. Program i NodeRed kallas flöden precis som Arduino IDE kallar dem skisser. Flöden skapas med en kombination av noder. Du kan skapa flera flöden som alla kan köras samtidigt, men för denna handledning skapar vi ett enda flöde för att slå på / av lysdioden.
Till att börja med, bläddra till botten av Noder-paletten, du ser avsnittet hallon pi-noder mot slutet med två noder märkta rpigpio. Dessa noder används för att kommunicera med hallon-pis GPIO. En av noderna är för inmatning medan den andra är för utdata som differentieras av placeringen av hallon Pi-logotypen. För inmatningsnoden kommer logotypen före texten, medan för utgångsnod kommer logotypen efter texten som visas i bilden nedan.
För denna handledning kommer vi att använda utgångsnoden, dra den till flödesavsnittet i gränssnittet. Det här steget liknar att deklarera en viss stift i din Arduino som utdata med kommandot pinMode () . Dubbelklicka på utgångsnoden och ett popup-fönster öppnas som visas nedan så att du kan redigera nodens egenskaper.
Under GP-egenskapssektionen väljer du GPIO17 (pin 11). Ställ sedan in typegenskapen till “ digital utgång ” och markera “ Initiera pin-tillstånd?” kryssrutan som låter alternativet " initial nivå av stift " vara lågt (0). Ge noden vilket namn du vill och klicka på knappen färdiga.
Namnet på noden ska automatiskt ändras till det du angav under inställningen för egenskaper. Till exempel namngav jag det som LED och därmed ändras också nodnamnet som LED som visas nedan.
För att sätta på / stänga av lysdioden måste vi använda en ingång, något för att driva åtgärden. Medan vi kan använda en tryckknapp vill jag använda den här för att introducera funktionen i Node-RED som gör det möjligt att injicera meddelanden i flöden. Dessa funktioner kallas injicera nod. Vi kommer att använda två injiceringsnoder. En kommer att vara att tända lampan medan den andra kommer att stänga av den.
Gå till nodpaletten och dra injiceringsnoden till flödet. Det är den första noden i paletten med en pil, injiceringsnoden är markerad i bilden nedan.
Dubbelklicka på den för att redigera dess egenskaper. Ändra datatypen till sträng genom att klicka på rullgardinsmenyn framför nyttolasten och Ange 1 i rutan Nyttolast. Värdet i nyttolådan är det som kommer att injiceras i flödet när noden trycks in. Ställ in namnet på noden till "ON" Tryck på "Klar" -knappen för att spara.
Upprepa ovan för den andra noden, ställ in nyttolastvärdet till “0” och dess namn som “av” som visas nedan.
Enligt egenskaper funktionen för upprepning kan dropdown användas för att automatisera injektion så att knapparna trycks i intervaller. Detta kan användas för att skapa en blinkande effekt. Gå ihop noder som visas nedan genom att dra den grå pricken på en av noderna till den andra för att skapa flödet.
Med det gjort har vi nu slutfört vårt allra första Node-Red Flow.
Nästa steg är att vi distribuerar flödet på hallon pi. Klicka på den röda distributionsknappen. Du bör se "framgångsrikt distribuerat" blinka högst upp på skärmen som visas nedan.
Klicka på den grå knappen bakom injiceringsnoderna för att aktivera var och en av noderna.
Genom att klicka på "på" injektionsnoden, bör du se framgångsrikt injicerad "på" visas och lysdioden tänds. Lysdioden ska släcka när du klickar på injektionsnoden "av".
Det är allt. Den fullständiga bearbetningen av denna inställning finns i den länkade videon längst ner på denna sida.
Lägga till en tryckknapp / omkopplare i Node-RED-gränssnitt med Raspberry Pi
För att förklara hur man ansluter / lägger till ett ingångselement till ditt flöde tar vi ovanstående flöde vidare genom att lägga till en tryckknapp för att ersätta injiceringsnoderna.
Anslut tryckknappen till hallon pi, så att ena benet på tryckknappen är ansluten till marken och den andra är ansluten till GPIO-stift 4 (stift 11) på raspbery pi, som visas i schemat nedan.
När detta är gjort, gå tillbaka till Node-Red och ta bort de två injiceringsnoderna vi använde tidigare, genom att klicka på noderna och trycka på delete på tangentbordet eller dubbelklicka på noderna och trycka på delete i popup-fönstret. När du är klar bläddrar du ner nodpallen till avsnittet hallon pi och väljer inmatningsnoden. Det är den med hallon pi-ikonen till vänster, före nodens namn.
Dra noden till flödet och dubbelklicka på den för att redigera egenskaper. Ställ stiftet på GPIO 4 (stift 11) och ställ in rullgardinsmenyn framför motståndet för att dra upp. Detta kommer att "dra upp" GPIO 4 till HÖG. Klicka på knappen färdiga efter att du har ställt in egenskaperna.
För att låta oss fatta logiska beslut när omkopplaren trycks in snarare än att bara kortsluta GPIO4 till marken kommer vi att använda omkopplarnoden. Sök efter den i nodpaletten under funktionsavsnittet och dra till flödet.
Växelnoden låter dig fatta beslut på ett sätt som liknar "if" -uttalandena. Den kan ställas in för att ha olika utgångar beroende på ingångsvärdet. För den här självstudien kommer vi att konfigurera den med två utgångsvägar, så att när egenskapen msg.payload är lika med 1 (omkopplaren trycks inte) ska den följa den första sökvägen och en andra sökväg följs om någon annan ingång annat än 1 observeras vid ingången (omkopplaren trycks ned). Sökvägar läggs till med knappen "+ lägg till". Dubbelklicka på noden och konfigurera enligt beskrivningen ovan. Klicka på klart när du är klar.
Så snart du trycker på den färdiga knappen bör du se de två vägarna återspeglas i omkopplarnodens utsikter, eftersom den nu har två korsningar vid utgången.
Därefter måste vi ta med en "ändra" nod. Förändringen nod kommer att användas för att ställa in tillståndet för LED baserat på resultatet av argumentet oden.
Vi kommer att använda två av ändringsnoderna. Nyttolasten för den första kommer att sättas till 0 enligt bilden nedan och nyttolasten för den andra till en. Klicka på gjort efter att ha redigerat egenskaperna för båda.
För att bättre förklara, kom ihåg att vi använde uppdragsmotståndet? När knappen inte trycks in kommer utgången vid den stiften att vara HÖG (1), vilket innebär att om vi passerar den genom omkopplarnoden kommer lysdioden att vara "på", eftersom detta inte borde vara så kommer vi använd "ändra" -noden för att ställa in den som LOW (0). Den andra ”ändringsnoden” används för att ställa in värdet till ett sådant att när något annat än HÖG-tillståndet för GPIO-stift 4 detekteras, ska den tända lysdioden ”på” eftersom detta innebär att tryckknappen har tryckts in. Anslut ändringsnoderna och resten av noderna tillsammans enligt bilden nedan.
Med detta gjort är vi nu redo att distribuera projektet. Gå över anslutningen för att säkerställa att allt är som det ska vara och klicka sedan på distributionsknappen. Som vanligt, om du lyckas ska du se popupen lyckas och nu kunna styra ledningen med hjälp av omkopplaren.
Medan Node-Red gör det enkelt och snabbt att prototypa din byggnad utan att oroa dig för koden, kanske det faktiskt inte passar bäst, särskilt för erfarna utvecklare som vill ha flexibilitet och kontroll över programmet. Ändå är det ett bra verktyg som låter dig bygga prototyp på några minuter.
Tills nästa gång!