Съдържание:

RPi IoT Smart Light с помощта на Firebase: 4 стъпки (със снимки)
RPi IoT Smart Light с помощта на Firebase: 4 стъпки (със снимки)

Видео: RPi IoT Smart Light с помощта на Firebase: 4 стъпки (със снимки)

Видео: RPi IoT Smart Light с помощта на Firebase: 4 стъпки (със снимки)
Видео: CS50 2015 - Week 7 2024, Ноември
Anonim
RPi IoT Smart Light с помощта на Firebase
RPi IoT Smart Light с помощта на Firebase
RPi IoT Smart Light с помощта на Firebase
RPi IoT Smart Light с помощта на Firebase
RPi IoT Smart Light с помощта на Firebase
RPi IoT Smart Light с помощта на Firebase
RPi IoT Smart Light с помощта на Firebase
RPi IoT Smart Light с помощта на Firebase

Това ръководство ви показва как да създадете и настроите приложение за управление на Raspberry Pi чрез Firebase (онлайн база данни). И след това 3D отпечатване на калъф за Pi Zero W, Powerboost 1000C, батерия и Blinkt !.

За да можете да следвате най -лесно, препоръчвам да сте запознати с Xcode и Raspberry Pi.

И ако ви харесва това, което виждате, последвайте ме в Instagram и Twitter (@Anders644PI), за да сте в крак с това, което правя.

Ще имаш нужда:

  • Raspberry Pi Zero W с адаптери и GPIO-заглавки

    (или обикновеният Pi Zero с WiFi ключ)

  • PowerBoost 1000 C.
  • Литиево -йонна батерия - 3.7v 2000mAh
  • Blinkt! (или всеки pHAT/HAT, който: не използва щифт 5 физически и HAT трябва да са плоски на дъното.)
  • 8GB или по -висока Micro SD карта, с Raspbian Stretch (с десктоп) върху нея
  • Клавиатура и мишка (но също така можете да се свържете чрез ssh, ако сега как)
  • Връзка с монитор или телевизор (или ssh!)
  • Винтове за скрап
  • Малки проводници
  • Малък превключвател и малък бутон
  • 3D принтер и една макара от всякакви цветни PLA нишки и една макара от прозрачна PLA (или можете да използвате 3D услуга като 3D Hub, за да я отпечатате вместо вас)

Стъпка 1: Firebase и Xcode

Firebase и Xcode
Firebase и Xcode
Firebase и Xcode
Firebase и Xcode
Firebase и Xcode
Firebase и Xcode

Първо ще настроим Firebase с приложението, за да можем да комуникираме от приложението към Pi.

Ако се объркате, можете да гледате това видео.

1. Отворете Xcode и направете нов Xcode проект. Изберете приложението Single View и го наречете RPiAppControl и се уверете, че езикът е Swift. Натиснете Next и го запазете.

2. Копирайте своя идентификатор на пакета, защото това ще ни е необходимо по -късно.

3. Във Firebase влезте с профила си в Google и щракнете върху Отиди на конзолата.

4. Създайте нов проект и го наречете RPiAppControl.

5. Щракнете върху Добавяне на Firebase към вашето IOS приложение. Поставете вашия идентификатор на пакета и натиснете Register App.

6. Изтеглете GoogleService-Info.plist и го плъзнете във вашия Xcode Project.

7. Върнете се във Firebase, натиснете Продължи. След това отворете терминален прозорец и отидете до местоположението на вашия Xcode проект.

8. Изпълнете тази команда:

pod init

9. Отворете Podfile и под use_frameworks!, добавете този ред:

под „Firebase/Core“

10. Върнете се в типа терминал: инсталиране на pod и затворете Xcode.

11. Във Finder отидете до вашия Xcode проект и отворете новосъздадения.xcworkspacefile.

12. Тук отидете на AppDelegate.swift и под UIKit за импортиране добавете този ред:

импортиране на Firebase

И в application-function добавете този ред:

FIRApp.configure ().

13. Назад във Firebase, щракнете върху Продължи и след това Край.

14. Отидете в База данни, след това Правила и задайте „.read“и „.write“на true. Натиснете PUBLISH.

15. Върнете се в Xcode, отворете Podfile и под първия ред, който зададохме, добавете това:

под „Firebase/база данни“

16. Върнете се в терминала, стартирайте pod install отново.

Стъпка 2: Завършване на Xcode

