Постройте светодиодный индикатор с помощью малины Pi (для электронной почты, погоды или чего-либо еще)

Оглавление:

Постройте светодиодный индикатор с помощью малины Pi (для электронной почты, погоды или чего-либо еще)
Постройте светодиодный индикатор с помощью малины Pi (для электронной почты, погоды или чего-либо еще)

Видео: Постройте светодиодный индикатор с помощью малины Pi (для электронной почты, погоды или чего-либо еще)

Видео: Постройте светодиодный индикатор с помощью малины Pi (для электронной почты, погоды или чего-либо еще)
Видео: Как удалить программу, которая не удаляется. Удаление вручную. (Видео 1) - YouTube 2024, Апрель
Anonim
Raspberry Pi создает приятную компактную платформу для подключения индикатора для всех видов проектов - уведомления о погоде, новых электронных писем и т. Д. Читайте дальше, пока мы покажем вам, как подключить светодиодный модуль к вашему Pi и настроить некоторые основные уведомления,
Raspberry Pi создает приятную компактную платформу для подключения индикатора для всех видов проектов - уведомления о погоде, новых электронных писем и т. Д. Читайте дальше, пока мы покажем вам, как подключить светодиодный модуль к вашему Pi и настроить некоторые основные уведомления,

Почему я хочу это делать?

Потому что это весело. В отличие от многих наших обучающих программ, в которых мы включаем небольшую рекламу, в которой мы четко указываем, какую выгоду вы получите от проекта, в этом случае рекламный ролик довольно короткий, потому что это просто весело.

Малина Pi - идеальное устройство для игры, экспериментирования с электроникой и изучения некоторых программ. Никто потребности например, индикатор окружающего дождя на их кухне, но построение одного - это забавное упражнение и отличное напоминание о том, чтобы принести с собой зонтик в потенциально штормовые дни.

Что мне нужно?

Чтобы следовать вместе с учебником, вам понадобятся несколько вещей. Во-первых, мы предполагаем, что вы уже следовали нашему предыдущему руководству: Руководство по HTG для начала работы с малиной Pi (и, таким образом, основывались на установке Rasbian на нашей малине Pi).

Если вы хотите сделать этот проект по бюджету, мы можем с уверенностью сказать вам, что новейшая модель Raspberry Pi является значительным излишеством для работы, и мы будем поощрять вас взорвать пыль от старой малины Pi, которую вы толкнули в шкафу или забрать дешевый подержанный eBay или тому подобное. Бюджет мудрый длинный зубец малина Pi 1 модель A или модель B, зацепившая eBay за 10-15 долларов США, идеально подходит для этого проекта над приобретением нового Pi текущего поколения стоимостью 35 долларов.

В дополнение к наличию на нем функционального блока Pi с установленным на нем Raspbian вам понадобятся следующие вещи:

  • 1 модуль LedBorg (~ $ 5,00 с доставкой 4 доллара США из Великобритании в США, работает со всеми моделями малины Pi).
  • 1 Clear Raspberry Pi Case, совместимый с вашей конкретной моделью Pi, как этот случай с малиной Pi 1 Model B.

Замечания: Ясный / замороженный случай Pi полностью необязателен, но если вы в настоящее время используете непрозрачный корпус, ваш светодиодный индикатор будет скрыт внутри. Вам нужно либо вырезать отверстие в вашем корпусе, чтобы выпустить свет, либо использовать удлинительный кабель GPIO с комплектом прорыва, как этот, от Adafruit Industries, чтобы привязать LedBorg к вашей малиновой пи. В то время как использование прорывного кабеля добавляет около 8 долларов США за счет проекта, он предлагает больше возможностей для настройки конечного продукта, поскольку вы можете легче разместить светодиод внутри вещей или под то, что вы хотите осветить.

Установка LedBorg

Image
Image

Несмотря на то, что вы, несомненно, могли бы создать себе светодиодный индикатор полностью с нуля (и запрос на поисковую систему увеличит количество людей, которые это сделали), организация Piborg выпускает такой компактный и недорогой светодиодный модуль LedBorg, т сопротивляться использованию его в качестве основы для нашего проекта индикатора Raspberry Pi LED.

Установка модуля является быстрой, поскольку она предназначена для установки непосредственно на контакты GPIO на Pi. Сначала выключите свой Pi и откройте корпус.

Самая важная часть процесса установки заключается в том, что вы ориентируете модуль так, чтобы значок LedBorg был ближе всего к модулю RCA на плате Raspberry Pi (и, таким образом, край LedBorg заподлицо с краями платы Pi с нависающим часть LedBorg, висящая над доской Pi, а не с края). См. Фотографию выше.

Пока вы открываете плату Pi, теперь было бы прекрасным временем для покрытия встроенных светодиодных индикаторов (рядом с портами USB), особенно если вы используете ясный футляр. Вы не хотите, чтобы это путано читать ваш индикатор LedBorg, потому что индикатор питания и сети настолько яркий.

Мы накрыли наш слой белой электрической лентой. Это затуманило их настолько, что мы все еще могли ссылаться на них, но они были намного тусклее, чем LedBorg, это уже не отвлекало.

Как только у вас установлен LedBorg и у вас есть опционально покрытые светодиодные индикаторы Pi электрической ленточкой, пришло время закрыть корпус. Загрузите свой Pi, прежде чем перейти к следующему этапу учебника.

Установка программного обеспечения LedBorg

PiBorg предоставляет отличный программный пакет для LedBorg, который включает в себя как контроллер GUI, так и драйверы для доступа к LedBorg из командной строки.
PiBorg предоставляет отличный программный пакет для LedBorg, который включает в себя как контроллер GUI, так и драйверы для доступа к LedBorg из командной строки.

Прежде чем мы начнем, вам нужно убедиться, что вы захватываете правильный пакет для своей версии Rasbian и ревизии # вашей доски Raspberry Pi.

Если на вашей доске Raspberry Pi нет монтажных отверстий, то это вариант 1. Если у вашей малины Pi есть монтажные отверстия (расположенные через порты USB и между портом питания и HDMI), то это версия 2. Вам также необходимо знать версию ядра вашей установки Rasbian. Откройте терминал и введите следующую команду, чтобы проверить:

uname -r

Когда у вас есть номер версии и номер ядра, вы можете посетить раздел «Пакеты», чтобы получить ссылку на свой пакет. В нашем случае мы используем плату Revision 1 с ядром 3.6.11, поэтому мы будем захватывать файл raspbian-2013-02-09-rev1.zip.

Чтобы установить все полезные свойства, нам нужно открыть терминал на Pi. а затем введите следующие команды для установки пакета LedBorg.

Замечания: Вы должны заменить URL-адрес в третьей команде URL-адресом пакета для вашей комбинации платы / ядра.

mkdir ~/ledborg-setup cd ~/ledborg-setup wget -O setup.zip https://www.piborg.org/downloads/ledborg/raspbian-2013-02-09-rev1.zip unzip setup.zip chmod +x install.sh./install.sh

На данный момент у вас теперь есть GUI-обертка для драйверов LedBorg и самих драйверов. На рабочем столе Raspbian вы увидите значок для оболочки GUI:

Идем дальше и щелкаем по значку LedBorg, чтобы запустить оболочку GUI. Вы будете обращаться к интерфейсу выбора цвета так:
Идем дальше и щелкаем по значку LedBorg, чтобы запустить оболочку GUI. Вы будете обращаться к интерфейсу выбора цвета так:
Теперь самое время убедиться, что ваш модуль функциональный. Выберите любой цвет, за исключением черного, чтобы попробовать. Мы собираемся проверить это, выбрав несколько цветов:
Теперь самое время убедиться, что ваш модуль функциональный. Выберите любой цвет, за исключением черного, чтобы попробовать. Мы собираемся проверить это, выбрав несколько цветов:
Выглядит хорошо! Он яркий, а матовый пластик корпуса, заказанного нами для проекта, предлагает умеренную диффузию. Если вы хотите больше играть со светодиодным модулем, прежде чем двигаться дальше, нажмите «Демо-режим»:
Выглядит хорошо! Он яркий, а матовый пластик корпуса, заказанного нами для проекта, предлагает умеренную диффузию. Если вы хотите больше играть со светодиодным модулем, прежде чем двигаться дальше, нажмите «Демо-режим»:
В демонстрационном режиме вы можете перемещаться по всем цветам с различной скоростью, проверять высокий / низкий выход и в противном случае ставить светодиодный модуль через шашки.
В демонстрационном режиме вы можете перемещаться по всем цветам с различной скоростью, проверять высокий / низкий выход и в противном случае ставить светодиодный модуль через шашки.

Здесь, в разделе «Демо-режим», вы также можете превратить ваш LedBorg в первый из многих индикаторов. Выбрав CPU в разделе «Цвета», светодиод начнет меняться с зеленого на желтый на красный, чтобы указать нагрузку на ARM-процессор Raspberry Pi. Мы предлагаем изменить скорость на медленную, пока вы на ней - быстро обновляет светодиод слишком быстро и делает индикатор процессора отвлекающим, а не полезным.

В дополнение к использованию интерфейса GUI для выбора цветов вы можете выбирать цвета с терминала с использованием значений RGB. Откройте терминал и введите следующую команду, чтобы выключить светодиод:

echo '000' > /dev/ledborg

Способ, которым LedBorg обрабатывает значения RGB, состоит в том, что 0 означает, что канал выключен, 1 означает, что канал имеет половинную мощность, а 2 означает, что канал имеет полную мощность. Так, например, 001 установит красный канал на 0%, зеленый - на 0%, а синий - на 50%.

Измените значение на 002, и светодиодный выход остается синим, но становится ярче, потому что синий канал теперь имеет выход 100%. Измените значение на 202, а красный и синий на полной мощности объединены, чтобы сделать пурпурный цвет.

Теперь, когда мы знаем, как управлять светодиодом вручную, давайте посмотрим на использование скриптов, чтобы превратить наш светодиод из простого света в фактический индикатор.

Настройка LedBorg как индикатора дождя

Для этой части учебника мы будем расчесывать несколько вещей вместе, чтобы превратить наш светодиодный модуль LedBorg в индикатор дождя на основе прогноза погоды для нашего местоположения. Мы будем использовать сценарий Python для вызова API погоды, который, в свою очередь, будет проверять вероятность дождя в течение дня, а затем переключить светодиод с ярко-синего цвета на индикатор прогнозируемого дождя.
Для этой части учебника мы будем расчесывать несколько вещей вместе, чтобы превратить наш светодиодный модуль LedBorg в индикатор дождя на основе прогноза погоды для нашего местоположения. Мы будем использовать сценарий Python для вызова API погоды, который, в свою очередь, будет проверять вероятность дождя в течение дня, а затем переключить светодиод с ярко-синего цвета на индикатор прогнозируемого дождя.

Во-первых, нам нужно получить ключ доступа к API для Weather Underground. Для личного использования и небольших проектов разработки API бесплатный. Посетите страницу API Weather API и зарегистрируйтесь для ключа API.

После того, как у вас есть ключ API, посетите Weather Underground и найдите город, который вы хотите контролировать. В нашем случае мы будем следить за Сан-Франциско, Калифорния. URL-адрес страницы прогноза Сан-Франциско:

https://www.wunderground.com/US/CA/San_Francisco.html

Важной частью наших целей является последняя часть URL-адреса: /CA/San_Francisco.html. Мы будем использовать это для редактирования URL прогноза для инструмента API. Основной URL:

https://api.wunderground.com/api/YOUR API KEY/forecast/q/STATE/CITY.json

Вы можете генерировать прогноз для любого города США, введя свой ключ API, код состояния двух букв и название города из URL-адреса, который вы вытащили из результатов поиска под землей.

После того, как у вас есть URL-адрес API с вашим ключом API и добавленным государством / городом, вы можете отредактировать следующий скрипт Python, создав новый текстовый документ на вашем Pi с помощью Leafpad и вставив в него следующий код:

from urllib2 import urlopen import json

req = urlopen('https://api.wunderground.com/api/YOUR API KEY/forecast/q/STATE/CITY.json') parsed_json = json.load(req) pop = int(parsed_json['forecast']['txt_forecast']['forecastday'][0]['pop'])

# Ниже приведено значение отладки. # Измените хэш и измените # целое число до 0-100 для тестирования # светодиодный ответ.

# pop = 0

print 'Current chance of precipitation is {}.'.format(pop)

# The default setting is to turn on the LED # for any chance of rain above 20%. You can adjust # the value in 'if pop > 20:' as you wish.

if pop > 20: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('002') del LedBorg print ('Rain!') else: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('000') del LedBorg print ('No rain!')

Сохраните файл как wunderground.py в каталоге / home / pi /. Откройте терминал и введите следующую команду:

python wunderground.py

Если вы правильно ввели свой ключ API и коды штата / города, он должен отбросить ответ, который выглядит так:

Если для вашей области прогнозируется осаждение, ваш выход LedBorg должен выглядеть так:
Если для вашей области прогнозируется осаждение, ваш выход LedBorg должен выглядеть так:
Теперь ждать дождливого дня, чтобы правильно протестировать сценарий, было бы утомительно. Если сегодня нет вероятности дождя в вашем районе, и вы хотите, чтобы светодиод загорелся, отредактируйте сценарий wunderground.py и замените значение переполнения «pop = pop» в строке 13 со значением больше 20, например 60 что наш прогноз вернулся. Не забудьте изменить строку до «pop = pop», когда закончите.
Теперь ждать дождливого дня, чтобы правильно протестировать сценарий, было бы утомительно. Если сегодня нет вероятности дождя в вашем районе, и вы хотите, чтобы светодиод загорелся, отредактируйте сценарий wunderground.py и замените значение переполнения «pop = pop» в строке 13 со значением больше 20, например 60 что наш прогноз вернулся. Не забудьте изменить строку до «pop = pop», когда закончите.

Заключительный шаг - настроить задание cron для автоматического запуска скрипта, который мы только что сохранили, на регулярном интервале, чтобы сохранить индикатор LED. Поскольку эта задача необходима как для этого сценария, так и для указателя электронной почты, который мы рассмотрим, мы рассмотрим настройку задания cron после того, как мы покажем вам, как настроить другой скрипт.

Настройка LedBorg в качестве индикатора Gmail

Кому не нравится исправление допамина, которое приходит с появлением нового письма в папке «Входящие»? В этой части урока мы покажем вам, как использовать LedBorg в качестве нового индикатора Gmail. Как и в прошлый раз, мы собираемся объединить внешний вход (в данном случае Atom-канал вместо API) и простой скрипт для управления нашим светодиодом.
Кому не нравится исправление допамина, которое приходит с появлением нового письма в папке «Входящие»? В этой части урока мы покажем вам, как использовать LedBorg в качестве нового индикатора Gmail. Как и в прошлый раз, мы собираемся объединить внешний вход (в данном случае Atom-канал вместо API) и простой скрипт для управления нашим светодиодом.

Нам нужно немного расширить функциональность нашей установки Python, установив FeedParser, инструмент чтения фидов Python RSS / Atom. Откройте терминал и введите следующую команду:

sudo easy_install feedparser

По завершении установки мы можем работать над созданием нашего скрипта проверки Gmail. Опять же, используя Leafpad, вставьте следующий текст в редактор. Измените имя пользователя и пароль для соответствия имени пользователя и паролю учетной записи Gmail, которую вы хотите проверить.

import feedparser

# Enter your Gmail username # and password. Don't include # the @gmail.com portion of # your username.

username = 'username' password = 'password'

mail = int(feedparser.parse('https://' + username + ':' + password +'@mail.google.com/gmail/feed/atom')['feed']['fullcount'])

# Ниже приведено значение отладки. # Измените хэш и измените # целое число в 0 или 1 для тестирования # светодиодный ответ.

# mail = 0

if mail > 0: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('020') del LedBorg print ('Mail!') else: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('000') del LedBorg print ('No mail!')

Сохраните скрипт как gmailcheck.py. Откройте терминал и введите следующую команду:

python gmailcheck.py

Если у вас есть электронная почта, сидящая в папке входящих сообщений Gmail, светодиод загорится зеленым цветом, и вы получите ответ вроде такого:

Если у вас есть почта в вашем почтовом ящике Gmail, ваш LedBorg будет выглядеть так:
Если у вас есть почта в вашем почтовом ящике Gmail, ваш LedBorg будет выглядеть так:
Так же, как скрипт проверки дождя, мы включили значение отладки. Если у вас нет нового сообщения электронной почты, вы можете отправить электронное письмо, чтобы повысить количество входящих почтовых ящиков до 1, или вы можете отредактировать хэш-комментарий и изменить строку отладки на «mail = 1», чтобы протестировать скрипт. Не забудьте вернуть строку, когда вы закончите тестирование.
Так же, как скрипт проверки дождя, мы включили значение отладки. Если у вас нет нового сообщения электронной почты, вы можете отправить электронное письмо, чтобы повысить количество входящих почтовых ящиков до 1, или вы можете отредактировать хэш-комментарий и изменить строку отладки на «mail = 1», чтобы протестировать скрипт. Не забудьте вернуть строку, когда вы закончите тестирование.

Перейдите в следующий раздел учебника, чтобы настроить сценарий Gmail на выполнение по расписанию.

Настройка задания Cron для запуска скрипта

Теперь, когда у нас есть два сценария для игры, нам нужно настроить задание cron, чтобы запустить их в течение дня, чтобы индикатор LED был активным.
Теперь, когда у нас есть два сценария для игры, нам нужно настроить задание cron, чтобы запустить их в течение дня, чтобы индикатор LED был активным.

Первое, что мы хотим сделать, это выключить светодиод, если он в настоящее время включен в наши предыдущие эксперименты. Тип терминала:

echo “000” > /dev/ledborg

Пока вы все еще находитесь в командной строке, вы можете открыть редактор cron. Если вы никогда не настраивали работу cron раньше, мы настоятельно рекомендуем проверить наш гид, чтобы использовать его здесь. Тем не менее, мы проверим вас, установив базовое расписание прямо здесь.

Тип терминала:

sudo crontab –e

Это откроет таблицу Raspbian cron в текстовом редакторе Nano. С помощью клавиш со стрелками прокрутите вниз до самого нижнего. Здесь мы собираемся настроить повторяющееся задание cron для наших скриптов Python.

Если вы хотите настроить сценарий дождя, введите следующую строку в таблицу cron:

*/5 * * * * python /home/pi/wunderground.py

Нажмите CTRL + X для выхода; выберите «да», чтобы сохранить и перезаписать существующую таблицу cron. Значение, введенное в таблицу cron «* / 5 * * * *», устанавливает скрипт каждые 5 минут навсегда.

Каждые 5 минут - это прекрасный промежуток времени для сценария, который проверяет прогнозируемый дождь - вы даже можете утверждать, что это слишком агрессивно, но если вы пытаетесь сохранить верх над своей электронной почтой, это слишком длинный промежуток времени для уведомления, Если вы настраиваете расписание для сценария уведомления Gmail, введите следующую строку в таблице cron:

*/1 * * * * python /home/pi/wunderground.py

Эта запись запускает скрипт gmailcheck.py каждую минуту для получения более быстрого уведомления об обновлении.

Вот и все! Вы можете поэкспериментировать с вашими собственными сценариями Python, снимая утверждения if / else из наших и тестируя их с помощью новых переменных. Если вы можете найти источник данных для данных, вы можете превратить его в переменную в ваших средних значениях на фондовых рынках Python, подсчет пыльцы, как упоминает Twitter, если для этого есть API, вы можете превратить его в индикатор окружающего светодиода.

Наконец, я хочу поблагодарить все большие ресурсы, которые я использовал для работы над этим проектом. Прошло чуть больше десяти лет с тех пор, как я активно писал программы, и потребовалось несколько ударов, чтобы получить пыль и ржаветь. Авторы / r / LearnPython помогли мне запутаться в выходе API для Weather Underground, изучив, как Майкл в Mitch Tech работал с фида Gmail Atom, который разбирал его для LedBorg, и изучение модулей обучения Python в Code Academy было отличный способ подобрать базовый синтаксис и структуру языка, который я никогда раньше не использовал.

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