Как включить ПК с помощью Arduino?

Tassadar
Offline
Зарегистрирован: 21.04.2012

Здравствуйте, люди добрые.

Подскажите, как включить ПК с помощью Arduino, аналогично нажатию на кнопку Power системного блока. То есть моя Arduino Uno, запитанная по USB от этого же системника, должна, как я подозреваю, подать на материнку сигнал на один из контактов материнки "power on". Интересуют как раз подробности про материнку - как на ней реализован механизм срабатывания замыкания этих двух контактов PowerOn. 

А вообще хочу к Ардуине подключить клавиатуру и дисплей, чтобы киндер, перед тем, как поиграть на ПК, должен был бы для включения компа пройти экспресс-тест из нескольких заданий на таблицу умножения на время, ибо хромает у него математика. ps Материнка Gigabyte Z68AP-D3.

Zapek@n
Offline
Зарегистрирован: 16.02.2012

 Почти у всех материнок есть функция Wakeup-On-Lan (WOL) можно наверно ее дернуть с помощью internet shield. А можно розетку размыкать, предварительно выставив в БИОСе, чтобы компьютер включался при наличие питания. Вот здесь пример видел http://www.arduino.cc/playground/Main/ArduinoWaker

leshak
Offline
Зарегистрирован: 29.09.2011

>можно розетку размыкать

Тогда, наверное, уже проще релюхой само нажатие кнопки power имитировать.

Или прозвонить ее, какие там вольтажи и какой ток идет через кнопку при нажатии. Возможно там, опять-таки, банальные 5v подтянутые к питанию, которые кнопкой "роняются" на землю. И тогда можно вообще тупо в цифровой пин завести (если ток, при нажатой кнопке идет 20-40ma), либо через транс какой-нить.

Второй вариант конечно грамотней и красивше, а первый "дубовый и громоздкий", зато безопасней при малых знаниях.

Ну и нужно, естественно, перед все-ми этими играми

а. Сделать бекап всех ценных данных.

б. посмотреть сколько будет стоит "купить новую материнку" и решить "а оно нужно?". 

Так как вероятность "что-то спалить" - всегда имеется. Даже у "супер-гуру" :( А уж тем более у новичка. Так что если комп. это "рабочий инструмент", то подумайте 10-ть раз. Возможно купите какой-нить старый "гробик" (многие их вообще бесплатно отдают), и, вначале на нем потренируйтесь.

P.S. Ну и, по моему опыту, никакие ухищрения родителей в ограничении доступа к компу - никогда не сработают. Эффект будет в точности "наоборот". Разве что ваша совесть будет "более спокойна". И не стоит обольщатся что "у него знаний не хватит". Часто нужны не знания, а "нестандартность мышления". И хорошо если ее проявления закончатся без существенных потерь.

Так что лучше ищите способ как "математику интерестной сделать", чем "ограничивать доступ к прянику" :)

Tassadar
Offline
Зарегистрирован: 21.04.2012

Zapek@n пишет:

дернуть с помощью internet shield.

ethernet shield'а нет у меня.

Zapek@n пишет:

А можно розетку размыкать.


 

До таких жестких методов с 220В пока не дошел. Всё-же хочу попытаться на материнку на джампер сигнал подать. Наверняка ведь там на одном контакте power-sw что-то типа подтяжки к +5в, на другом контакте GND, и при нажатии кнопки питания системника проскакивает сигнал LOW на ноге с +5В.

UPD. пока писал, ответ leshak'а подоспел. Насчет "спалить материнку", у меня их просто завались :). А по поводу запретов и пряников - это больше пряник, я считаю, пусть покопается, как обойти, и т.п.

leshak
Offline
Зарегистрирован: 29.09.2011

 >Насчет "спалить материнку", у меня их просто завались :)

Ну сюда же относится "блок питания", "винчестер".... и т.п. если что-то коротнуть, то можно поймать что угодно, от выбрыка питания.

Если "не боитесь этого" (хотя кто боится - в электронику не лезет ;), то я бы, на вашем месте начал с

Чтения http://easyelectronics.ru/upravlenie-moshhnoj-nagruzkoj-postoyannogo-toka-chast-1.html и http://easyelectronics.ru/upravlenie-moshhnoj-nagruzkoj-postoyannogo-toka-chast-2.html

Замера напряжения на контактах кнопки и замера какой ток идет через нее при нажатии. 

Вообщем вначале детально выяснить "что имитировать нужно". Ну или "погуглить". Вот например http://www.blake-foster.com/project.php?p=44, тут Eternet-шилдом принимается команда "включить", а само включение делается именно имитацией нажатия Power-кнопки.

>А по поводу запретов и пряников - это больше пряник, я считаю, пусть покопается, как обойти

Ну, как воспитывать своего ребенка - вам виднее. Тут вы априори правы.

Главное что-бы этот "обойти" оказалось в рамках того что вы себе представляете. А не "два провода в розетку и тыкнуть ими в плату", а потом сказать "папа твоя штука спалила комп, чини". Или приглашение домой (без вашего ведома), авторитетного ломастера на пару лет старше. Стащить где-то "собственный ноут" и т.п. страшилок много можно насочинять, все равно угадать не возможно. Что удумает ребенок - трудно сказать. И это скорее "ассоциативный путь решения проблемы", а не привычный нам "логическо-рациональный" (мы надеемся что он тоже пойдет им. разобраться, обучится и .п.) умноженный на отсуствие навыков прогнозировать результат.

Но я-бы искал "что-то другое". Какую-то инетересную, для него, задачу. Где знание таблицы умножение потребуется "естественным путем", а не возведением "искуственной преграды".

P.S. Черт. Аж самому интерестно стало. Что бы я на его месте делал. Но одно точно знаю -  таблицу я бы не учил :) Если придумает како-то "обход", раскажете? ;)

 

 

leshak
Offline
Зарегистрирован: 29.09.2011

 Кстати решение о "барьере" принято окончательно. То может проще в автозагрузку вкорячить какую-нибудь програмку, которая тест проводить будет? Более универсальное решение - задачи проще будет менять.

Tassadar
Offline
Зарегистрирован: 21.04.2012

leshak пишет:

 может проще в автозагрузку вкорячить какую-нибудь програмку, которая тест проводить будет? Более универсальное решение - задачи проще будет менять.

не. В автозагрузку - это не наш метод, а то ведь бОльшей частью я для себя эту конструкцию с ардуино мастерю, подручными средствами. С целью "попробовать" и в ожидании всяких датчиков-моторчиков из Китая. Пока у меня на руках только Уно и Prototype shield. Ещё инфракрасный датчик успешно пробовал цеплять.

И спасибо за ссылки.

upd: по последней ссылке (blake-foster....), как я понял, через реле сделана имитация нажатия. Оно наверное так бы и надежнее, только релюшка пока идет на оленях из Китая уже второй месяц.

chervyachok
chervyachok аватар
Offline
Зарегистрирован: 22.12.2011

 можно так 

но в етом случае функция кнопки Power полностю переходит на ардуино. Можно просто паралельно врезаться в провода идущие к кнопке а ее спрятать от малого (гдето ззади корпуса например)

mixail844
Offline
Зарегистрирован: 30.04.2012

немного оффтопа : я вообще целенаправленно таблицу не учил.надо было но не учил.потом как то книжку прочитал а вней было обучение как умножать на пальцах..научился.а потом в течении второго класса "из практики" все запомнил.

а вы собираетесь подключить клавиатуру к ардуине что бы посредставам какого то output'а(LCD)отображать примеры на умножение или примеры хотите отобржать прям на экране монитора до включения системного блока?

возможно для начала будет достаточно двухстрочночого LCD и 0-9 кнопок.
 

2 переменные генерировать функцией random(min, max) ,выводить на LCD в виде примера.и так пока дитя не даст скажем 10 правельных ответов.в

второй момент : 

вот вы все подключили,запрограммировали,в идеале хорошобы саму ардуино спрятать в корпусе,на нее от блока питания подать 5 вольт.а наружу вывести LCD экранчик и 0-9 клавиатуру для снятия "защиты" включения.вам то тогда тоже прийдеться "взламывать" охранку каждый раз.или лезь в сисемный блок и замыкать в ручную,немного забавно,но с другой стороны если дитя узнает то как вы обходите,то может и сам полезть,попробовать...

и еще момент,chervyachok,самому интересно стало,что будет с ардуиной  подключенной предложенным вами способом,после включения компьютера,ардуина не буде мешаться?что у нее должно быть на выходе?

и еще совет для программы : вам нужно будет подключиться к светодиоду питания,что бы ардуина знала когда комп включен а когда нет.чо бы после включения "не мешаться" а после выключения переинициализироваться-вывести новую порцию задачек. 

chervyachok
chervyachok аватар
Offline
Зарегистрирован: 22.12.2011

mixail844 пишет:

и еще момент,chervyachok,самому интересно стало,что будет с ардуиной  подключенной предложенным вами способом,после включения компьютера,ардуина не буде мешаться?что у нее должно быть на выходе?

подал на пин лог 1 (на 50мс например) - транзистор открылся - комп включился

int
Offline
Зарегистрирован: 05.05.2012

 Что мешает малому подсмотреть таблицу и вписать результат?

Xoon
Offline
Зарегистрирован: 02.04.2012

 У знакомых ребенок чтобы за компьютером не сидел, пароль на биос поставили. Когда ему включи компьютер, сразу же полез в инет искать, как обойти этот пароль ) Тогда стали уносить шнур питания от компьютера с собой. Так он взял какой-то старый провод от утюга, прицепил к нему два крокодила, а их к разъему питания компьютера. В общем нет пределе детской изобретательности. Поэтому думаю, что такое устройство не очень поможет )

Tassadar
Offline
Зарегистрирован: 21.04.2012

int пишет:

 Что мешает малому подсмотреть таблицу и вписать результат?

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

И вообще, как я и писал, этот девайс больше для пробы пера из подручных средств, в ожидании деталек из Чайны.

И вообще, я спросил как комп включать от ардуино, а тут пошло уже живое обсуждение борьбы с кибердетишками :)

А самому, чтобы тест не проходить каждый раз при включении, можно кнопку присобачить с "секретной серией тыков".

leshak
Offline
Зарегистрирован: 29.09.2011

Xoon пишет:

Тогда стали уносить шнур питания от компьютера с собой. Так он взял какой-то старый провод от утюга, прицепил к нему два крокодила, а их к разъему питания компьютера. 

Дежавю. У меня в детстве тоже был личный, приныканный, кабель питания от монитора и комплект предохранителей от телевизора :)

ronimu
Offline
Зарегистрирован: 24.07.2012

chervyachok пишет:

 можно так 

но в етом случае функция кнопки Power полностю переходит на ардуино. Можно просто паралельно врезаться в провода идущие к кнопке а ее спрятать от малого (гдето ззади корпуса например)

 

а как андурино связать с управляющим устройством, есть длинк 320, никто не знает ссылки на настройку?

leshak
Offline
Зарегистрирован: 29.09.2011

ronimu пишет:
 

а как андурино связать с управляющим устройством, есть длинк 320, никто не знает ссылки на настройку?

Настройку чего? Какой канал связи между dlink и ардуиной вы создали? От этого же зависит "что и как настраивать".

В общем виде у вас есть такие подходы их "подружить":

Вариант 1. Проще, дороже, универсальней (нет привязки к модели роутера): Ethnernet-шилд или WiFi-шилд. В этом случае dlink у вас будет просто "поставщиком интернета", на ардуине поднять какой-то серверок и рулить ей напрямую по сети

Вариант 2. Дешево, но сердито (знания уже нужны не уровня "пользователь"):

Подвариант 2.1. - Через USB. Но 99% что нужно будет вливать какую-то кастомную прошивку в роутер искать и настраивать драйвера для ардуиновского чипа ("официальные" дравера не подойдут, нужно будет искать именно их "линункс версию", причем именно подвид для чипа используемого в роутере, и еще знать "как их впилить"). Вообщем если вы слова BisyBox и т.п. вас не пугают, и со всякими эмбежеными линухами вы "на ты" - возможно это ваш путь (но, подозреваю что в этом случае самого вопроса не возникло бы).

Подвариант 2.2. - Искать мануалы по ремонту этого роутера, смотреть форумы по всяких аппаратным модификациям этого dlink. 95% что у него имеется, возможно не распаянный, UART или RS-232 (обычно их используют в сервис центрах для диагностики, отладки и т.п.). Можно его заюзать. Но опять-таки "нужно уметь программировать под этот роутер". По сравнению с предыдущем пунктом - не нужно с дровами морочится (а их может и не быть в природе), зато "паяльник в руки" может потребоваться.

 

 

leshak
Offline
Зарегистрирован: 29.09.2011

 Кстати, для подварианта 2.2 оказалось достаточно вбить в гугл "dlink 320 arduino" и первой же ссылкой идет подробное описание "танца"

http://habrahabr.ru/post/135790/

И дальше куча ссылок - выбирай на любой вкус.

TheKING
Offline
Зарегистрирован: 04.07.2015

chervyachok пишет:

 можно так 

схему собрал, но с включением пока не получается разобраться... как проверить работоспособность мультиметром на выводах PW+ и PW-?

Гриша
Онлайн
Зарегистрирован: 27.04.2014

TheKING пишет:

chervyachok пишет:

 можно так 

схему собрал, но с включением пока не получается разобраться... как проверить работоспособность мультиметром на выводах PW+ и PW-?

а земля GND arduino и пин PW- соединены? (просто их нет на схеме, а весь топик не читал)

тестер поставить на вольты постоянки, 10В - 40В диапазон или автомат (зависит от тестера) и смотреть .... щупы правильно вставить в мультиметр :) (не на амперы, там шунт,  а на вольты)...

TheKING
Offline
Зарегистрирован: 04.07.2015

Гриша пишет:

а земля GND arduino и пин PW- соединены? (просто их нет на схеме, а весь топик не читал)

спасибо! в схеме не было указано, поэтому и не соединял... проводок со штекером под пин найду и отпишусь.

Гриша
Онлайн
Зарегистрирован: 27.04.2014

chervyachok пишет:

 можно так 

но в етом случае функция кнопки Power полностю переходит на ардуино. Можно просто паралельно врезаться в провода идущие к кнопке а ее спрятать от малого (гдето ззади корпуса например)

мне вот эта идея понравилась 

TheKING
Offline
Зарегистрирован: 04.07.2015

chervyachok спасибо! схема рабочая с учётом совета Гриши.

Гриша
Онлайн
Зарегистрирован: 27.04.2014

TheKING пишет:

chervyachok спасибо! схема рабочая с учётом совета Гриши.

общий провод редко рисуют, если его нет на схеме - это не значет что его нет по факту... просто не всегда удобно его рисовать... и без него понятно что цепь необходимо замкнуть... :)

virus8402
Offline
Зарегистрирован: 23.07.2016
Подскажите, как включить ПК с помощью 
 
Arduino, аналогично нажатию на кнопку Power 
 
системного блока.
Хотелось бы чтоб с телефона через bluetooth 
 
была отправлена команда на bluetooth(HC-
 
06)и Arduino UNO запустила ПК .
gena
Offline
Зарегистрирован: 04.11.2012

  А что Вы уже сделали для реализации этого, что не получается? Задача не очень сложная.

virus8402
Offline
Зарегистрирован: 23.07.2016

сделал реле срабатывает но не могу понять как сделать чтоб оно отключалось через пару секунд

 

