If-Koubou

Изграждане на индикатор с LED с малина Pi (за имейл, време или нещо)

Изграждане на индикатор с LED с малина Pi (за имейл, време или нещо) (Как да)

Raspberry Pi прави хубава компактна платформа, за да прикачите индикаторна светлина за всички видове проекти - уведомяване за времето, нови имейли и т.н. Прочетете, докато ви показваме как да свържете светодиоден модул към своя Pi и да настроите някои основни известия ,

Защо искам да направя това?

Защото е забавно. За разлика от много от нашите уроци, където ние включваме малко размазване на върха, очертавайки точно каква полза ще извлечете от проекта, разцветът е доста кратък в този случай, защото ползата е просто да се забавлявате.

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

От какво се нуждая?

За да следвате заедно с настойнически урок ще ви трябва няколко неща. Първо, ние предполагаме, че вече сте следвали нашия предишен урок: HTG Ръководството за Първи стъпки с Raspberry Pi (и по този начин имаме основите, обхванати за инсталиране на Rasbian на нашия Raspberry Pi).

Ако искате да направите този проект с бюджет, можем уверено да ви кажем, че най-новият модел Raspberry Pi е значителна превишена работа и ние бихме Ви насърчили да издухате праха от стара Raspberry Pi, в килера или вземете евтино използвано едно от иБей или други подобни. Бюджетът мъдър на дълго в зъб една малиница Pi 1 Модел А или модел Б заглушен от иБей за $ 10-15 е перфектно годни за този проект за закупуване на чисто нов $ 35 сегашното поколение Pi.

Освен че имате функционален блок Pi с инсталиран Raspbian, ще ви трябва следните неща:

  • 1 модул LedBorg (~ $ 5.00 с 4 долара от Великобритания до САЩ, работи с всички модели Raspberry Pi).
  • 1 Clear Malina Pi Case съвместима с вашия модел Pi като този модел Raspberry Pi 1 модел B.

Забележка: Кристалният / матираният случай Pi е изцяло опционален, но ако в момента използвате непрозрачен калъф, тогава вашият светодиоден индикатор ще бъде скрит вътре. Или ще трябва да изрежете дупка в кутията, за да оставите светлината или да използвате удължителен кабел за GPIO с пробив комплект, подобен на този от Adafruit Industries, за да прикачите LedBorg към Вашата малина. Докато използвате пробивният кабел добавя около $ 8 за сметка на проекта, той предлага повече възможности за персонализиране на крайния продукт, тъй като можете по-лесно да поставите светодиода вътре в нещата или под нещо, което искате да осветявате.

Инсталиране на LedBorg

Докато със сигурност бихте могли да изградите себе си напълно от нулата светодиоден индикатор (и търсенето на двигателя ще се превърне в много хора, които са го направили), организацията Piborg произвежда такъв компактен и евтин LED модул, LedBorg, не устояваме на използването му като основа за нашия проект за индикатор на Малина Pi LED.

Инсталирането на модула е едновременно, тъй като е проектиран така, че да се побере директно над GPIO пина на Pi. Първо, изключете Pi и отворете кутията.

Най-важната част от инсталационния процес е, че ориентирате модула така, че иконата LedBorg да е най-близо до RCA модула на дъската Raspberry Pi (и по този начин ръбът на LedBorg е изравнен с ръбовете на дъската Pi с надвисналата част от LedBorg, висяща над дъската Pi, а не извън ръба). Вижте снимката по-горе.

Докато имате плота Pi, сега ще бъде отлично време да покриете бордовите LED индикатори (до USB портовете), особено ако използвате ясен случай. Вие не искате да е объркващо да прочетете индикатора на LedBorg, защото индикаторите на захранването и мрежата са толкова ярки.

Ние покрихме нашия слой с бяла електрическа лента. Това ги затъмняваше достатъчно, за да можем да ги посочим, но те бяха толкова по-тъмни от LedBorg, че вече не разсейваше.

След като инсталирате LedBorg и по желание покрихте LED индикаторите на Pi с електрическа лента, е време да затворите калъфа обратно. Заредете своя Pi, преди да преминете към следващата фаза на урока.

Инсталиране на софтуера на LedBorg

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

Преди да започнете, трябва да сте сигурни, че сте грабнали правилния пакет за Вашата версия на Rasbian и редакцията # на борда на Raspberry Pi.

Ако вашата дъска Raspberry Pi няма монтажни отвори, тя е Revision 1. Ако вашата Raspberry Pi има монтажни отвори (разположени от USB портовете и между захранването и HDMI порт), то е Revision 2. Вие също трябва да знаете версията на ядрото от вашата расбийска инсталация. Отворете терминала и въведете следната команда, за да проверите:

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 http://www.piborg.org/downloads/ledborg/raspbian-2013-02-09-rev1.zip
unzip setup.zip
chmod + x install.sh
./install.sh

В този момент вече имате GUI wrapper за драйверите на LedBorg и самите драйвери, инсталирани. На работния плот Raspbian ще видите икона за обвивката на GUI:

Отидете напред и кликнете върху иконата LedBorg, за да стартирате обвивката на GUI. Ще бъдете обработени до интерфейса за избор на цветове така:

Сега е идеалното време да се уверите, че вашият модул е ​​функционален. Изберете цвят, освен черен, за да го изпробвате. Ще го изпробваме, като вземем няколко цвята:

Изглежда добре! Това е светло и матираната пластмаса на корпуса, който поръчахме за проекта, предлага умерено разпространение. Ако искате да играете с LED модула още преди да продължите, кликнете върху Demo Mode:

В демо режим можете да преминете през всички цветове при различни скорости, да проверите високия / нисък изход и в противен случай поставете светодиодния модул през стъпките.

Тук в секцията Demo Mode можете да превърнете своя LedBorg в първия от многото показатели. Избирайки процесор в секцията Цветове, светодиодът ще започне да се променя от зелено на жълто до червено, за да покаже натоварването на ARM процесора на Raspberry Pi. Препоръчваме да промените скоростта на Бавен, докато сте в нея - Бързо актуализира светодиода твърде бързо и прави индикатора на процесора разсейващ, вместо полезен.

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

echo "000"> / dev / ledborg

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

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

Сега, когато знаем как ръчно да манипулираме светодиода, нека да разгледаме използването на скриптове, за да превърнем нашия светодиод от проста светлина в действителен индикатор.

Конфигуриране на вашия LedBorg като индикатор за дъжд

За тази част от урока ще обличаме няколко неща заедно, за да превърнем LedBorg LED модула в показател за дъжд въз основа на прогнозата за времето за местоположението ни. Ще използваме Python скрипт, за да се обадим на API за времето, което на свой ред ще прочете шанса за дъжд за деня, а след това ще превключи светодиода от ярко синьо, за да покаже прогнозния дъжд.

Първо, трябва да получим ключ за достъп до API за Weather Underground. За лична употреба и малки проекти за разработка API е безплатен. Посетете тук страницата за вписване в API за времето и се регистрирайте за API ключ.

Щом разполагате с API ключ, посетете Weather Underground и потърсете града, който искате да наблюдавате. В нашия случай ще наблюдаваме Сан Франсиско, Калифорния. URL адресът на прогнозната страница на San Fransisco е:

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

Важната част за целите ни е последната част от URL адреса: /CA/San_Francisco.html. Ще го използваме, за да редактираме прогнозния URL адрес на инструмента за приложния програмен интерфейс (API). Основният URL адрес е:

http://api.wunderground.com/api/ИНЧЕСТВОТО НА АПИ / прогноза / q / STATE / CITY.json

Можете да генерирате прогнозата за всеки град в САЩ, като въведете своя API ключ, двубуквения код на държавата и името на града от URL адреса, който сте изтеглили от резултатите от търсенето в Underground.

След като въведете URL адреса на приложния програмен интерфейс (API) с API ключ и държава / град, можете да редактирате следния скрипт на Python, като създадете нов текстов документ на вашия Pi с помощта на Leafpad и поставете следния код в него:

от urllib2 импортирам urlopen
импортиране на json

req = urlopen ('http://api.wunderground.com/api/YOUR API KEY / прогноза / q / STATE / CITY.json')
parsed_json = json.load (запитване)
("прогноза"] ['txt_forecast'] ['прогноза'] [0] ['поп'])

# Следващата стойност е грешка.
# Редактирайте хеш и промените
# цяло число до 0-100 за тестване
# отговор на светодиода.

# pop = 0

print 'Времето за валежи е .'. формат (поп)

# Стандартната настройка е да включите светодиода
# за всяка вероятност от дъжд над 20%. Можете да коригирате
# стойността в "ако поп> 20:", както желаете.

ако поп> 20:
LedBorg = отворен ('/ dev / ledborg', 'w')
LedBorg.write ( "002")
дел LedBorg
отпечатайте ("Rain!")
друго:
LedBorg = отворен ('/ dev / ledborg', 'w')
LedBorg.write ( "000")
дел LedBorg
print ("Няма дъжд!")

Запазете файла като wunderground.py в директорията / home / pi /. Отворете терминала и въведете следната команда:

python wunderground.py

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

Ако прогнозата за валежите е вашият изход LedBorg трябва да изглежда така:

Сега чакането на дъждовен ден, за да тествате правилно скрипта, ще бъде доста досадно. Ако няма шанс днес да се залее вашият район и искате да видите светодиода, редактирайте скрипта wunderground.py и заместете стойността "pas = pop" на ред 13 с стойност по-голяма от 20, като например 60 че прогнозата ни се е върнала. Само не забравяйте да промените линията обратно на "pop = pop", когато сте готови.

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

Конфигуриране на вашия LedBorg като индикатор за Gmail

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

Трябва да разширим функционалността на нашата инсталация на Python малко, като инсталираме FeedParser, инструмент за четене на feed feeds RSS / Atom на Python. Отворете терминала и въведете следната команда:

sudo easy_install feedparser

След като инсталацията приключи, можем да настроим да създадем нашия скрипт за проверка на Gmail. Отново, като използвате Leafpad, поставете следния текст в редактора. Променете потребителското име и паролата, за да съответствате на потребителското име и паролата на профила в Gmail, който искате да проверите.

внасяне на feedparser

# Въведете потребителското си име за Gmail
# и парола. Не включвайте
# частта @ gmail.com на
# Вашето потребителско име.

username = "username"
парола = "парола"

mail = int (feedparser.parse ("https: //" + потребителско име + ":" + парола + "@ mail.google.com/gmail/feed/atom")["feed"]""fullcount"])

# Следващата стойност е грешка.
# Редактирайте хеш и промените
# цяло число до 0 или 1, за да тествате
# отговор на светодиода.

# mail = 0

ако пощата> 0:
LedBorg = отворен ('/ dev / ledborg', 'w')
LedBorg.write ( "020")
дел LedBorg
отпечатайте ("Mail!")
друго:
LedBorg = отворен ('/ dev / ledborg', 'w')
LedBorg.write ( "000")
дел LedBorg
отпечатай ("Няма поща!")

Запишете скрипта като gmailcheck.py. Отворете терминала и въведете следната команда:

python gmailcheck.py

Ако имате имейл, който се намира във входящата ви поща в Gmail, светодиодът ще стане зелен и ще получите такъв отговор:

Ако имате поща във входящата ви поща в Gmail, вашият LedBorg ще изглежда така:

Точно като скрипта за проверка на дъжд, ние включихме и стойност за отстраняване на грешки. Ако нямате нов имейл, можете или да изпратите имейл, за да увеличите броя на входящите си в 1, или можете да редактирате кодовия хеш и да промените реда за отстраняване на грешки на "mail = 1", за да тествате скрипта. Не забравяйте да върнете реда, когато приключите тестването.

Влезте в следващия раздел на урока, за да настроите скрипта си в Gmail да се изпълнява по график.

Настройване на задание Cron, за да стартирате скрипта си

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

Първото нещо, което искаме да направим, е да изключим светодиода, ако понастоящем е от предишните ни експерименти. На типа терминал:

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:

* / * * * * Python / home /pi/wunderground.py

Този запис изпълнява скрипта gmailcheck.py всяка минута за много по-ускорено известие за актуализация.

Това е всичко, което има! Можете да експериментирате със собствените си Python скриптове, като извадите if / else изявленията си от нашите и ги изпробвате с чисто нови променливи. Ако можете да намерите входен източник за данните, можете да го превърнете в променлива в средните стойности на фондовия пазар на Python, полен, Twitter споменава, ако има API за него, можете да го превърнете в индикатор за околната среда.

И накрая, искам да благодаря на всички големи ресурси, които използвах за този проект. Беше малко повече от десетилетие, откакто активно пишех програми и отнема няколко удара, за да изкарам праха и ръждата. Участниците в / r / LearnPython ми помогнаха да се забъркам в изхода на API за Weather Underground, като се запознах с начина, по който Майкъл в Mitch Tech се занимаваше с Gmail Atom feed, правейки анализа за LedBorg лесно и изучаването на Python learning modules в Code Academy чудесен начин да извлечете основния синтаксис и структура на език, който никога преди не съм използвал.