Оглавление:

RPi IoT Smart Light с использованием Firebase: 4 шага (с изображениями)
RPi IoT Smart Light с использованием Firebase: 4 шага (с изображениями)

Видео: RPi IoT Smart Light с использованием Firebase: 4 шага (с изображениями)

Видео: RPi IoT Smart Light с использованием Firebase: 4 шага (с изображениями)
Видео: I built a smarter smart home 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 с Wi-Fi ключом)

  • PowerBoost 1000 C
  • Литий-ионный аккумулятор - 3,7 В, 2000 мАч
  • Блинкт! (или любой pHAT / HAT, который: не использует физический контакт 5, и HAT должны быть плоскими на дне.)
  • Карта Micro SD емкостью 8 ГБ или выше с Raspbian Stretch (с рабочим столом) на ней
  • Клавиатура и мышь (но вы также можете подключиться по ssh, если теперь как)
  • Подключение к монитору или телевизору (или по ssh!)
  • Саморезы
  • Маленькие провода
  • Маленький переключатель и маленькая кнопка
  • 3D-принтер и одна катушка с любой цветной нитью PLA и одна катушка с прозрачным PLA (или вы можете использовать 3D-сервис, такой как 3D Hubs, чтобы распечатать его для вас)

Шаг 1. Firebase и Xcode

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

Сначала мы настроим Firebase с приложением, чтобы мы могли общаться из приложения с Pi.

Если запутались, можете посмотреть это видео.

1. Откройте Xcode и создайте новый проект Xcode. Выберите приложение для одного просмотра и назовите его RPiAppControl и убедитесь, что выбран язык Swift. Нажмите Далее и сохраните.

2. Скопируйте свой идентификатор пакета, потому что он нам понадобится позже.

3. В Firebase войдите в свою учетную запись Google и нажмите «Перейти в консоль».

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

5. Щелкните Добавить Firebase в приложение IOS. Вставьте свой идентификатор пакета и нажмите «Зарегистрировать приложение».

6. Загрузите GoogleService-Info.plist и перетащите его в свой проект Xcode.

7. Вернувшись в Firebase, нажмите «Продолжить». Затем откройте окно терминала и перейдите к местоположению вашего проекта Xcode.

8. Выполните эту команду:

pod init

9. Откройте Podfile и в разделе use_frameworks! добавьте эту строку:

под "Firebase / Core"

10. Вернитесь в тип терминала: pod install и закройте Xcode.

11. В Finder перейдите к своему проекту Xcode и откройте вновь созданный файл.xcworkspace.

12. Здесь перейдите к AppDelegate.swift и в разделе import UIKit добавьте эту строку:

импортировать Firebase

И в приложении-функции добавьте эту строку:

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 (state: String) {

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

3. В функции viewDidLoad под super.viewDidLoad () вставьте эту строку для каждой кнопки (для нескольких кнопок просто измените (номер). См. Рисунок…):

num1 (состояние: "ВЫКЛ")

Макет Main.storyboard и кнопок

1. Перейдите на Main.storyboard и вставьте несколько кнопок. Вы можете расположить их, как я, или настроить их по своему усмотрению.

2. Соедините кнопки с ViewController. Каждую кнопку нужно подключить дважды: одну как действие и UIButton, называемую кнопкой num (число), а другую как выход по умолчанию и назовите его цветом num (число). См. Картинку…

3. Затем для всех кнопок вставьте эту строку в каждую из функций:

if self.num1Color.backgroundColor == UIColor.lightGray {// Устанавливает цвет фона на lightGray

num1 (state: "ON") // Отправляет состояние: "ON" в firebase self.num1Color.backgroundColor = UIColor (red: 0.96, green: 0.41, blue: 0.26, alpha: 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 install --upgrade 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:

нано RPiAppControl_Template.py

6. Введите Firebase ApiKey и projectId. Вы можете найти их, перейдя в свой проект Firebase и нажав «Добавить другое приложение», а затем «Добавить Firebase в свое веб-приложение».

7. Настройте функции и сохраните изменения, нажав ctrl-o (ввод), и закройте с помощью ctrl-x.

8. Теперь запустите его с помощью:

sudo python3 RPiAppControl_Template.py

9. Затем, если вы используете Blinkt, вы можете попробовать этот пример, заполнив свои Firebase ApiKey и projectId:

CD примеры

нано RPiAppControl_blinkt_demo.py

Теперь запустим его:

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

10. БОНУС: Если вы хотите, чтобы сценарий запускался при загрузке, вы можете узнать, как это сделать, здесь.

Кнопка выключения / питания

Устанавливать кнопку питания необязательно, но я рекомендую. Следуйте инструкциям по настройке этого видео.

Имейте в виду, что здесь используется физический контакт 5 на Pi, поэтому некоторые шляпы не будут работать.

Шаг 4: Корпус

Рекомендуемые: