Obsah:

Inteligentní světlo RPi IoT pomocí Firebase: 4 kroky (s obrázky)
Inteligentní světlo RPi IoT pomocí Firebase: 4 kroky (s obrázky)

Video: Inteligentní světlo RPi IoT pomocí Firebase: 4 kroky (s obrázky)

Video: Inteligentní světlo RPi IoT pomocí Firebase: 4 kroky (s obrázky)
Video: Connect P1 Smartmeter to Loxone using Raspberry PI REST API 2024, Listopad
Anonim
Inteligentní světlo RPi IoT pomocí Firebase
Inteligentní světlo RPi IoT pomocí Firebase
Inteligentní světlo RPi IoT pomocí Firebase
Inteligentní světlo RPi IoT pomocí Firebase
Inteligentní světlo RPi IoT pomocí Firebase
Inteligentní světlo RPi IoT pomocí Firebase
Inteligentní světlo RPi IoT pomocí Firebase
Inteligentní světlo RPi IoT pomocí Firebase

Tato příručka vám ukáže, jak vytvořit a nastavit aplikaci pro ovládání Raspberry Pi prostřednictvím Firebase (online databáze). A pak 3D tisk pouzdra na Pi Zero W, Powerboost 1000C, baterii a Blinkt !.

Abyste mohli co nejsnadněji sledovat, doporučuji znát Xcode a Raspberry Pi.

A pokud se vám líbí to, co vidíte, sledujte mě na Instagramu a Twitteru (@Anders644PI), abyste udrželi krok s tím, co dělám.

Budete potřebovat:

  • Raspberry Pi Zero W s adaptéry a hlavičkami GPIO

    (nebo obyčejný Pi Zero s WiFi donglem)

  • PowerBoost 1000 C.
  • Lithium -iontová baterie - 3,7 V, 2000 mAh
  • Blinkt! (nebo jakýkoli pHAT/HAT, který: nepoužívá fyzický pin 5 a HAT by měl být plochý na dně.)
  • Micro SD karta 8 GB nebo vyšší, s Raspbian Stretch (s desktopem)
  • Klávesnice a myš (ale můžete se také připojit přes ssh, pokud teď víte, jak)
  • Připojení k monitoru nebo televizi (nebo ssh!)
  • Šrotové šrouby
  • Malé dráty
  • Malý spínač a malé tlačítko
  • 3D tiskárna a jedna cívka jakéhokoli barevného vlákna PLA a jedna cívka transparentního PLA (nebo můžete k tisku použít 3D službu, jako je 3D Hubs)

Krok 1: Firebase a Xcode

Firebase a Xcode
Firebase a Xcode
Firebase a Xcode
Firebase a Xcode
Firebase a Xcode
Firebase a Xcode

Nejprve nastavíme Firebase s aplikací, abychom mohli komunikovat z aplikace do Pi.

Pokud jste zmatení, můžete se podívat na toto video.

1. Otevřete Xcode a vytvořte nový projekt Xcode. Vyberte aplikaci Single View a nazvejte ji RPiAppControl a ujistěte se, že je jazykem Swift. Stiskněte tlačítko Další a uložte jej.

2. Zkopírujte svůj identifikátor balíčku, protože ten budeme později potřebovat.

3. Ve Firebase se přihlaste pomocí svého účtu Google a klikněte na Přejít do konzoly.

4. Vytvořte nový projekt a pojmenujte ho RPiAppControl.

5. Klikněte na Přidat Firebase do vaší aplikace IOS. Vložte svůj identifikátor balíčku a stiskněte Registrovat aplikaci.

6. Stáhněte si GoogleService-Info.plist a přetáhněte jej do projektu Xcode.

7. Zpět na Firebase stiskněte Pokračovat. Poté otevřete okno terminálu a přejděte na umístění projektu Xcode.

8. Spusťte tento příkaz:

pod init

9. Otevřete Podfile a pod use_frameworks!, přidejte tento řádek:

pod 'Firebase/Core'

10. Zpět do typu terminálu: instalace pod a zavřete Xcode.

11. V aplikaci Finder přejděte na svůj projekt Xcode a otevřete nově vytvořený soubor.xcworkspacefile.

12. Zde přejděte na AppDelegate.swift a pod importem UIKit přidejte tento řádek:

importovat Firebase

A do funkce aplikace přidejte tento řádek:

FIRApp.configure ().

13. V Firebase klikněte na Pokračovat a poté na Dokončit.

14. Přejděte do databáze, poté na pravidla a nastavte „.read“a „.write“na hodnotu true. Stiskněte PUBLIKOVAT.

15. Zpět na Xcode, otevřete Podfile a pod první řádek, který jsme nastavili, přidejte toto:

pod 'Firebase/Database'

16. Vraťte se zpět do terminálu a znovu spusťte pod install.

