Каков самый легкий, самый практический способ переключить несколько лампочек с ПК? [закрытый]

Я написал эту небольшую функцию несколько лет назад:

function sqlvprintf($query, $args)
{
    global $DB_LINK;
    $ctr = 0;
    ensureConnection(); // Connect to database if not connected already.
    $values = array();
    foreach ($args as $value)
    {
        if (is_string($value))
        {
            $value = "'" . mysqli_real_escape_string($DB_LINK, $value) . "'";
        }
        else if (is_null($value))
        {
            $value = 'NULL';
        }
        else if (!is_int($value) && !is_float($value))
        {
            die('Only numeric, string, array and NULL arguments allowed in a query. Argument '.($ctr+1).' is not a basic type, it\'s type is '. gettype($value). '.');
        }
        $values[] = $value;
        $ctr++;
    }
    $query = preg_replace_callback(
        '/{(\\d+)}/', 
        function($match) use ($values)
        {
            if (isset($values[$match[1]]))
            {
                return $values[$match[1]];
            }
            else
            {
                return $match[0];
            }
        },
        $query
    );
    return $query;
}

function runEscapedQuery($preparedQuery /*, ...*/)
{
    $params = array_slice(func_get_args(), 1);
    $results = runQuery(sqlvprintf($preparedQuery, $params)); // Run query and fetch results.   
    return $results;
}

Это позволяет запускать операторы в однострочном C # -ish String.Format, например:

runEscapedQuery("INSERT INTO Whatever (id, foo, bar) VALUES ({0}, {1}, {2})", $numericVar, $stringVar1, $stringVar2);

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

ОБНОВЛЕНИЕ БЕЗОПАСНОСТИ: предыдущая версия str_replace разрешала инъекции, добавляя токены {#} в пользовательские данные. Эта версия preg_replace_callback не вызывает проблем, если замена содержит эти токены.

34
задан Glorfindel 26 February 2019 в 02:01
поделиться

13 ответов

arduino плата походит на излишество для чего-то это конкретное, espeacially если Вы не собираетесь быть использованием его с соединением ни с чем больше. Плюс Вы оказываются перед необходимостью покупать множество компонентов или щита arduino (конкретно релейный щит), таким образом, он быстро сложит, особенно если Вы не захотите спаивать (то Вы будете смотреть приблизительно на 120$ +tax для arduino и щита.)

, Так как Вы переключаете AC (лампочка) и компьютер, выделяет DC, Вам будут нужны реле. Также необходимо будет переключить реле с транзисторами, поскольку я не думаю, вывод от последовательного или usb произведет мА, которого Вы хотите.

самый легкий способ пойти об этом состоит в том, чтобы использовать плату реле USB. Что-то вроде этого работало бы большое http://www.robotshop.us/phidgets-1014-relay-interface.html . Плюс его 1/3 цены более ранней комбинации. Еще лучше они дают Вам, библиотеки для управления им настолько программирующий являются бризом.

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

Удача

9
ответ дан darudude 27 November 2019 в 17:04
поделиться

Когда-нибудь думайте о попытке phidgets? (www.phidgets.com)

реле Питания USB:

http://www.phidgets.com/products.php?product_id=1014

0
ответ дан 27 November 2019 в 17:04
поделиться

Вот одна большая проблема: Если я - TC'ing в тот день, я не вижу Ваш световой сигнал . По этой причине, я создал бы это так же мало света, который находится в лотке и показывает текущее состояние сборки. Люди, которые хотят знать состояние сборки, могут установить его, люди, которые не заботятся, не будут побеспокоены Вашим навязчивым светофором. Я слышал представление от консультанта однажды, и он сказал, что сделал это в одной компании, и типы VP просто любили ее. Вот одна ссылка ; образец находится в Python.

Редактирование: Кажется, что CruiseControl.NET уже имеет этот вид вещи .

0
ответ дан jcollum 27 November 2019 в 17:04
поделиться

Если бы Вы любите делать его сами, интерфейс последовательного порта не был бы слишком трудным. Последовательный порт имеет по крайней мере две строки, которые могут быть переключены вкл\выкл: РТС/CTS и DSR/DTR. При включении любой строки Вы получаете +5VDC на той конкретной строке. Можно использовать те строки для управления реле, которые в свою очередь переключают световые сигналы вкл\выкл.

0
ответ дан Kluge 27 November 2019 в 17:04
поделиться

Большинство компонентов ПК не обработает 115 В переменного тока. Вы могли смотреть на некоторых материал от x10, который является старым домашним стандартом автоматизации. Другое мудрое необходимо будет использовать реле, которыми управляет ПК для переключения 115 В переменного тока.

0
ответ дан Jim C 27 November 2019 в 17:04
поделиться

Модули X-10 вероятны самый легкий путь для взятия. При попытке сделать 110 В, переключающихся самостоятельно, то Ваш проект быстро станет аппаратным проектом, а не программным обеспечением один. X-10 (привыкший к?) имеют аппаратный ключ, который включается на последовательный порт (названный "петардой"). Протокол для этого может быть найден онлайн.

Заключительный протест: X-10 является довольно не использующим высокие технологии и подвергается интерференции от современных предоставлений коммутируемой мощности. Так попробуйте его в своем офисе перед согласием на усилие по программному обеспечению.

1
ответ дан gbarry 27 November 2019 в 17:04
поделиться

Используйте последовательный порт, который управляет H-мостом (можно получить микросхему от digikey), который управляет реле (digikey снова). Мост H электрически изолирует последовательный порт и ограничивает текущую ничью. Не возможно переключить стену, текущую с транзистором, так вот почему Вы используете реле.

0
ответ дан Nick 27 November 2019 в 17:04
поделиться

Я нашел парня, который создал абсолютный светофор здесь: http://people.usm.maine.edu/houser/bblight/index.html . Похож на большее количество работы, чем Вы хотите сделать все же.

2
ответ дан jcollum 27 November 2019 в 17:04
поделиться

Это устройство" Питание IP 9258 " должно работать на Вас, это - управляемый энергетический батончик Ethernet. Это подобно устройству, используемому в этом проекте "Красное Предупреждение Переноса!" - Hudson Bear Lamps .

А поиск Google реле управлял удлинителем, тоннами списков проектов создать Ваше собственное.

5
ответ дан Philip Tinney 27 November 2019 в 17:04
поделиться

Только дать еще некоторые опции:

Реле могут быть заменены тиристорами. Они не страдают от механического износа..

Другое дешевое и легкое решение: Купите дешевые три органа света канала и подключите его к звуковому выводу ПК. Найдите резонансные частоты этих трех выводов путем воспроизведения некоторых тестовых тонов синуса или развертки синуса.

Тот способ, которым можно не только переключить эти три световых сигналов, можно потускнеть и пульсировать световые сигналы также. Никакая потребность бездельничать с USB и реле.

5
ответ дан Nils Pipenbrinck 27 November 2019 в 17:04
поделиться

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

7
ответ дан jcollum 27 November 2019 в 17:04
поделиться

Изучите X10

(Редактирование: замененные исходные плакаты NSFW связываются со страницей Википедии на X10)

15
ответ дан Jeff Atwood 27 November 2019 в 17:04
поделиться

Вам будет нужно:

можно использовать Вас 12 В ПК для включения катушки реле.

Советы обычно идут с драйверами и библиотеками для управления ими.

1
ответ дан Quassnoi 27 November 2019 в 17:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: