Оглавление:
Видео: RPi IoT Smart Light с использованием Firebase: 4 шага (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
В этом руководстве показано, как создать и настроить приложение для управления 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 с приложением, чтобы мы могли общаться из приложения с 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 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
Теперь нам нужно настроить 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: Корпус
Рекомендуемые:
Система визуального мониторинга на основе LoRa для сельского хозяйства Iot - Разработка фронтального приложения с использованием Firebase и Angular: 10 шагов
Система визуального мониторинга на основе LoRa для сельского хозяйства Iot | Разработка фронтального приложения с использованием Firebase и Angular: в предыдущей главе мы говорили о том, как датчики работают с модулем loRa для заполнения базы данных Firebase Realtime, и мы видели очень высокоуровневую диаграмму того, как работает весь наш проект. В этой главе мы поговорим о том, как мы можем
Домашняя автоматизация с использованием Google Firebase: 3 шага
Домашняя автоматизация с использованием Google Firebase: Введение: это проект домашней автоматизации, в котором используются firebase и nodeMCU. Во-первых, почему я выбрал Firebase, потому что ее легко поддерживать, она имеет отчет о ходе работы, аналитику сбоев и т. Д., И именно она бесплатна, поэтому мы можем
Простая настройка ИК-пульта дистанционного управления с использованием LIRC для Raspberry PI (RPi) - июль 2019 г. [Часть 2]: 3 шага
Простая настройка ИК-пульта дистанционного управления с использованием LIRC для Raspberry PI (RPi) - июль 2019 г. [Часть 2]: В части 1 я продемонстрировал, как собрать RPi + VS1838b и настроить модуль LIRC Raspbian для получения ИК-команд от ИК-пульта дистанционного управления. Все проблемы с оборудованием и настройкой LIRC обсуждаются в части 1. В части 2 будет продемонстрировано, как взаимодействовать с аппаратным
Беспроводной пульт дистанционного управления с использованием модуля 2,4 ГГц NRF24L01 с Arduino - Nrf24l01 4-канальный / 6-канальный передатчик-приемник для квадрокоптера - Радиоуправляемый вертолет - Самолет на радиоуправлении с использованием Arduino: 5 шагов (с изображениями)
Беспроводной пульт дистанционного управления с использованием модуля 2,4 ГГц NRF24L01 с Arduino | Nrf24l01 4-канальный / 6-канальный передатчик-приемник для квадрокоптера | Радиоуправляемый вертолет | Самолет на радиоуправлении с использованием Arduino: для управления автомобилем на радиоуправлении | Квадрокоптер | Дрон | Самолет RC | Лодка с дистанционным управлением, нам всегда нужны приемник и передатчик, предположим, для RC QUADCOPTER нам нужен 6-канальный передатчик и приемник, а такие типы TX и RX слишком дороги, поэтому мы сделаем один на нашем
Уведомления о событиях в реальном времени с использованием NodeMCU (Arduino), Google Firebase и Laravel: 4 шага (с изображениями)
Уведомления о событиях в реальном времени с использованием NodeMCU (Arduino), Google Firebase и Laravel: вы когда-нибудь хотели получать уведомления, когда на вашем веб-сайте совершается действие, но электронная почта не подходит? Вы хотите слышать звук или колокольчик каждый раз, когда совершаете продажу? Или есть необходимость в вашем немедленном внимании из-за чрезвычайной ситуации