Завършване на Xcode
Завършване на Xcode
Завършване на Xcode
Завършване на Xcode
Завършване на Xcode
Завършване на Xcode

Сега ще завършим кода и оформлението в Xcode.

Това използва Xcode 9 и Swift 4

Код за ViewController1. В горната част на ViewController и под UIKit за импортиране добавете това:

импортиране на Firebase

импортиране на FirebaseDatabase

2. В долната част на ViewController и под функцията didReceiveMemoryWarning копирайте поставете тази функция за всеки бутон:

func num1 (състояние: String) {

let ref = FIRDatabase.database (). reference () let post: [String: Any] = ["state": state] ref.child ("num1"). setValue (post)}Не забравяйте да промените (номер

3. Във функцията viewDidLoad, под super.viewDidLoad (), вмъкнете този ред за всеки бутон (За множество бутони просто променете (номер). Вижте снимката …):

num1 (състояние: "OFF")

Оформление на Main.storyboard и бутоните

1. Отидете на Main.storyboard и поставете няколко бутона. Можете да ги оформите както аз, или да ги персонализирате както искате.

2. Свържете бутоните с ViewController. Всеки бутон трябва да бъде свързан два пъти: единият като действие и бутон UIB, наречен бутон номер (номер), а другият като изход по подразбиране и го наречете номер (номер) цвят. Вижте снимката…

3. След това за всички бутони поставете в този ред към всяка от функциите:

if self.num1Color.backgroundColor == UIColor.lightGray {// Задава цвета на фона на lightGray

num1 (състояние: "ON") // Изпраща състоянието: "ON" на firebase self.num1Color.backgroundColor = UIColor (червено: 0.96, зелено: 0.41, синьо: 0.26, алфа: 1.0) // Задава цвета на фона на reddish} else {num1 (state: "OFF") // Изпраща състоянието: "OFF" на firebase self.num1Color.backgroundColor = UIColor.lightGray // Задава цвета на фона на lightGray}

Сега би трябвало да можете да го изпробвате, като стартирате приложението и когато натиснете бутоните, трябва да видите променящото се състояние в базата данни в реално време във Firebase.

Довършителни работи (по избор)

1. Изтеглете изображенията по-долу и вмъкнете LaunchScreen-image-j.webp

2. Отидете на Assets.xcassets и след това AppIcon. Тук поставете в съответния AppIcon -size.

Стъпка 3: Настройка на Raspberry Pi

Настройка на Raspberry Pi
Настройка на Raspberry Pi

Сега трябва да настроим Pi с Firebase, така че приложението да може да комуникира, да хвърля Firebase на Pi.

Не съм написал кода, но можете да намерите оригиналния код тук.

1. В терминала изпълнете обичайните актуализации:

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

2. След това ще импортираме pyrebase (Firebase):

sudo pip инсталирайте pyrebase

sudo pip3 инсталиране на pyrebase sudo pip3 инсталиране-надстройка google-auth-oauthlib

3. Сега изтеглете библиотеката Blinkt:

curl https://get.pimoroni.com/blinkt | баш

4. Клонирайте моето хранилище на GitHub:

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

5. Редактирайте AppRPiControl_Template.py:

nano RPiAppControl_Template.py

6. Попълнете своя Firebase ApiKey и projectId. Можете да ги намерите, като отидете във вашия проект на Firebase, щракнете върху Добавяне на друго приложение и след това добавете Firebase към уеб приложението си.

7. Персонализирайте функциите и запазете промените си, като натиснете ctrl-o (enter) и затворете с ctrl-x.

8. Сега го стартирайте с:

sudo python3 RPiAppControl_Template.py

9. След това, ако използвате Blinkt, можете да опитате примера, когато сте попълнили своя Firebase ApiKey и projectId:

cd примери

nano RPiAppControl_blinkt_demo.py

Сега го стартирайте:

sudo python3 RPiAppControl_blinkt_demo.pyИмайте предвид, че след като стартирате скрипта, отнема около минута, за да се подготвите (Поне на Pi Zero). И скриптът трябва да се изпълнява в python 3

10. БОНУС: Ако искате скриптът да се изпълнява при зареждане, можете да разберете как, тук.

Бутон за изключване/захранване

Не е задължително да инсталирате бутон за захранване, но го препоръчвам. Следвайте заедно с този видеоклип, за да го настроите.

Имайте предвид, че това използва физически щифт 5 на Pi, така че някои HATs няма да работят.

Стъпка 4: Приложение

Препоръчано: