Kazalo:
- 1. korak: Firebase in Xcode
- 2. korak: Dokončanje Xcode
- 3. korak: Nastavitev Raspberry Pi
- 4. korak: ohišje
Video: Pametna luč RPi IoT z uporabo Firebase: 4 koraki (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Ta priročnik vam pokaže, kako narediti in nastaviti aplikacijo za nadzor Raspberry Pi prek Firebase (spletna zbirka podatkov). In potem 3D tiskanje ohišja za Pi Zero W, Powerboost 1000C, baterijo in Blinkt !.
Za lažje spremljanje priporočam, da se seznanite z Xcode in Raspberry Pi.
In če vam je všeč tisto, kar vidite, me spremljajte na Instagramu in Twitterju (@Anders644PI), da boste v koraku s tem, kar naredim.
Boste potrebovali:
-
Raspberry Pi Zero W z adapterji in glavami GPIO
(ali navaden Pi Zero z ključem WiFi)
- PowerBoost 1000 C.
- Litij -ionska baterija - 3,7 V 2000 mAh
- Blinkt! (ali kateri koli pHAT/HAT, ki: ne uporablja pin 5 fizično in HAT morajo biti ravni na dnu.)
- Kartica Micro SD 8 GB ali več z Raspbian Stretch (z namizjem) na njej
- Tipkovnica in miška (lahko pa se povežete tudi prek ssh, če zdaj kako)
- Povezava z monitorjem ali televizorjem (ali ssh!)
- Odtočni vijaki
- Majhne žice
- Majhno stikalo in majhen gumb
- 3D -tiskalnik in en kolut iz katere koli barvne nitke PLA in en tuljava prozornega PLA (za tiskanje lahko uporabite storitev 3D, kot so 3D Hub)
1. korak: Firebase in Xcode
Najprej bomo z aplikacijo nastavili Firebase, tako da lahko iz aplikacije komuniciramo s Pi.
Če ste zmedeni, si lahko ogledate ta video.
1. Odprite Xcode in ustvarite nov projekt Xcode. Izberite aplikacijo Single View in jo poimenujte RPiAppControl ter se prepričajte, da je jezik Swift. Pritisnite Naprej in ga shranite.
2. Kopirajte svoj identifikator svežnja, ker ga bomo potrebovali kasneje.
3. V Firebase se prijavite z Google Računom in kliknite Pojdi na konzolo.
4. Ustvarite nov projekt in ga pokličite RPiAppControl.
5. Kliknite Dodaj Firebase v aplikacijo IOS. Prilepite identifikator svežnja in pritisnite Register App.
6. Prenesite GoogleService-Info.plist in ga povlecite v svoj projekt Xcode.
7. Nazaj v Firebase pritisnite Nadaljuj. Nato odprite terminalsko okno in se pomaknite do lokacije vašega projekta Xcode.
8. Zaženite ta ukaz:
pod init
9. Odprite Podfile in pod use_frameworks!, dodaj to vrstico:
pod 'Firebase/Core'
10. Vrnite se v vrsto terminala: pod install in zaprite Xcode.
11. V Finderju se pomaknite do svojega projekta Xcode in odprite novo ustvarjeno datoteko.xcworkspace.
12. Tukaj pojdite na AppDelegate.swift in pod uvozni UIKit dodajte to vrstico:
uvoz Firebase
In v aplikacijski funkciji dodajte to vrstico:
FIRApp.configure ().
13. Nazaj v Firebase kliknite Nadaljuj in nato Dokončaj.
14. Pojdite na bazo podatkov, nato Pravila in nastavite ".read" in ".write" na true. Pritisnite OBJAVI.
15. Nazaj v Xcode odprite Podfile in pod prvo vrstico, ki smo jo nastavili, dodajte to:
pod 'Firebase/Baza podatkov'
16. Nazaj v terminalu znova zaženite pod install.
2. korak: Dokončanje Xcode
Sedaj bomo dokončali kodo in postavitev v Xcode.
Ta uporablja Xcode 9 in Swift 4
Koda za ViewController1. Na vrhu ViewControllerja in pod uvoznim UIKitom dodajte to:
uvoz Firebase
uvoz FirebaseDatabase
2. Na dnu ViewControllerja in pod funkcijo didReceiveMemoryWarning kopirajte prilepite te funkcije za vsak gumb:
func num1 (stanje: String) {
naj ref = FIRDatabase.database (). reference () naj objavi: [String: Any] = ["stanje": stanje] ref.child ("num1"). setValue (post)}Ne pozabite spremeniti številke
3. V funkciji viewDidLoad pod super.viewDidLoad () vnesite to vrstico za vsak gumb (Za več gumbov preprosto spremenite (številko). Glejte sliko …):
num1 (stanje: "OFF")
Postavitev glavne plošče in gumbov
1. Pojdite na Main.storyboard in vnesite nekaj gumbov. Lahko jih postavite tako, kot sem jih jaz, ali pa jih prilagodite po želji.
2. Gumbe povežite s ViewControllerjem. Vsak gumb je treba dvakrat povezati: enega kot dejanje in gumb UIB, imenovan gumb številka (številka), drugega pa kot privzeto vtičnico in ga poimenujte številka (številka) Barva. Oglejte si sliko…
3. Nato za vse gumbe prilepite v to vrstico vsako funkcijo:
if self.num1Color.backgroundColor == UIColor.lightGray {// Barvo ozadja nastavi na lightGray
num1 (stanje: "ON") // Pošlje stanje: "ON" firebase self.num1Color.backgroundColor = UIColor (rdeča: 0,96, zelena: 0,41, modra: 0,26, alfa: 1,0) // Barvo ozadja nastavi na reddish} else {num1 (state: "OFF") // Pošlje stanje: "OFF" firebase self.num1Color.backgroundColor = UIColor.lightGray // Barvo ozadja nastavi na lightGray}
Zdaj bi ga morali preizkusiti z zagonom aplikacije in ko pritisnete gumbe, bi morali videti, da se stanje spreminja v zbirki podatkov v realnem času v Firebase.
Zaključni dotiki (neobvezno)
1. Prenesite slike spodaj in vstavite LaunchScreen-image-j.webp
2. Pojdite na Assets.xcassets in nato AppIcon. Tukaj postavite ustrezno AppIcon velikost.
3. korak: Nastavitev Raspberry Pi
Zdaj moramo nastaviti Pi z Firebase, tako da lahko aplikacija komunicira, Firebase vrže na Pi.
Kode nisem napisal, lahko pa izvirno kodo najdete tukaj.
1. V terminalu zaženite običajne posodobitve:
sudo apt-get update && sudo apt-get dist-upgrade
2. Nato bomo uvozili pyrebase (Firebase):
sudo pip namestite pyrebase
sudo pip3 namestite pyrebase sudo pip3 namestite --upgrade google-auth-oauthlib
3. Zdaj prenesite knjižnico Blinkt:
curl https://get.pimoroni.com/blinkt | bash
4. Kloniraj moje skladišče GitHub:
git clone https://github.com/Anders644PI/RPiAppControl.gitcd RPiAppControl
5. Uredite AppRPiControl_Template.py:
nano RPiAppControl_Template.py
6. Vnesite svoj Firebase ApiKey in projectId. Najdete jih tako, da odprete svoj projekt Firebase, kliknete Dodaj drugo aplikacijo in nato v svojo spletno aplikacijo dodate Firebase.
7. Prilagodite funkcije in shranite spremembe s pritiskom na ctrl-o (enter) in zaprite s ctrl-x.
8. Zdaj ga zaženite z:
sudo python3 RPiAppControl_Template.py
9. Če uporabljate Blinkt, lahko poskusite z primerom, ko izpolnite svoj Firebase ApiKey in projectId:
cd primeri
nano RPiAppControl_blinkt_demo.py
Zdaj ga zaženite:
sudo python3 RPiAppControl_blinkt_demo.pyUpoštevajte, da po zagonu skripta traja približno minuto, da se pripravi (vsaj na Pi Zero). Skript je treba zagnati v pythonu 3
10. BONUS: Če želite, da se skript izvaja ob zagonu, lahko izvedete, kako, tukaj.
Gumb za izklop/vklop
Namestitev gumba za vklop ni obvezna, vendar ga priporočam. Sledite temu videoposnetku, da ga nastavite.
Upoštevajte, da ta uporablja fizični pin 5 na Pi, zato nekateri HAT ne bodo delovali.
4. korak: ohišje
Priporočena:
Pametna namizna LED luč - Pametna razsvetljava W/ Arduino - Delovni prostor Neopixels: 10 korakov (s slikami)
Pametna namizna LED luč | Pametna razsvetljava W/ Arduino | Delovni prostor Neopixels: Danes preživljamo veliko časa doma, študiramo in virtualno delamo, zakaj torej ne bi povečali svojega delovnega prostora s prilagojenim in pametnim sistemom osvetlitve, ki temelji na LED -diodah Arduino in Ws2812b. Tukaj vam pokažem, kako zgradite svoj pametni Namizna LED luč, ki
Zaporedna LED luč z uporabo večbarvnih LED: 3 koraki (s slikami)
Serijska LED luč z uporabo večbarvnih LED: serijska LED luč ni tako draga, če pa ste ljubitelj DIY (hobist), kot sem jaz, lahko naredite lastne serijske LED diode in je cenejša od svetlobe, ki je na voljo na trgu. naredil bom svojo serijsko LED luč, ki deluje na 5 Vol
DIY pametna luč z Raspberry Pi Zero: 4 koraki (s slikami)
DIY pametna luč z Raspberry Pi Zero: Pametne luči postajajo vse bolj priljubljene. Takšne luči so običajno LED luči, ki jih je mogoče upravljati prek WiFi ali Bluetooth. Barve, nasičenost in svetlost lahko spremenite s pametnim telefonom. Ena stvar, ki sem jo spoznal, je, da je pogosto pametna li
Preprosta nočna luč z uporabo pravljičnih luči: 3 koraki (s slikami)
Enostavna nočna luč z uporabo pravljičnih luči: Včasih sem uporabljal preprosto nočno žarnico, potem pa sem imel nekaj čudovitih pravljičnih luči, pomislil sem, zakaj jih ne bi uporabil kot nočno luč? To tudi preprečuje, da bi žarnica motila spanec, če bi kdaj vstala ponoči in kar je najpomembneje, razgled je neverjeten
Intimna video luč/ ročna fotografska luč .: 7 korakov (s slikami)
Intimna video luč/ ročna fotografska luč. Vem, kaj mislite. Z " intimno " Mislil sem od blizu na razsvetljavo v težkih svetlobnih razmerah-ne nujno za " intimne situacije " (Vendar se lahko uporabi tudi za to …) Kot snemalec v New Yorku-ali