Krok 2: Dokončení Xcode

Dokončování Xcode
Dokončování Xcode
Dokončování Xcode
Dokončování Xcode
Dokončování Xcode
Dokončování Xcode

Nyní dokončíme kód a rozložení v Xcode.

Používá Xcode 9 a Swift 4

Kód pro ViewController1. V horní části ViewController a pod UIKit importu přidejte toto:

importovat Firebase

importovat FirebaseDatabase

2. Do spodní části ViewController a pod funkci didReceiveMemoryWarning zkopírujte a vložte tyto funkce pro každé tlačítko:

func num1 (stav: String) {

let ref = FIRDatabase.database (). reference () let post: [String: Any] = ["state": state] ref.child ("num1"). setValue (post)}Nezapomeňte změnit (číslo

3. Do funkce viewDidLoad pod super.viewDidLoad () vložte tento řádek pro každé tlačítko (u více tlačítek stačí změnit (číslo). Viz obrázek …):

num1 (stav: "VYPNUTO")

Rozložení Main.storyboard a tlačítka

1. Přejděte na Main.storyboard a vložte některá tlačítka. Můžete je rozložit jako já, nebo si je upravit podle libosti.

2. Propojte tlačítka s ViewController. Každé tlačítko musí být připojeno dvakrát: Jedno jako akce a UIButton s názvem num (number) Button a druhé jako výchozí Outlet a nazvat to num (number) Color. Viz obrázek…

3. Potom pro všechna tlačítka vložte do tohoto řádku všechny funkce:

if self.num1Color.backgroundColor == UIColor.lightGray {// Nastaví barvu pozadí na lightGray

num1 (state: "ON") // Odešle stav: "ON" na firebase self.num1Color.backgroundColor = UIColor (červená: 0,96, zelená: 0,41, modrá: 0,26, alfa: 1,0) // Nastaví barvu pozadí na reddish} else {num1 (state: "OFF") // Odešle stav: "OFF" na firebase self.num1Color.backgroundColor = UIColor.lightGray // Nastaví barvu pozadí na lightGray}

Nyní byste to měli mít možnost vyzkoušet spuštěním aplikace a po stisknutí tlačítek byste měli vidět, jak se mění stav, v Realtime Database ve Firebase.

Dokončení (volitelně)

1. Stáhněte si níže uvedené obrázky a vložte LaunchScreen-image-j.webp

2. Přejděte na Assets.xcassets a poté na AppIcon. Zde umístěte do odpovídající velikosti AppIcon.

Krok 3: Nastavení Raspberry Pi

Nastavení Raspberry Pi
Nastavení Raspberry Pi

Nyní musíme nastavit Pi pomocí Firebase, aby aplikace mohla komunikovat a vrhat Firebase na Pi.

Kód jsem nenapsal, ale původní kód najdete zde.

1. V terminálu spusťte obvyklé aktualizace:

sudo apt-get update && sudo apt-get dist-upgrade

2. Poté importujeme pyrebase (Firebase):

sudo pip install pyrebase

sudo pip3 install pyrebase sudo pip3 install --upgrade google-auth-oauthlib

3. Nyní si stáhněte knihovnu Blinkt:

stočit https://get.pimoroni.com/blinkt | bash

4. Klonovat moje úložiště GitHub:

klon git https://github.com/Anders644PI/RPiAppControl.gitcd RPiAppControl

5. Upravte soubor AppRPiControl_Template.py:

nano RPiAppControl_Template.py

6. Vyplňte Firebase ApiKey a projectId. Najdete je tak, že přejdete do svého projektu Firebase a kliknete na Přidat další aplikaci a poté na Přidat Firebase do vaší webové aplikace.

7. Přizpůsobte funkce a změny uložte stisknutím ctrl-o (Enter) a zavřete ctrl-x.

8. Nyní jej spusťte pomocí:

sudo python3 RPiAppControl_Template.py

9. Pokud tedy používáte Blinkt, můžete zkusit příklad, když jste vyplnili Firebase ApiKey a projectId:

cd příklady

nano RPiAppControl_blinkt_demo.py

Nyní spusťte:

sudo python3 RPiAppControl_blinkt_demo.pyMějte na paměti, že po spuštění skriptu trvá příprava přibližně minutu (alespoň na Pi Zero). A skript musí být spuštěn v pythonu 3

10. BONUS: Pokud chcete, aby se skript spustil při spuštění, můžete zjistit, jak, zde.

Tlačítko vypnutí/napájení

Je volitelné instalovat tlačítko napájení, ale doporučuji to. Postupujte podle tohoto videa a nastavte jej.

Mějte na paměti, že toto používá fyzický pin 5 na Pi, takže některé HATy nebudou fungovat.

Krok 4: Příloha

Doporučuje: