Оглавление:

Управление светодиодами на основе Google Assistant с помощью Raspberry Pi: 3 шага
Управление светодиодами на основе Google Assistant с помощью Raspberry Pi: 3 шага

Видео: Управление светодиодами на основе Google Assistant с помощью Raspberry Pi: 3 шага

Видео: Управление светодиодами на основе Google Assistant с помощью Raspberry Pi: 3 шага
Видео: Raspberry Pi - Что можно сделать? Готовые проекты. Есть ли смысл? Как научиться? 2024, Ноябрь
Anonim
Управление светодиодами на основе Google Assistant с помощью Raspberry Pi
Управление светодиодами на основе Google Assistant с помощью Raspberry Pi
Управление светодиодами на основе Google Assistant с помощью Raspberry Pi
Управление светодиодами на основе Google Assistant с помощью Raspberry Pi
Управление светодиодами на основе Google Assistant с помощью Raspberry Pi
Управление светодиодами на основе Google Assistant с помощью Raspberry Pi
Управление светодиодами на основе Google Assistant с помощью Raspberry Pi
Управление светодиодами на основе Google Assistant с помощью Raspberry Pi

Привет!

В этом проекте мы реализуем управление светодиодом на основе Google Assistant с помощью Raspberry Pi 4 с использованием HTTP в Python. Вы можете заменить светодиод на лампочку (очевидно, не буквально, вам понадобится релейный модуль между ними) или любой другой бытовой прибор, чтобы этот проект можно было в дальнейшем реализовать для целей домашней автоматизации.

Запасы

Что вам понадобится для этого проекта:

1. Raspberry Pi

2. Светодиод

3. Провода-перемычки-2 (штекер на гнездо)

4. Макетная плата

5. Приложение IFTTT (https://play.google.com/store/apps/details?id=com.ifttt.ifttt&hl=en_IN)

6. Аккаунт Thingspeak (https://thingspeak.com/)

Некоторые предпосылки:

1. Основы работы с сетью -

2. Python для доступа к веб-данным

Шаг 1. Создание канала Thingspeak

Создание канала Thingspeak
Создание канала Thingspeak
Создание канала Thingspeak
Создание канала Thingspeak
Создание канала Thingspeak
Создание канала Thingspeak
Создание канала Thingspeak
Создание канала Thingspeak

Если вы новичок в Thingspeak и никогда не использовали его раньше, выполните следующие действия:

Перейдите на

Вам нужно будет зарегистрироваться, прежде чем вы начнете использовать Thingspeak

После регистрации перейдите в раздел Каналы

В разделе "Каналы" выберите "Новый канал" (см. Изображение для справки).

В Новом канале вы увидите разные информационные окна. Вам просто нужно заполнить поле Имя. Вы можете назвать свой канал как хотите. Я прикрепил изображение, в котором назвал свой канал Raspberry Pi 4. Остальные коробки оставьте как есть.

Поздравляю! Вы успешно создали канал для своего IoT-проекта. (см. прикрепленное изображение, где вы можете увидеть, что мой канал под названием Raspberry Pi 4 успешно создан)

Шаг 2. Использование приложения IFTTT

Использование приложения IFTTT
Использование приложения IFTTT
Использование приложения IFTTT
Использование приложения IFTTT
Использование приложения IFTTT
Использование приложения IFTTT
Использование приложения IFTTT
Использование приложения IFTTT

Мы должны использовать это приложение для запуска запроса GET для публикации данных на созданном вами канале Thingspeak с помощью Google Assistant. Думайте об этом приложении как об интерфейсе между Google Assistant и вашим каналом Thingspeak.

Затем мы создаем запросы GET в приложении IFTTT.

Загрузите приложение IFTTT со страницы

Создать аккаунт

Перейти к созданию собственных апплетов с нуля

Нажмите, если эта опция

Выберите службу триггера как Google Assistant

В нем выберите Произнесите простую фразу.

Под этой опцией появятся некоторые информационные окна. Для этого обратитесь к изображениям и внесите соответствующие данные! (для этого есть два изображения: 1. Для включения светодиода 2. Для выключения светодиода)

Мы завершили часть If This, которая представляет собой Google Assistant. Теперь мы выбираем вариант "Затем", то есть Webhooks.

Под ним выберите Сделать веб-запрос.

Обратитесь к изображению для получения информации, которую необходимо заполнить в полях. Обратитесь к этому URL-адресу https://api.thingspeak.com/update?api_key=INSERT YOUR WRITE API KEY & field1 = 1

В приведенном выше URL-адресе вы заметите, что я упомянул ВСТАВЬТЕ ВАШ КЛЮЧ API ЗАПИСИ. Это ключ API, который является идентификатором канала, который вы создали на Thingspeak (см. Изображение). Запись ключа API поможет вам записать определенные данные в ваш канал, и аналогично ключ API чтения поможет вам получить данные из канала.

За исключением вашего ключа API записи, остальная информация в полях остается неизменной.

Итак, вы создали триггер, когда, когда вы говорите своему помощнику Google: «Включите светодиод», он отправит «1» на ваш канал Thingspeak.

Теперь аналогичным образом вам нужно создать новый апплет в приложении IFTTT для выключения светодиода. Я прикрепил изображения, если вы не уверены в этом. В остальном процедура выключения светодиода такая же, как и описанная выше, за исключением некоторых незначительных изменений.

Шаг 3. Наконец, приступаем к программированию

Наконец-то приступаем к программированию
Наконец-то приступаем к программированию

Я объясню основную цель кода Python. Мы должны получить данные из канала Thingspeak, которые будут иметь значение «1» или «0» в зависимости от того, что вы говорите своему помощнику Google. В зависимости от этого мы должны включать или выключать светодиод. Если загруженное значение на канале Thingspeak равно «1», то мы включаем светодиод, а если он «0», мы его выключаем.

В коде вам понадобятся две вещи: 1. Ваш ключ API чтения 2. Ваш идентификатор канала (см. Изображения).

Вот код (при условии, что вы знаете предварительные требования HTTP и Python):

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

запросы на импорт

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

время импорта

импортировать RPi. GPIO как GPIO

GPIO.setmode (GPIO. BOARD)

GPIO.setup (7, GPIO. OUT)

пытаться:

в то время как (1):

URL = 'https://api.thingspeak.com/channels/INSER YOUR CHANNEL ID / fields / 1.json? Api_key =' KEY = 'INSERT YOUR READ API KEY'

ЗАГОЛОВОК = '& результаты = 2'

NEW_URL = URL + KEY + HEADER

#print (NEW_URL)

get_data = requests.get (NEW_URL).json ()

#print (get_data)

feild_1 = get_data ['каналы']

#print ("Поле:", feild_1)

t =

для x в feild_1:

t.append (x ['поле1'])

печать (t [1])

если int (t [1]) == 1:

GPIO.output (7, 1)

elif int (t [1]) == 0:

GPIO.output (7, 0)

кроме KeyboardInterrupt:

GPIO.cleanup ()

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