Indholdsfortegnelse:
- Trin 1: Firebase og Xcode
- Trin 2: Afslutning af Xcode
- Trin 3: Opsætning af Raspberry Pi
- Trin 4: Kapsling
Video: RPi IoT Smart Light Brug af Firebase: 4 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Denne vejledning viser dig, hvordan du opretter og opsætter en app til at styre Raspberry Pi via Firebase (En online database). Og så 3D -udskrivning af etui til Pi Zero W, en Powerboost 1000C, et batteri og en Blinkt !.
For nemmest at kunne følge med anbefaler jeg at være fortrolig med Xcode og Raspberry Pi.
Og hvis du kan lide det, du ser, følg mig på Instagram og Twitter (@Anders644PI) for at følge med i, hvad jeg laver.
Du får brug for:
-
En Raspberry Pi Zero W med adaptere og GPIO-headere
(eller den almindelige Pi Zero med en WiFi -dongle)
- En PowerBoost 1000 C
- Et litiumionbatteri - 3,7v 2000mAh
- Et blinkt! (eller enhver pHAT/HAT, der: ikke bruger pin 5 fysisk, og HAT'er skal være flade i bunden.)
- Et Micro SD -kort på 8 GB eller højere med Raspbian Stretch (med skrivebord) på
- Et tastatur og en mus (men du kan også oprette forbindelse via ssh, hvis du nu gør det)
- En forbindelse til en skærm eller et tv (eller ssh!)
- Skrotskruer
- Små ledninger
- En lille kontakt og en lille knap
- En 3D -printer og en spole i enhver farve PLA -filament og en spole med gennemsigtig PLA (eller du kan bruge en 3D -service som 3D Hubs til at udskrive den for dig)
Trin 1: Firebase og Xcode
Først konfigurerer vi Firebase med appen, så vi kan kommunikere fra appen til Pi.
Hvis du bliver forvirret, kan du se denne video.
1. Åbn Xcode, og lav et nyt Xcode -projekt. Vælg Single View App, og kald det RPiAppControl, og sørg for, at sproget er hurtigt. Tryk på Næste, og gem det.
2. Kopier dit bundt -id, for det får vi brug for senere.
3. Log ind med din Google -konto i Firebase, og klik på Gå til konsol.
4. Opret et nyt projekt, og kald det RPiAppControl.
5. Klik på Tilføj Firebase til din IOS -app. Indsæt dit bundt -id, og tryk på Registrer app.
6. Download GoogleService-Info.plist, og træk den ind i dit Xcode-projekt.
7. Tilbage til Firebase, tryk på Fortsæt. Åbn derefter et terminalvindue og naviger til placeringen af dit Xcode -projekt.
8. Kør denne kommando:
pod init
9. Åbn Podfilen, og under use_frameworks!, tilføj denne linje:
pod 'Firebase/Core'
10. Tilbage i terminaltypen: pod -installation, og luk Xcode.
11. Naviger til dit Xcode -projekt i Finder, og åbn den nyoprettede.xcworkspacefile.
12. Gå her til AppDelegate.swift, og tilføj denne linje under import UIKit:
importer Firebase
Og tilføj denne linje i applikationsfunktionen:
FIRApp.configure ().
13. Tilbage i Firebase, klik på Fortsæt og derefter på Afslut.
14. Gå til Database, derefter Regler, og indstil ".read" og ".write" til true. Tryk på PUBLISH.
15. Tilbage ved Xcode, åbn Podfilen, og tilføj denne under den første linje, vi satte ind:
pod 'Firebase/Database'
16. Tilbage i terminalen, kør podinstallation igen.
Trin 2: Afslutning af Xcode
Vi afslutter nu koden og layoutet i Xcode.
Dette bruger Xcode 9 og Swift 4
Kode til ViewController 1. Øverst på ViewController og under import -UIKit tilføjes dette:
importer Firebase
importer FirebaseDatabase
2. I bunden af ViewController og under didReceiveMemoryWarning -funktionen skal du kopiere og indsætte disse funktioner for hver knap:
func num1 (tilstand: streng) {
lad ref = FIRDatabase.database (). reference () lad indlæg: [String: Any] = ["state": state] ref.child ("num1"). setValue (post)}Husk at ændre (nummer
3. I viewDidLoad -funktionen under super.viewDidLoad () skal du indsætte denne linje for hver knap (For flere knapper skal du bare ændre (nummer). Se billede …):
num1 (tilstand: "OFF")
Layout af Main.storyboard og knapper
1. Gå til Main.storyboard, og sæt nogle knapper i. Du kan layoute dem som jeg gjorde, eller tilpasse dem som du vil.
2. Tilslut knapperne med ViewController. Hver knap skal forbindes to gange: En som en handling og UIB -knap kaldet num (nummer) -knap, og den anden som standard Outlet og kalder det num (nummer) Farve. Se billede…
3. Indsæt derefter for alle knapperne denne linje i hver af funktionerne:
hvis self.num1Color.backgroundColor == UIColor.lightGray {// Sætter baggrundsfarven til lightGray
num1 (tilstand: "ON") // Sender tilstanden: "ON" til firebase self.num1Color.backgroundColor = UIColor (rød: 0,96, grøn: 0,41, blå: 0,26, alfa: 1,0) // Indstiller baggrundsfarven til rødlig} else {num1 (tilstand: "OFF") // Sender tilstanden: "OFF" til firebase self.num1Color.backgroundColor = UIColor.lightGray // Sætter baggrundsfarven til lightGray}
Nu skulle du være i stand til at teste det ved at køre appen, og når du trykker på knapperne, skal du se den ændre tilstand i Realtime Database i Firebase.
Efterbehandling (valgfrit)
1. Download billederne herunder, og indsæt LaunchScreen-image-j.webp
2. Gå til Assets.xcassets og derefter AppIcon. Her skal du placere den i den tilsvarende AppIcon -størrelse.
Trin 3: Opsætning af Raspberry Pi
Nu skal vi konfigurere Pi med Firebase, så appen kan kommunikere, kaste Firebase, til Pi.
Jeg skrev ikke koden, men du kan finde den originale kode her.
1. Kør de sædvanlige opdateringer i terminalen:
sudo apt-get update && sudo apt-get dist-upgrade
2. Så importerer vi pyrebase (Firebase):
sudo pip installer pyrebase
sudo pip3 install pyrebase sudo pip3 install-opgrader google-auth-oauthlib
3. Download nu Blinkt -biblioteket:
krølle https://get.pimoroni.com/blinkt | bash
4. Klon mit GitHub -lager:
git -klon https://github.com/Anders644PI/RPiAppControl.gitcd RPiAppControl
5. Rediger AppRPiControl_Template.py:
nano RPiAppControl_Template.py
6. Udfyld din Firebase ApiKey og projectId. Du kan finde disse ved at gå til dit Firebase -projekt og klikke på Tilføj en anden app og derefter føje Firebase til din webapp.
7. Tilpas funktionerne, og gem dine ændringer ved at trykke på ctrl-o (enter) og lukke med ctrl-x.
8. Kør det nu med:
sudo python3 RPiAppControl_Template.py
9. Hvis du derefter bruger en Blinkt, kan du prøve eksemplet, når du har udfyldt din Firebase ApiKey og projectId:
cd eksempler
nano RPiAppControl_blinkt_demo.py
Kør det nu:
sudo python3 RPiAppControl_blinkt_demo.pyHusk, at efter at du har kørt scriptet, tager det cirka et minut at blive klar (I hvert fald på Pi Zero). Og scriptet skal køres i python 3
10. BONUS: Hvis du vil have scriptet til at køre på boot, kan du finde ud af hvordan, her.
Lukning/tænd/sluk -knap
Det er valgfrit at installere en tænd / sluk -knap, men jeg anbefaler det. Følg med på denne video for at konfigurere den.
Husk, at dette bruger fysisk pin 5 på Pi, så nogle HAT'er virker ikke.
Trin 4: Kapsling
Anbefalede:
IoT Smart Clock Dot Matrix Brug Wemos ESP8266 - ESP Matrix: 12 trin (med billeder)
IoT Smart Clock Dot Matrix Brug Wemos ESP8266-ESP Matrix: Lav dit eget IoT Smart Clock, der kan: Display ur med et smukt animationsikon Display Påmindelse-1 til Påmindelse-5 Vis kalender Vis muslimsk bønnetid Vis vejrinformation Vis Nyheder Vis råd Vis Bitcoin rate Display
I2C / IIC LCD -skærm - Brug et SPI LCD til I2C LCD Display Brug SPI til IIC modul med Arduino: 5 trin
I2C / IIC LCD -skærm | Brug en SPI LCD til I2C LCD -skærmen Brug af SPI til IIC -modulet med Arduino: Hej fyre, da en normal SPI LCD 1602 har for mange ledninger at tilslutte, så det er meget svært at grænseflade det med arduino, men der er et modul på markedet, som kan konverter SPI -skærm til IIC -skærm, så du skal kun tilslutte 4 ledninger
Neopixel Ws2812 Rainbow LED Glød Med M5stick-C - Kører Rainbow på Neopixel Ws2812 Brug af M5stack M5stick C Brug af Arduino IDE: 5 trin
Neopixel Ws2812 Rainbow LED Glød Med M5stick-C | Kører Rainbow på Neopixel Ws2812 Brug af M5stack M5stick C Brug af Arduino IDE: Hej fyre i denne instruktion vil vi lære at bruge neopixel ws2812 LED'er eller led strip eller led matrix eller led ring med m5stack m5stick-C udviklingstavle med Arduino IDE, og vi vil lave et regnbuemønster med det
IoT Cat Feeder Brug Particle Photon Integreret Med Alexa, SmartThings, IFTTT, Google Sheets: 7 trin (med billeder)
IoT Cat Feeder ved hjælp af Particle Photon Integreret med Alexa, SmartThings, IFTTT, Google Sheets: Behovet for en automatisk kattefoder er selvforklarende. Katte (vores kats navn er Bella) kan være modbydelige, når de er sultne, og hvis din kat er som min, vil den spise skålen tør hver gang. Jeg havde brug for en måde til automatisk at dosere en kontrolleret mængde mad
SMART IRRIGATION SYSTEM Brug af IoT # 'Built on BOLT': 6 trin (med billeder)
SMART IRRIGATIONSSYSTEM Brug af IoT # 'Built on BOLT': Smart Irrigation System er en IoT -baseret enhed, der er i stand til at automatisere kunstvandingsprocessen ved at analysere jordens fugtighed og klimatilstanden (som regnvejr). blive vist i grafisk form på BOLT