Inhoudsopgave:
- Stap 1: Firebase en Xcode
- Stap 2: Xcode afwerken
- Stap 3: Raspberry Pi-configuratie
- Stap 4: Behuizing
Video: RPi IoT Smart Light met Firebase - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Deze handleiding laat zien hoe je een app maakt en instelt om de Raspberry Pi te bedienen via Firebase (een online database). En dan 3D-printen van een behuizing voor de Pi Zero W, een Powerboost 1000C, een batterij en een Blinkt!.
Om het gemakkelijkst te kunnen volgen, raad ik aan bekend te zijn met Xcode en Raspberry Pi.
En als je het leuk vindt wat je ziet, volg me dan op Instagram en Twitter (@Anders644PI) om op de hoogte te blijven van wat ik maak.
Je zal nodig hebben:
-
Een Raspberry Pi Zero W met adapters en GPIO-headers
(of de gewone Pi Zero met een wifi-dongle)
- Een PowerBoost 1000 C
- Een lithium-ionbatterij - 3.7v 2000mAh
- Een Blinkt! (of een pHAT/HAT, die: geen fysieke pin 5 gebruikt en HAT's plat op de bodem moeten liggen.)
- Een Micro SD-kaart van 8 GB of hoger, met Raspbian Stretch (met desktop) erop
- Een toetsenbord en een muis (maar je kunt ook verbinding maken via ssh, als je nu hoe)
- Een aansluiting op een monitor of tv (of ssh!)
- Schroot schroeven
- kleine draden
- Een kleine schakelaar en een kleine knop
- Een 3D-printer en een spoel van een kleur PLA-filament en een spoel van transparant PLA (of u kunt een 3D-service zoals 3D Hubs gebruiken om het voor u af te drukken)
Stap 1: Firebase en Xcode
Eerst zullen we Firebase instellen met de app, zodat we van de app naar de Pi kunnen communiceren.
Als je in de war raakt, kun je deze video bekijken.
1. Open Xcode en maak een nieuw Xcode-project. Kies Single View App en noem het RPiAppControl, en zorg ervoor dat de taal Swift is. Druk op Volgende en sla het op.
2. Kopieer je Bundel-ID, want die hebben we later nodig.
3. Log in Firebase in met uw Google-account en klik op Ga naar console.
4. Maak een nieuw project en noem het RPiAppControl.
5. Klik op Firebase toevoegen aan uw IOS-app. Plak je bundel-ID in en druk op Registreer App.
6. Download de GoogleService-Info.plist en sleep deze naar uw Xcode-project.
7. Terug bij Firebase drukt u op Doorgaan. Open vervolgens een terminalvenster en navigeer naar de locatie van uw Xcode-project.
8. Voer deze opdracht uit:
pod init
9. Open het podbestand en onder use_frameworks!, voeg deze regel toe:
pod 'Firebase/Core'
10. Terug in het terminaltype: pod installeren en Xcode sluiten.
11. Navigeer in Finder naar uw Xcode-project en open het nieuw gemaakte.xcworkspace-bestand.
12. Ga hier naar de AppDelegate.swift en voeg onder import UIKit deze regel toe:
Firebase importeren
En voeg in de applicatie-functie deze regel toe:
FIRApp.configure().
13. Terug in Firebase klikt u op Doorgaan en vervolgens op Voltooien.
14. Ga naar Database, dan Regels, en stel de ".read" en ".write" in op true. Druk op PUBLICEREN.
15. Terug bij Xcode, open het podbestand en voeg dit toe onder de eerste regel die we hebben ingesteld:
pod 'Firebase/Database'
16. Terug in de terminal, voer pod install opnieuw uit.
Stap 2: Xcode afwerken
We zullen nu de code en lay-out in Xcode afmaken.
Dit gebruikt Xcode 9 en Swift 4
Code voor de ViewController1. Bovenaan de ViewController, en onder de import UIKit, voeg je dit toe:
Firebase importeren
importeer FirebaseDatabase
2. Onderaan de ViewController, en onder de didReceiveMemoryWarning -functie, kopieer en plak deze functies voor elke knop:
func num1(status: String){
let ref = FIRDatabase.database().reference() laat posten: [String: Any] = ["state": state] ref.child("num1").setValue(post)}Vergeet niet om de (nummer
3. In de viewDidLoad -functie, onder de super.viewDidLoad(), voeg je deze regel in voor elke knop (Voor meerdere knoppen, verander gewoon het (nummer). Zie afbeelding…):
num1 (status: "UIT")
Lay-out van het Main.storyboard en de knoppen
1. Ga naar het Main.storyboard en plaats een aantal knoppen. Je kunt ze opmaken zoals ik deed, of ze aanpassen zoals je wilt.
2. Verbind de knoppen met de ViewController. Elke knop moet twee keer worden aangesloten: één als een actie en UIButton genaamd num(number)Button, en de andere als de standaard Outlet en noem deze num(number)Color. Zie foto…
3. Plak vervolgens voor alle knoppen deze regel in elk van de functies:
if self.num1Color.backgroundColor == UIColor.lightGray { // Stelt de achtergrondkleur in op lightGray
num1(state: "ON") // Stuurt de state: "ON" naar firebase self.num1Color.backgroundColor = UIColor(red:0.96, green:0.41, blue:0.26, alpha:1.0) // Stelt de achtergrondkleur in op roodachtig } else { num1(state: "OFF") // Stuurt de status: "OFF" naar firebase self.num1Color.backgroundColor = UIColor.lightGray // Stelt de achtergrondkleur in op lightGray}
Nu zou je het moeten kunnen testen door de app uit te voeren, en wanneer je op de knoppen drukt, zou je het van status moeten zien veranderen in de Realtime Database in Firebase.
Afwerking (optioneel)
1. Download de onderstaande afbeeldingen en plaats de LaunchScreen-image-j.webp
2. Ga naar Assets.xcassets en vervolgens naar AppIcon. Plaats hier in de overeenkomstige AppIcon -size.
Stap 3: Raspberry Pi-configuratie
Nu moeten we de Pi instellen met Firebase, zodat de app kan communiceren, Firebase naar de Pi kan gooien.
Ik heb de code niet geschreven, maar je kunt de originele code hier vinden.
1. Voer in de terminal de gebruikelijke updates uit:
sudo apt-get update && sudo apt-get dist-upgrade
2. Vervolgens importeren we pyrebase (Firebase):
sudo pip installeer pyrebase
sudo pip3 install pyrebase sudo pip3 install --upgrade google-auth-oauthlib
3. Download nu de Blinkt-bibliotheek:
krul https://get.pimoroni.com/blinkt | bash
4. Kloon mijn GitHub-repository:
git kloon https://github.com/Anders644PI/RPiAppControl.gitcd RPiAppControl
5. Bewerk de AppRPiControl_Template.py:
nano RPiAppControl_Template.py
6. Vul uw Firebase ApiKey en projectId in. U kunt deze vinden door naar uw Firebase-project te gaan en op Nog een app toevoegen te klikken en vervolgens Firebase aan uw web-app toevoegen.
7. Pas de functies aan en sla uw wijzigingen op door op ctrl-o (enter) te drukken en sluit met ctrl-x.
8. Voer het nu uit met:
sudo python3 RPiAppControl_Template.py
9. Als u vervolgens een Blinkt gebruikt, kunt u het voorbeeld proberen, wanneer u uw Firebase ApiKey en projectId hebt ingevuld:
cd-voorbeelden
nano RPiAppControl_blinkt_demo.py
Voer het nu uit:
sudo python3 RPiAppControl_blinkt_demo.pyHoud er rekening mee dat nadat u het script hebt uitgevoerd, het ongeveer een minuut duurt om u voor te bereiden (tenminste op de Pi Zero). En het script moet worden uitgevoerd in python 3
10. BONUS: Als je wilt dat het script bij het opstarten wordt uitgevoerd, kun je hier ontdekken hoe.
Afsluiten/Aan/uit-knop
Het is optioneel om een aan/uit-knop te installeren, maar ik raad het aan. Volg samen met deze video om het in te stellen.
Houd er rekening mee dat dit fysieke pin 5 op de Pi gebruikt, dus sommige HAT's werken niet.
Stap 4: Behuizing
Aanbevolen:
Op LoRa gebaseerd visueel bewakingssysteem voor landbouw Iot - Een fronted applicatie ontwerpen met Firebase & Angular: 10 stappen
Op LoRa gebaseerd visueel bewakingssysteem voor landbouw Iot | Een fronted-applicatie ontwerpen met Firebase & Angular: In het vorige hoofdstuk hebben we het gehad over hoe de sensoren werken met de loRa-module om de Firebase Realtime-database te vullen, en we hebben het diagram op zeer hoog niveau gezien hoe ons hele project werkt. In dit hoofdstuk gaan we het hebben over hoe we
Domotica met Google Firebase: 3 stappen
Domotica met Google Firebase: Inleiding: dit is een domotica-project dat gebruikmaakt van firebase en nodeMCU. De eerste reden waarom ik Firebase heb gekozen, is omdat het gemakkelijk kan worden onderhouden, het heeft een voortgangsrapport, Crash Analytics enz. En het is precies gratis, dus we kunnen u
DIY WiFi Smart Security Light met Shelly 1: 6 stappen (met afbeeldingen)
DIY WiFi Smart Security Light met Shelly 1: Deze instructable zal kijken naar het maken van een DIY smart security light met behulp van het Shelly 1 slimme relais van Shelly. Door een beveiligingslampje slim te maken, heb je veel meer controle over wanneer het wordt geactiveerd en hoe lang het blijft branden. Het kan actief zijn
Hoe maak je een Firebase-huisautomatiseringssysteem met NodeMCU - in IOT-platform: 14 stappen
Hoe maak je een Firebase-huisautomatiseringssysteem met NodeMCU | in IOT Platform: DOEL VAN DIT PROJECTDit project heeft tot doel een domoticasysteem te ontwikkelen dat de gebruiker volledige controle geeft over alle op afstand bedienbare apparaten in zijn/haar huis met behulp van de IOT Android-app
Realtime gebeurtenismeldingen met NodeMCU (Arduino), Google Firebase en Laravel: 4 stappen (met afbeeldingen)
Realtime gebeurtenismeldingen met NodeMCU (Arduino), Google Firebase en Laravel: heb je ooit een melding willen ontvangen wanneer er een actie op je website wordt uitgevoerd, maar e-mail is niet de juiste keuze? Wil je bij elke verkoop een geluid of een belletje horen? Of er is direct uw aandacht nodig vanwege een calamiteit