Оглавление:

Прикроватный хоккейный светильник и ЖК-экран НХЛ: 4 ступени (с изображениями)
Прикроватный хоккейный светильник и ЖК-экран НХЛ: 4 ступени (с изображениями)

Видео: Прикроватный хоккейный светильник и ЖК-экран НХЛ: 4 ступени (с изображениями)

Видео: Прикроватный хоккейный светильник и ЖК-экран НХЛ: 4 ступени (с изображениями)
Видео: Путина напугал громкий звук. И он сразу поправил бронежилет 2024, Ноябрь
Anonim
Image
Image
Прикроватный хоккейный светильник и ЖК-экран НХЛ
Прикроватный хоккейный светильник и ЖК-экран НХЛ

Вступление

NHL Light - для любителей хоккея, которые хотят следить за своей командой, но не могут смотреть каждую игру. Его лучшая особенность заключается в том, что он имитирует результат с помощью хоккейного рожка (индивидуального для вашей команды) и света.

Помимо хоккейного рожка и света, «NHL Light» имеет дисплей, на котором отображается текущий или последний счет игры, время игры или время следующей игры, а также текущая дата и время.

«NHL Light» работает на простом списке деталей, который легко собрать, электроника и код, который находится в свободном доступе.

Функции

  1. Конфигурация на основе веб-страницы для выбора вашей команды и Wi-Fi
  2. Играет световой сигнал и гудок, когда ваша команда забивает (даже если вы на выезде)
  3. Воспроизводит звук, чтобы объявить о начале игры
  4. Воспроизводит звук, чтобы объявить о завершении игры.
  5. Предоставляет время и дату следующей игры, если игра не ведется.
  6. Отображает текущее время и период игры, если игра продолжается.
  7. Отображает текущую дату и время.

Шаг 1: Шаг 1: Соберите детали

Шаг 1: соберите детали
Шаг 1: соберите детали

Вот список запчастей.

  1. Raspberry Pi W *

    1. Амазонка
    2. Я предпочитаю получать свои в Microcenter, но их можно найти в Интернете по более низкой цене в других местах.
    3. $10
  2. SD-карта (минимум 4 ГБ) *
  3. спикер - Amazon - ~ 2 доллара *
  4. amp - PAM8403 * - Amazon - ~ 1 доллар за штуку
  5. свет - Amazon - ~ 5 долларов
  6. Кейс - 1 доллар *

    1. Майкла
    2. Я рекомендую небольшой деревянный чемоданчик из магазина для рукоделия Майкла, но оставлю его вам!
  7. I2C 2004 LCD - 3-7 долларов

    1. Амазонка
    2. Код поддерживает 3 типа ЖК-дисплеев, но я выбрал I2C 2004 как лучшее соотношение цены и размера. (Возможен SSD1306)
  8. 2 транзистора - 2N2222A - Amazon
  9. Разное Провода / припой 12 В
  10. блок питания - Amazon
  11. Понижающий преобразователь 12 В -> 5 В - Amazon

* Существует гибкость при выборе этой части.

ПРИМЕЧАНИЕ. Вы можете начать большую часть этого проекта, используя только свой Raspberry Pi, пока вы ждете отправки других предметов.

Шаг 2: Шаг 2: Электромонтаж и электроника

Шаг 2: Электромонтаж и электроника
Шаг 2: Электромонтаж и электроника
Шаг 2: Электромонтаж и электроника
Шаг 2: Электромонтаж и электроника
  1. Собрать свет

    1. Электропроводка для света - 12+ к свету.
    2. Запустить минус от света через один из транзисторов.
    3. Эмметр транзистора идет на массу.
    4. Коллектор транзистора идет на Raspberry Pi.
  2. Собрать звук

    1. Запустите правый или левый звук от PI к усилителю
    2. Запускаем + 5В на усилок
    3. Подключите заземление усилителя ко 2-му транзистору.
    4. Заземлите эмметр 2-го транзистора на массу.
    5. Запускаем коллектор транзистора к Raspberry Pi
  3. Собираем проводку к ИП.
  4. Это инструкции по распиновке для PI (некоторые из них настраиваются через JSON)

    1. ЖК-дисплей

      1. 3 - ПДД
      2. 5 - SCL
      3. 5 - VCC (+5)
    2. AMP 8 (GPIO 14)
    3. Light 10 (GPIO15)
    4. Правильный звук - GPIO 18

Шаг 3: Шаг 3: Настройка программного обеспечения операционной системы

  1. Подготовьте Raspberry Pi W

    1. На rasberry pi должна быть установлена последняя версия Raspbian (или другой Debian).
    2. Рекомендуется следовать этим инструкциям:
    3. Обязательно включите файл wifi wpa_supplicant.
    4. Поместите файл ssh на SD-карту, чтобы разрешить доступ по ssh.
  2. Подготовьте стороннее программное обеспечение:

    1. Я автоматизировал этот процесс, чтобы получить все необходимые сторонние инструменты, но не стесняйтесь запускать их вручную и проверять, чтобы убедиться, что ни один шаг не завершился ошибкой.
    2. Загрузите и запустите следующий скрипт:

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

Заголовок скрипта:

#! / bin / sh -e # можно вызвать через #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: автоматизируйте этот скрипт с помощью чего-то вроде: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # TODO: setup wifi # TODO: setup passwd and authorized keys # notes:

Обновление ПО на уровне ОС:

# apt-get stuff (apt-get update && apt-get -y upgrade)> / dev / null apt-get dist-upgrade -y #General Dev apt-get install -y git build-essential python-dev python-pip python-smbus libasound2-dev nodejs # GPIO apt-get install -y raspi-gpio python-imaging python-smbus libasound2-dev #networking apt-get install -y bridge-utils hostapd dnsmasq apt-get clean -y

Настройка сети. Частично цель здесь заключалась в том, чтобы позволить системе быть настроенной через точку доступа для подключения к вашему собственному Wi-Fi, но это еще не было полностью протестировано. В настоящее время рекомендуется использовать метод wpa_supplicant для настройки Wi-Fi.

#networking setupecho nhllight> / etc / hostname #TODO: исправить / etc / hosts #TODO: setup br0 mkdir / etc / hostapd / # примечание: другие настройки выполняются через файлы конфигурации и оболочку как часть обновления

Обновление узлов и библиотек узлов

#update nodecd / tmp export nodeversion = 8.9.0 #wget https://nodejs.org/dist/v7.4.0/node-v7.4.0-linux-… #wget https://nodejs.org/dist/v7. 4.0 / node-v7.4.0-linux-… wget https://nodejs.org/dist/v7.4.0/node-v7.4.0-linux-… tar -xvf node-v $ {nodeversion} -linux-armv6l. tar.xz cd node-v $ {nodeversion} -linux-armv6l rm -f *.md rm -f ЛИЦЕНЗИЯ cp -R * / usr / local / rm -R / tmp / node-v $ {nodeversion} -linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #TODO: сделать символьную ссылку для двоичного файла узла? apt-get remove -y --purge npm node nodejs

# Настройка узлаmkdir / opt / nhl mkdir / opt / nhl / logs mkdir / opt / nhl / horns mkdir / opt / nhl / node_modules /

#update Node

# установить зависимости узлов в каталог nhl export NODE_PATH = / usr / local / lib / node_modules

#HACK - TODO - исправьте этот хромой, который не устанавливается глобально

cd / opt / nhl npm install lame # lame, is lame, не будет устанавливать глобально cp -R / opt / nhl / node_modules / lame $ NODE_PATH npm install динамик # не устанавливать глобально cp -R / opt / nhl / node_modules / динамик $ NODE_PATH npm install i2c-bus # не устанавливать глобально cp -R / opt / nhl / node_modules / i2c-bus $ NODE_PATH npm install oled-i2c-bus # не устанавливать глобально cp -R / opt / nhl / node_modules / oled-i2c-bus $ NODE_PATH npm install lcd # не устанавливать глобально cp -R / opt / nhl / node_modules / lcd $ NODE_PATH npm install lcdi2c #wont install global cp -R / opt / nhl / node_modules / lcdi2c $ NODE_PATH

npm install oled-font-5x7 # не устанавливать глобально

cp -R / opt / nhl / node_modules / oled-font-5x7 $ NODE_PATH

npm install onoff # не устанавливать глобально

cp -R / opt / nhl / node_modules / onoff $ NODE_PATH

#npm install pm2 # не устанавливать глобально

#cp -R / opt / nhl / node_modules / pm2 $ NODE_PATH #npm install express #wont install global #cp -R / opt / nhl / node_modules / express $ NODE_PATH

# любые глобальные модули

npm установить экспресс-анализатор тела child_process pm2 -g

Получите последний код:

#pull git codecd / opt / nhl #JSON - одноразовое создание wget --no-cache -O /opt/nhl/nhl_config.json https://raw.githubusercontent.com/wga22/nodejs/ma… #wget -O /opt/nhl/NHL_work.js https://raw.githubusercontent.com/wga22/nodejs/ma… #call автоматический скрипт для установки всего остального для NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs / ма… | sudo -E bash -

Скачай рога!

#pull hornscd / opt / nhl / horns curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -

обновите файлы конфигурации Raspberry pi - - может потребоваться изменить для вашей системы

# обновления файла конфигурации # добавить звук cp /boot/config.txt /boot/config.txt.bak printf '\ ndtoverlay = pwm-2chan, pin = 18, func = 2, pin2 = 13, func2 = 4' >> / boot / config.txt # включить i2c printf '\ n / ndtparam = i2c1 = on / n' >> /boot/config.txt printf '\ n / ndtparam = i2c_arm = on / n' >> / boot / config. текст

#TODO: это необходимо? Cp / etc / modules /etc/modules.bak printf '\ ni2c-dev / ni2c-bcm2708 / n' >> / etc / modules

amixer cset numid = 1

#TODO: установить громкость, 60%?

Автоматизируйте автоматизацию, например загрузку и обновление кода:

# update rc.local # ПРИМЕЧАНИЕ: перемещение файла, потому что стандартный включает "выход" в последней строке, поэтому нельзя просто добавить mv /etc/rc.local /etc/rc.local.bak touch /etc/rc.local chmod u + x /etc/rc.local printf '#! / bin / sh'> /etc/rc.local printf '\ n /etc/bootup_nhl.sh> /tmp/rclocal.log' >> / etc / rc.local printf '\ n exit 0' >> /etc/rc.local

#TODO: нужно добавить что-то, чтобы делать регулярные обновления программного обеспечения еженедельно, как это # Может быть, просто скопировать этот файл прямо в папку rc.weekly? rm /etc/cron.weekly/nhl_updater printf '#! / bin / sh / ncurl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - '> /etc/cron.weekly/nhl_updater chmod u + x /etc/cron.weekly/nhl_updater

Разное, например, установка часового пояса:

ln -sf / usr / share / zoneinfo / America / New_York / etc / localtime

# обновить переменную среды с помощью node_path

cp / etc / environment /etc/environment.bak printf '\ nexport NODE_PATH = / usr / local / lib / node_modules / n' >> / etc / environment #TODO: определите это для узла self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;

Используйте PM2 для настройки сервера узла:

#TODO: тестовая установка PM2cd / tmp / npm install -g pm2 pm2 startup cd / opt / nhl pm2 start NHL_work.js --node-args = "- max_old_space_size = 100 expose-gc" pm2 start webserver.js --node -args = "- max_old_space_size 100M" pm2 сохранить pm2 при запуске, выход 0

Шаг 4. Шаг 4. Обновите конфигурацию JSON

Настройте свой файл конфигурации JSON для команды, которую вы предпочитаете, и т. Д. Этот файл находится в / opt / nhl GO CAPITALS! config файл JSON

Программное обеспечение использует файл JSON для настройки оборудования и команды, за которой вы следите. Команда может быть настроена через веб-сервер, который будет работать, но настройку оборудования необходимо выполнить вручную:

Вот объяснение каждого возможного значения:

  • myteam: это трехбуквенный код команды, за которой вы хотите следовать
  • debug: возможные значения: 1 (истина) или 0 (ложь), и будут контролировать, сколько записей будет записано.
  • вывод: это метод, с помощью которого должны отображаться оценки / детали. Возможные значения:

    • жк: это жк 2004 г.
    • консоль: это будет писать только в терминал (для запуска командной строки)
    • oled: поддержка oled-дисплея SSD6404
  • свет: поддерживаются два типа огней

    • тревога: это будет управлять одним GPIO для включения / выключения транзистора
    • multi-led: поддерживает многоцветный или несколько светодиодов
    • нет: свет не подключен
  • amp: это GPIO, который управляет транзистором для усилителя

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