У меня есть идея для игрового табло. Я хотел бы включать и выключать лампочку в зависимости от флага в базе данных. Допустим, у меня есть столбец с названием «out». При out=1 будет гореть одна лампочка, при out=2 — две лампочки и т. д. Возможно ли это? Что мне нужно? Настройка базы данных и вставка данных не проблема.
решение1
Концептуально вам понадобится следующее:
- оборудование, которое получает запрос и отображает соответствующее количество огней
- программное обеспечение, которое преобразует полученный номер в запрос к оборудованию
- программное обеспечение, которое опрашивает базу данных
Рассмотрим их в следующем порядке:
Аппаратное взаимодействие
Один из самых простых способов сопряжения оборудования — использование параллельного порта (если ваш компьютер им оснащен). Обычно доступно 8 или более выходов, которые можно контролировать независимо. Второй по простоте — последовательный порт. В любом случае вам понадобятся либо реле, либо драйверы светодиодов, либо эквивалент для изменения уровней напряжения на этих интерфейсах на то, что могут использовать ваши светильники.
Программное обеспечение для управления оборудованием
Если вы можете писать код на C или C++, у вас, вероятно, не возникнет проблем с написанием программного обеспечения на вашей конкретной системе (Windows, Mac, Linux) для отправки одного байта на параллельный или последовательный порт. Примеров в Интернете предостаточно. Код может быть listen
на IP socket
для значения, которое нужно отправить на оборудование.
Программное обеспечение для опроса базы данных
В общем, это будет простой запрос к базе данных, который будет выполняться на периодической основе по вашему выбору. Вы можете настроить его на опрос каждые 60 секунд, например, извлечь значение из базы данных, а затем отправить его через IP-сокет в упомянутое выше программное обеспечение для листинга.
Поскольку ваш вопрос довольно обширен, то и этот ответ тоже, но если у вас есть конкретные вопросы по любой части этого, задайте другой вопрос. Обратите внимание, однако, что Электротехника в основном касается первых двух пунктов, а не в целом чисто программных частей.
решение2
Это было бы просто сделать. Мое предложение:
1) Вместо использования отдельных лампочек используйте адресуемую светодиодную ленту RGB. Это будет намного проще, чем управлять отдельными лампочками, и позволит легко получать разные цвета и регулировать яркость. Вы можете положить шарики для пинг-понга поверх светодиодов, если хотите получить другой вид.
2) Я бы использовал arduino для управления светодиодной лентой. Он может подключаться к вашему ПК через последовательный порт, и программа на ПК может просто сделать запрос к базе данных, получить значение и отправить его через последовательный порт на arduino. arduino считывает значение и отправляет его на светодиодную ленту.
Вы найдете много всего наadafruit.com, включая учебные пособия, которые вам помогут.
решение3
Это звучит как идеальное приложение для raspberry pi. Это мини-компьютер Linux, который более чем способен размещать программное обеспечение, которое может запрашивать базу данных. (И размещать ее). У него также есть контакты GPIO, которые могут управлять всем.
Прежде чем вы узнаете, как включить свет, вам нужно решить, какой у вас тип освещения.
Если это светодиод, вам может понадобиться светодиодный драйвер, если это лампочка на 240 В, вам может понадобиться реле и т. д.
Другие варианты, которые вам, возможно, захочется рассмотреть, включают Beagle Bone, ODROID и не забудьте просто поискать в Google «mini linux computer», чтобы найти больше вариантов.
решение4
Моим минимальным решением было использование диско-светильника (использующего протокол DMX) и «электрического чертенка», который представляет собой веб-API, к которому можно подключиться.
В качестве альтернативы он также может взаимодействовать со светодиодами или неопикселями.
Вот видео простой демонстрации, которую я создал.
https://www.youtube.com/watch?v=RxttrlHJntw&list=UU2vDg0Cv64FmkmjJYpVnWuQ