Innehållsförteckning:
- Steg 1: Firebase och Xcode
- Steg 2: Avsluta Xcode
- Steg 3: Installation av Raspberry Pi
- Steg 4: Kapsling
Video: RPi IoT Smart Light med Firebase: 4 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Den här guiden visar hur du skapar och konfigurerar en app för att styra Raspberry Pi via Firebase (en online -databas). Och sedan 3D -utskrift av ett fodral för Pi Zero W, en Powerboost 1000C, ett batteri och en Blinkt !.
För att lättast kunna följa med rekommenderar jag att du känner till Xcode och Raspberry Pi.
Och om du gillar det du ser, följ mig på Instagram och Twitter (@Anders644PI) för att hänga med i vad jag gör.
Du kommer behöva:
-
En Raspberry Pi Zero W med adaptrar och GPIO-headers
(eller den vanliga Pi Zero med en WiFi -dongel)
- En PowerBoost 1000 C
- Ett litiumjonbatteri - 3,7v 2000mAh
- En Blinkt! (eller någon pHAT/HAT, som: använder inte stift 5 fysisk och HAT: ar ska vara platta på botten.)
- Ett 8 GB eller högre Micro SD -kort, med Raspbian Stretch (med skrivbord) på det
- Ett tangentbord och en mus (men du kan också ansluta över ssh, om du nu hur)
- En anslutning till en bildskärm eller TV (eller ssh!)
- Skrotskruvar
- Små trådar
- En liten strömbrytare och en liten knapp
- En 3D -skrivare och en spole av valfri PLA -filament och en spole med transparent PLA (eller så kan du använda en 3D -tjänst som 3D Hubs för att skriva ut den åt dig)
Steg 1: Firebase och Xcode
Först kommer vi att konfigurera Firebase med appen, så att vi kan kommunicera från appen till Pi.
Om du blir förvirrad kan du titta på den här videon.
1. Öppna Xcode och skapa ett nytt Xcode -projekt. Välj Single View App och kalla det RPiAppControl, och se till att språket är Swift. Tryck på Nästa och spara den.
2. Kopiera din paketidentifierare, eftersom vi kommer att behöva det senare.
3. Logga in med ditt Google -konto i Firebase och klicka på Gå till konsolen.
4. Skapa ett nytt projekt och kalla det RPiAppControl.
5. Klicka på Lägg till Firebase i din IOS -app. Klistra in ditt paketidentifierare och tryck på Registrera app.
6. Ladda ner GoogleService-Info.plist och dra den till ditt Xcode-projekt.
7. Tillbaka till Firebase, tryck på Fortsätt. Öppna sedan ett terminalfönster och navigera till platsen för ditt Xcode -projekt.
8. Kör det här kommandot:
pod init
9. Öppna podfilen och under use_frameworks!, lägg till den här raden:
pod 'Firebase/Core'
10. Tillbaka i terminalen: pod installera och stäng Xcode.
11. Navigera till ditt Xcode -projekt i Finder och öppna den nyskapade.xcworkspacefilen.
12. Gå in här till AppDelegate.swift och lägg till den här raden under import UIKit:
importera Firebase
Och i applikationsfunktionen lägger du till den här raden:
FIRApp.configure ().
13. Tillbaka i Firebase, klicka på Fortsätt och sedan på Slutför.
14. Gå till Database, sedan Regler, och ställ in ".read" och ".write" till true. Tryck på PUBLISH.
15. Tillbaka vid Xcode, öppna Podfilen, och under den första raden som vi sätter in, lägg till detta:
pod 'Firebase/Database'
16. Tillbaka i terminalen, kör pod install igen.
Steg 2: Avsluta Xcode
Vi kommer nu att slutföra koden och layouten i Xcode.
Detta använder Xcode 9 och Swift 4
Kod för ViewController 1. Högst upp i ViewController och under import UIKit, lägg till detta:
importera Firebase
importera FirebaseDatabase
2. Längst ned på ViewController och under didReceiveMemoryWarning -funktionen, kopiera in dessa funktioner för varje knapp:
func num1 (tillstånd: String) {
låt ref = FIRDatabase.database (). reference () låt posta: [String: Any] = ["state": state] ref.child ("num1"). setValue (post)}Kom ihåg att ändra (nummer
3. I viewDidLoad -funktionen, under super.viewDidLoad (), sätt in den här raden för varje knapp (För flera knappar, ändra bara (nummer). Se bild …):
num1 (tillstånd: "AV")
Layout av Main.storyboard och knappar
1. Gå till Main.storyboard och sätt i några knappar. Du kan layouta dem som jag gjorde, eller anpassa dem som du vill.
2. Anslut knapparna med ViewController. Varje knapp måste anslutas två gånger: En som en åtgärd och UIButton kallas num (nummer) -knappen, och den andra som standard Outlet och kalla det num (nummer) Color. Se bild…
3. Klistra sedan in på den här raden för var och en av funktionerna för alla knappar:
if self.num1Color.backgroundColor == UIColor.lightGray {// Ställer in bakgrundsfärgen på lightGray
num1 (tillstånd: "ON") // Skickar tillståndet: "ON" till eldbas self.num1Color.backgroundColor = UIColor (röd: 0,96, grön: 0,41, blå: 0,26, alfa: 1,0) // Ställer in bakgrundsfärgen till rödaktig} else {num1 (tillstånd: "OFF") // Skickar tillståndet: "OFF" till firebase self.num1Color.backgroundColor = UIColor.lightGray // Ställer in bakgrundsfärgen till lightGray}
Nu ska du kunna testa det genom att köra appen, och när du trycker på knapparna ska du se att det ändrar tillstånd i Realtime Database i Firebase.
Finisher (tillval)
1. Ladda ner bilderna nedan och sätt in LaunchScreen-image-j.webp
2. Gå till Assets.xcassets och sedan AppIcon. Här, placera i motsvarande AppIcon -storlek.
Steg 3: Installation av Raspberry Pi
Nu måste vi konfigurera Pi med Firebase, så att appen kan kommunicera, kasta Firebase, till Pi.
Jag skrev inte koden, men du hittar den ursprungliga koden här.
1. I terminalen kör du de vanliga uppdateringarna:
sudo apt-get update && sudo apt-get dist-upgrade
2. Sedan importerar vi pyrebase (Firebase):
sudo pip installera pyrebase
sudo pip3 install pyrebase sudo pip3 install-uppgradera google-auth-oauthlib
3. Ladda nu ner Blinkt -biblioteket:
curl https://get.pimoroni.com/blinkt | våldsamt slag
4. Klona mitt GitHub -arkiv:
git -klon https://github.com/Anders644PI/RPiAppControl.gitcd RPiAppControl
5. Redigera AppRPiControl_Template.py:
nano RPiAppControl_Template.py
6. Fyll i din Firebase ApiKey och projectId. Du hittar dessa genom att gå till ditt Firebase -projekt och klicka på Lägg till en annan app och sedan Lägg till Firebase i din webbapp.
7. Anpassa funktionerna och spara dina ändringar genom att trycka på ctrl-o (enter) och stänga med ctrl-x.
8. Kör det nu med:
sudo python3 RPiAppControl_Template.py
9. Om du sedan använder en Blinkt kan du prova exemplet när du har fyllt i din Firebase ApiKey och projectId:
cd -exempel
nano RPiAppControl_blinkt_demo.py
Kör det nu:
sudo python3 RPiAppControl_blinkt_demo.pyTänk på att efter att du har kört manuset tar det ungefär en minut att bli redo (åtminstone på Pi Zero). Och manuset måste köras i python 3
10. BONUS: Om du vill att skriptet ska köras på start kan du ta reda på hur, här.
Avstängning/strömbrytare
Det är valfritt att installera en strömknapp, men jag rekommenderar det. Följ med den här videon för att konfigurera den.
Tänk på att detta använder fysisk pin 5 på Pi, så vissa HATs fungerar inte.
Steg 4: Kapsling
Rekommenderad:
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: 7 steg (med bilder)
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: Jag planerar att använda denna Rapsberry PI i ett gäng roliga projekt tillbaka i min blogg. Kolla gärna in det. Jag ville börja använda mitt Raspberry PI men jag hade inte ett tangentbord eller en mus på min nya plats. Det var ett tag sedan jag installerade en hallon
Smart väckarklocka: en smart väckarklocka tillverkad med hallon Pi: 10 steg (med bilder)
Smart väckarklocka: en smart väckarklocka tillverkad med hallon Pi: Har du någonsin velat ha en smart klocka? I så fall är detta lösningen för dig! Jag gjorde Smart Alarm Clock, det här är en klocka som du kan ändra alarmtiden enligt webbplatsen. När larmet går går det ett ljud (summer) och 2 lampor lyser
IoT RPi LED -meddelandekort: 3 steg (med bilder)
IoT RPi LED Message Board: I denna instruktionsbok har jag skapat ett wifi-anslutet LED-meddelandekort med en Raspberry Pi (RPi). Användare kommer att ansluta till Raspberry Pi: s webbserver med sina webbläsare för att skicka korta meddelanden som kommer att visas på 8x8 LED -skärmen. Sedan interfa
RPi-Zero IoT-händelseindikator / färglampa: 6 steg (med bilder)
RPi-Zero IoT-händelseindikator / färglampa: Ingen ytterligare mikrokontroller, & Ingen HAT-tilläggsmodul krävs. RPi-Zero gör allt. Ännu bättre, använd en RPi-Zero W! Exempelanvändning: Statusindikator för webbtjänst (t.ex. DowJonesIndex-spårning), statusindikator för politiska eller sportevenemang, humörljus
Händelsemeddelanden i realtid med hjälp av NodeMCU (Arduino), Google Firebase och Laravel: 4 steg (med bilder)
Händelsemeddelanden i realtid med hjälp av NodeMCU (Arduino), Google Firebase och Laravel: Har du någonsin velat bli aviserad när det görs en åtgärd på din webbplats men e -post inte passar rätt? Vill du höra ett ljud eller en klocka varje gång du gör en försäljning? Eller så behöver du din omedelbara uppmärksamhet på grund av en nödsituation