virus8402
Offline
Зарегистрирован: 23.07.2016
int val; //переменная в которую будем записывать команды по bluetooth
int Reley1 = 7; // порт к которму подключен пин IN реле. (порт D7, пин IN1)
void setup()
{
Serial.begin(9600); // запускаем работу с портом
pinMode(Reley1, OUTPUT); //говорим, что порт Reley1, т.е. порт D7 явлюяется портом вывода
Serial.println("Press 1 to ON or 0 to OFF");
}
void loop()
{
if (Serial.available()) //если из последовательного интерфейса что пришло, значит…
{
val = Serial.read(); // заносим в переменную val, то что пришло в порт
if (val == '1') // если пришел символ "1" включаем реле, т.е. подаем высокий уровень на пин D7
{
digitalWrite(Reley1, HIGH);
Serial.println("Reley1 — ON");
}
if ( val == '0') // если пришел символ "0" выключаем реле
{
digitalWrite(Reley1, LOW);
Serial.println("Reley1 — OFF");
}
}
}
можно здесь прописать команду чтоб реле отключалось через заданное время?
Гриша
Онлайн
Зарегистрирован: 27.04.2014

есть один деревянный способ (костыль)

 int val; //переменная в которую будем записывать команды по bluetooth
int Reley1 = 7; // порт к которму подключен пин IN реле. (порт D7, пин IN1)
void setup()
{
Serial.begin(9600); // запускаем работу с портом
pinMode(Reley1, OUTPUT); //говорим, что порт Reley1, т.е. порт D7 явлюяется портом вывода
Serial.println("Press 1 to ON or 0 to OFF");
}
void loop()
{
if (Serial.available()) //если из последовательного интерфейса что пришло, значит…
{
val = Serial.read(); // заносим в переменную val, то что пришло в порт
if (val == '1') // если пришел символ "1" включаем реле, т.е. подаем высокий уровень на пин D7
{
digitalWrite(Reley1, HIGH);
Serial.println("Reley1 — ON");
delay (1000) // вешаем контроллер на 1 сек
digitalWrite(Reley1, LOW);
Serial.println("Reley1 — OFF");

}
if ( val == '0') // если пришел символ "0" выключаем реле
{
digitalWrite(Reley1, LOW);
Serial.println("Reley1 — OFF");
}
}
}
//можно здесь прописать команду чтоб реле отключалось через заданное время?

строки 18 -20, необходимо доработать по коду из этого поста, а точнее строку 18

virus8402
Offline
Зарегистрирован: 23.07.2016

Спасибо.но строка 19 выдает ошибку.

Гриша
Онлайн
Зарегистрирован: 27.04.2014

virus8402 пишет:

Спасибо.но строка 19 выдает ошибку.

вот улыбнуло :))))))))


sketch_jul24a.ino: In function 'void loop()':
sketch_jul24a:19: error: expected `;' before 'digitalWrite'

так и поставте в нужной строке эту точку с зптой

 int val; //переменная в которую будем записывать команды по bluetooth
int Reley1 = 7; // порт к которму подключен пин IN реле. (порт D7, пин IN1)
void setup()
{
Serial.begin(9600); // запускаем работу с портом
pinMode(Reley1, OUTPUT); //говорим, что порт Reley1, т.е. порт D7 явлюяется портом вывода
Serial.println("Press 1 to ON or 0 to OFF");
}
void loop()
{
if (Serial.available()) //если из последовательного интерфейса что пришло, значит…
{
val = Serial.read(); // заносим в переменную val, то что пришло в порт
if (val == '1') // если пришел символ "1" включаем реле, т.е. подаем высокий уровень на пин D7
{
digitalWrite(Reley1, HIGH);
Serial.println("Reley1 — ON");
delay (1000); // вешаем контроллер на 1 сек
digitalWrite(Reley1, LOW);
Serial.println("Reley1 — OFF");

}
if ( val == '0') // если пришел символ "0" выключаем реле
{
digitalWrite(Reley1, LOW);
Serial.println("Reley1 — OFF");
}
}
}
//можно здесь прописать команду чтоб реле отключалось через заданное время?

 

virus8402
Offline
Зарегистрирован: 23.07.2016

Спасибо .Для меня пока это тяжеловато .но постораюсь разобраться