Изградете LED индикатор с Raspberry Pi (за електронна поща, време или нещо)
Raspberry Pi прави приятна компактна платформа за прикачване на индикаторна лампа за всички видове проекти - нотификация за времето, нови имейли и др. Прочетете, докато ви покажем как да свържете светодиоден модул към Pi и да настроите някои основни уведомления.
Защо искам да направя това?
Защото е забавно. За разлика от много от нашите уроци, в които включваме малък обем на върха, очертаващ точно каква полза ще извлечете от проекта, рекламата е доста кратка в този случай, защото ползата е просто да се забавляваме.
Raspberry Pi е перфектно устройство за игра, експериментирайте с електроника и научете някои програми. Никой потребности например индикатор за атмосферния дъжд в тяхната кухня, но изграждането на такъв е забавно упражнение и чудесно напомняне да донесете чадъра си при потенциално бурни дни.
От какво се нуждая?
За да следвате заедно с нашия урок ще ви трябват няколко неща. Първо, предполагаме, че вече сте следвали нашия предишен урок: Ръководството на HTG за Първи стъпки с Raspberry Pi (и по този начин имаме основите, покрити до инсталирането на Rasbian на нашия Raspberry Pi).
Ако искате да направите този проект на бюджета, можем уверено да ви кажем, че най-новият модел Raspberry Pi е значителен свръхпроизводство за работата и ние ви насърчаваме да издухате прахта от стара Raspberry Pi в килера или вземете евтино използван един eBay или други подобни. Бюджет мъдър дългосрочен зъб Raspberry Pi 1 Модел А или Модел Б, откъснат от eBay за $ 10-15 е идеалното решение за този проект за закупуване на чисто ново поколение Pi $ 35.
В допълнение към наличието на функционална Pi единица с инсталирана Raspbian, ще са ви необходими следните неща:
- 1 модул LedBorg (~ $ 5.00 с доставка от $ 4 от Великобритания до САЩ, работи с всички модели Raspberry Pi).
- 1 Clear Raspberry Pi Случай съвместим с вашия конкретен модел Pi, като този случай Raspberry Pi 1 Model B.
Забележка: Ясният / матиран Pi случай е изцяло по избор, но ако в момента използвате непрозрачен калъф, вашият LED индикатор ще бъде скрит вътре. Вие или ще трябва да отрежете дупка в случая, за да изгасите светлината или да използвате GPIO удължителен кабел с прекъсващ комплект, подобен на този от Adafruit Industries, за да свържете LedBorg към Raspberry Pi. Докато използването на прекъсващия кабел добавя около 8 долара за сметка на проекта, той предлага по-голям потенциал за персонализиране на крайния продукт, тъй като по-лесно можете да поставите светодиода вътре или под нещо, което искате да осветявате..
Инсталиране на LedBorg
Макар че със сигурност можете да си създадете изцяло светодиоден индикатор (и запитването на търсачката ще доведе до много хора, които са го направили), организацията Piborg произвежда такъв компактен и евтин светодиоден модул, LedBorg, който не можем да направим. Не се опитвайте да го използвате като основа за нашия проект за LED индикатор Raspberry Pi.
Инсталирането на модула е модулно, тъй като е проектирано да се вписва директно върху пиновете на GPIO на Pi. Първо изключете Pi и отворете кутията.
Най-важната част от инсталационния процес е да ориентирате модула така, че иконата на LedBorg да е най-близо до модула RCA на борда на Raspberry Pi (и по този начин ръбът на LedBorg да се изравни с ръбовете на борда Pi с надвисване част от LedBorg, висяща над борда на Pi, а не от ръба). Вижте снимката по-горе.
Докато сте отворен за Pi борда, сега ще бъде отлично време да покриете вградените LED индикатори (до USB портовете), особено ако използвате ясен калъф. Вие не искате да бъде объркващо да прочетете вашия индикатор LedBorg, тъй като индикаторът за захранване и мрежата е толкова ярък.
Покрихме нашите с слой бяла лента. Това ги притъпяваше достатъчно, за да можем да ги споменаваме, но те бяха толкова по-тъмни от LedBorg, че вече не ги разсейваше.
След като инсталирате LedBorg и по желание покриете светодиодните индикатори на Pi с електрическа лента, е време да затворите кутията обратно. Стартирайте Pi преди да преминете към следващата фаза на урока.
Инсталиране на софтуера LedBorg
PiBorg предоставя страхотен софтуерен пакет за LedBorg, който включва както GUI контролер, така и драйвери за достъп до LedBorg от командния ред.
Преди да започнем, трябва да се уверите, че сте взели правилния пакет за вашата версия на Rasbian и ревизията # на борда на Raspberry Pi..
Ако вашето табло Raspberry Pi няма дупки за монтиране, това е версия 1. Ако Raspberry Pi има отвори за монтиране (разположени от USB портовете и между захранването и HDMI порта), то е версия 2. Трябва да знаете и версията на ядрото. на вашата инсталация на Rasbian. Отворете терминала и въведете следната команда, за да проверите:
uname -r
След като имате номера на редакцията и номера на ядрото, можете да посетите секцията „Пакети“ тук, за да вземете връзката за вашия пакет. В нашия случай използваме платка с версия 1 на ядрото на 3.6.11, така че ще вземем файла rpbian2013-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
разархивирайте setup.zip
chmod + x install.sh
./install.sh
В този момент вече имате GUI обвивка за драйверите на LedBorg и самите драйвери. На работния плот на Raspbian ще видите икона за обвивката на GUI:
Продължете и кликнете върху иконата LedBorg, за да стартирате обвивката на GUI. Ще бъдете третирани с интерфейса за избор на цвят така:
Сега е идеалното време да се уверите, че вашият модул е функционален. Изберете всеки цвят, освен за черно, за да го изпробвате. Ще го тестваме, като изберем няколко цвята:
Изглежда добре! Това е светло и матовата пластмаса на случая, поръчана за проекта, предлага умерена дифузия. Ако искате да играете с LED модула преди да продължите, щракнете върху Демо режим: \ t
В демо режим можете да преминете през всички цветове при различни скорости, да проверите високия / ниския изход и по друг начин да поставите LED модула през стъпките.
Тук можете да превърнете вашия LedBorg в първия от многото индикатори. Чрез избора на CPU в секцията Colors LED ще започне да се променя от зелено към жълто до червено, за да покаже натоварването на ARM процесора на Raspberry Pi. Препоръчваме ви да промените скоростта на забавяне, докато сте в нея - Бързо актуализира светодиода твърде бързо и прави разсейващия индикатор на CPU вместо полезен.
В допълнение към използването на GUI интерфейса за избор на цветове можете да изберете цветове от терминала, като използвате RGB стойности. Отворете терминала и въведете следната команда, за да изключите светодиода:
echo "000"> / dev / ledborg
Начинът, по който LedBorg управлява RGB стойностите е, че 0 означава, че каналът е изключен, 1 означава, че каналът е с половин мощност, а 2 означава, че каналът е с пълна мощност. Така например 001 ще зададе Червения канал на 0%, Зеленият канал на 0% и Синият канал на 50%.
Променете стойността на 002 и светодиодният изход остава син, но става по-ярък, защото Blue каналът вече е на 100% изход. Променете стойността на 202, а червената и синята при пълна мощност се комбинират, за да направят пурпурен цвят.
Сега, когато знаем как да манипулираме с LED ръчно, нека да разгледаме използването на скриптове, за да превърнем нашия светодиод от обикновена светлина до действителен индикатор.
Конфигуриране на вашия LedBorg като индикатор за дъжд
За тази част от урока ще разгледаме няколко неща заедно, за да превърнем светодиодния модул LedBorg в индикатор за дъжд въз основа на прогнозата за времето за нашето местоположение. Ще използваме Python скрипт, за да извикаме API за времето, който от своя страна ще прочете шанса за дъжд за деня, а след това ще превключи светодиода от светло към синьо, за да покаже прогнозирания дъжд..
Първо, трябва да получим ключ за достъп до API за Weather Underground. За лична употреба и малки проекти за разработване API е безплатна. Посетете страницата за регистриране на API за времето тук и се регистрирайте за API ключ.
След като имате своя API ключ, посетете метеорологичното метро и потърсете града, който искате да наблюдавате. В нашия случай ще наблюдаваме Сан Франсиско, Калифорния. 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/YOUR API KEY / прогноза / q / STATE / CITY.json
Можете да генерирате прогнозата за всеки град в САЩ, като въведете своя ключ за приложния програмен интерфейс (API), дву-буквения код на държавата и името на града от URL адреса, който сте извлекли от резултатите от търсенето ви в метеорологичните условия.
След като въведете URL адреса на API с вмъквания ключ за API и състояние / град, можете да редактирате следния скрипт на Python, като създадете нов текстов документ на Pi с помощта на Leafpad и вмъкнете в него следния код:
от urllib2 внос urlopen
внос json
req = urlopen ('http://api.wunderground.com/api/YOUR API KEY / forecast / q / STATE / CITY.json')
parsed_json = json.load (req)
pop = int (parsed_json ['forecast'] ['txt_forecast'] ['прогноза'] [0] ['pop'])# Следното е стойност за отстраняване на грешки.
# Редактирайте хеша и променете
# цяло число до 0-100 за тестване
# светодиодният отговор.# pop = 0
print 'Понастоящем шансът на валежите е .'. формат (поп)
# Настройката по подразбиране е да включите светодиода
# за всеки шанс за дъжд над 20%. Можете да регулирате
# стойността в "if pop> 20:" както желаете.
ако е поп> 20:
LedBorg = open ('/ dev / ledborg', 'w')
LedBorg.write ( "002")
del LedBorg
print ('Дъжд!')
друго:
LedBorg = open ('/ dev / ledborg', 'w')
LedBorg.write ( "000")
del LedBorg
print ("Няма дъжд!")
Запазете файла като wunderground.py в директорията / home / pi /. Отворете терминала и въведете следната команда:
python wunderground.py
Ако сте въвели своя API ключ и правилно кодовете на държавата / града, той трябва да отхвърли отговор, който изглежда по следния начин:
Ако се прогнозира валежи за района ви, изходът на LedBorg трябва да изглежда така:
Сега чакаме дъждовен ден, за да изпробваме скрипта правилно. Ако няма шанс за дъжд в района ви днес и искате да видите, че LED светва, редактирайте скрипта wunderground.py и заменете стойността на "pop = pop" в ред 13 със стойност по-голяма от 20, като например 60 че нашата прогноза се върна. Само не забравяйте да промените линията обратно на „pop = pop“, когато сте готови.
Последната стъпка е да се създаде cron задача за автоматично стартиране на скрипта, който току-що записахме на редовен интервал, за да се запази текущия светодиоден индикатор. Тъй като тази задача е необходима както за този скрипт, така и за указателя за имейл, който следва, ще покрием задаването на cron задание, след като ви покажем как да настроите другия скрипт.
Конфигуриране на LedBorg като Gmail индикатор
Кой не харесва фиксирания допамин, който идва с новия имейл в тях? В тази част от урока ще ви покажем как да използвате LedBorg като нов индикатор на Gmail. Както и миналия път, ще комбинираме външен вход (в този случай Atom канал вместо API) и прост скрипт, който да управлява нашия LED.
Трябва малко да разширим функционалността на нашата инсталация на Python, като инсталираме FeedParser, инструмент за четене на RSS / Atom на Python. Отворете терминала и въведете следната команда:
sudo easy_install feedparser
След като инсталацията приключи, можем да настроим да работим по създаването на нашия скрипт за проверка на Gmail. Отново, използвайки Leafpad, поставете следния текст в редактора. Променете потребителското име и паролата, за да съответстват на потребителското име и паролата на профила в Gmail, който искате да проверите.
вносител
# Въведете потребителското си име за Gmail
# и парола. Не включвайте
# частта на @ gmail.com на
# Вашето потребителско име.
username = "потребителско име"
password = "password"
mail = int (feedparser.parse ("https: //" + потребителско име + ":" + парола + "@ mail.google.com/gmail/feed/atom")["eded"]["fullcount"])
# Следното е стойност за отстраняване на грешки.
# Редактирайте хеша и променете
# цяло число до 0 или 1 за тестване
# светодиодният отговор.# mail = 0
ако е поща> 0:
LedBorg = open ('/ dev / ledborg', 'w')
LedBorg.write ( "020")
del LedBorg
print ("Поща!")
друго:
LedBorg = open ('/ dev / ledborg', 'w')
LedBorg.write ( "000")
del LedBorg
print ("Няма поща!")
Запазете скрипта като gmailcheck.py. Отворете терминала и въведете следната команда:
python gmailcheck.py
Ако имате електронна поща в пощенската си кутия в Gmail, светодиодът ще светне в зелено и ще получите отговор като:
Ако имате поща в пощенската си кутия в Gmail, LedBorg ще изглежда така:
Също като скрипта за проверка на дъжда, включихме стойност за отстраняване на грешки. Ако нямате нов имейл, можете или да си изпратите имейл, за да повишите броя на входящите съобщения до 1, или да редактирате хеша за коментари и да промените реда за отстраняване на грешки на „mail = 1“, за да тествате скрипта. Не забравяйте да върнете линията, когато приключите с тестването.
Прескочете в следващия раздел на урока, за да настроите Gmail скрипта си да се изпълнява по график.
Създаване на Cron работа, за да стартирате скрипта си
Сега, когато имаме два скрипта, с които да играем, трябва да настроим cron работа, за да ги изпълним през целия ден, за да запазим LED индикатора.
Първото нещо, което искаме да направим, е да изключим светодиода, ако в момента е включен от предишните ни експерименти. При вида на терминала:
echo "000"> / dev / ledborg
Докато все още сте в командния ред, можете да отворите cron редактора. Ако никога преди не сте създавали cron работа, ние силно препоръчваме да проверите нашето ръководство за използването му тук. Това каза, ще ви преведем през установяването на основен график точно тук.
При вида на терминала:
sudo crontab -е
Това ще отвори таблицата на 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 за него, можете да го превърнете в околен LED индикатор..
И накрая, искам да благодаря на всички големи ресурси, които използвах за работа по този проект. Това е малко повече от десетилетие, откакто активно пишах програми и ми отне няколко удара, за да се получи прах и ръжда. Участниците в / r / LearnPython ми помогнаха да се справям с изхода на API за Weather Underground, изучавайки как Майкъл в Mitch Tech се занимава с емисията на Gmail Atom, като го анализира за LedBorg лесно, а изучаването на Python учебните модули в Code Academy беше чудесен начин да намерите основния синтаксис и структура на език, който никога преди не съм използвал.