Съдържание:

Дистанционно изключване или рестартиране на компютър с устройство ESP8266: 10 стъпки (със снимки)
Дистанционно изключване или рестартиране на компютър с устройство ESP8266: 10 стъпки (със снимки)

Видео: Дистанционно изключване или рестартиране на компютър с устройство ESP8266: 10 стъпки (със снимки)

Видео: Дистанционно изключване или рестартиране на компютър с устройство ESP8266: 10 стъпки (със снимки)
Видео: Zigbee двусторонний энергомонитор постоянного тока MSH - интеграция DC UPS в Home Assistant 2024, Ноември
Anonim
Image
Image

За да бъде ясно тук, изключваме ВАШИЯ компютър, а не компютър на някой друг.

Историята върви така:

Един мой приятел във Facebook ми изпрати съобщение и каза, че има дузина компютри, изпълняващи много математика, но всяка сутрин в 3 сутринта те се заключват. Тъй като компютрите са на 30 минути, огромна неприятност е да карате два града (живеем в Южна Дакота), за да включите компютрите с електрическо захранване. Той попита, мога ли да му създам IoT устройство, което да му позволи да рестартира обиждащия компютър от комфорта на уютното си легло?

Никога да не пропусна едно предизвикателство, аз се съгласих да събера нещо за него. Това е този проект.

Използвайки две регистрирани смени на битове, ESP8266 ESP01, шепа светодиоди и някои самоделни оптоизолатори, целият проект струва около 5 долара, ако купувате частите от Китай на eBay. Може би 20 долара от Amazon.

Това е доста сложна конструкция с много фино запояване. Без да броим моите прецакания и повторно запояване, отне ми по-голямата част от 20 часа, за да направя, но се оказа невероятно и работи перфектно.

Нека да започнем.

Стъпка 1: Прототипна дъска

Прототипна дъска
Прототипна дъска
Прототипна дъска
Прототипна дъска

Винаги започвайте всички проекти с прототипна дъска. Това е най -добрият начин да определите дали имате всички компоненти и да работите според очакванията. Този проект е малко сложен, така че горещо препоръчвам да го изградите върху макет, преди да продължите напред.

Частите, от които се нуждаете, са:

  • Един ESP8266 ESP01 (въпреки че всяко устройство ESP8266 ще работи)
  • Два 8-битови регистъра за смяна, използвах 74HC595N
  • 16 светодиода, използвах бели светодиоди от сламена шапка, които работят при 3.3V. Ако използвате други, може да се нуждаете от резистори.
  • Три 3k3-ohmpulldown резистора
  • Джъмперни проводници и макет

Също така ще трябва да изградите поне един оптоизолатор. Използвах черни свиващи тръби, ярко бял светодиод, 220-омов резистор и фоторезистор. Запоявайте 220-омовия резистор към катода на светодиода и след това запечатайте светодиода и фоторезистора вътре в свиващите се тръби един срещу друг. Но ще стигнем до тях на по -късна стъпка.

Следвайте схемата на окабеляване, предоставена в следващата стъпка. Окабеляването е доста просто.

Тъй като ESP8266 работи при 3.3V, уверете се, че го захранвате по подходящ начин

Стъпка 2: Схема с помощта на Will-CAD

Схема, използваща Will-CAD
Схема, използваща Will-CAD

Схемата е доста ясна. Ние следваме стандартното свързване на 8-битов регистър за смяна. Тъй като използвам два 8-битови регистъра за смяна, те трябва да бъдат свързани верижно заедно на техните "тактов" и "фиксатор" щифтове.

Тъй като ESP01 има само два GPIO пина, трябва да използваме повторно TX & RX като изходи, което работи добре за нашите цели. Можете да използвате ESP-12 или друга версия с повече от два GPIO пина, ако искате по-голям контрол. Но това ще добави още 2 долара към цената на проекта - което е просто лудост.

Трябва да държим нашите 8-битови регистъри за смяна и щифтове ESP01 дръпнати високо при зареждане, за да не правят странни неща или да влизат в програмен режим. Използвах три резистора 3k3, по -големи или по -малки стойности също биха работили. Тази стойност е получена от ръководствата, които говорят за използване на алтернативни пинове на ESP01.

ESP01 (ESP8266)

  • TX часовник щифт 3k3 издърпване
  • RX заключващ щифт 3k3 издърпване
  • 00 серийни данни 3k3 издърпване
  • 02 плаващ

8-битов регистър за смяна (74HC595H)

  • VCC 3.3V
  • OE 3.3V (това е разрешителният щифт)
  • GND GND
  • CLR GND (това предпазва ясния щифт от изчистване)
  • И светодиодите, те отиват към земята.

Стъпка 3: Код ESP8266

Код ESP8266
Код ESP8266

Кодът ESP8266 е доста ясен. За съжаление, редакторът в Instructables е доста безполезен, така че ще искате да получите кода директно от Github.

проект "racks-reboot":

github.com/bluemonkeydev/arduino-projects/…

Класът "SensorBase" е достъпен тук. Изисква се, ако искате да "използвате" моя код:

github.com/bluemonkeydev/arduino-projects/…

Има няколко неща, които трябва да се отбележат. Кодът е доста добре документиран.

  1. Аз съм много мързелив разработчик, затова поставих целия код за многократна употреба ESP8266 в клас, наречен „SensorBase“. Можете да намерите това и в Github, линк по -горе.
  2. Трябва да въведете сървъра на вашия MQTT брокер, потребителско име, парола и порт. Те могат да бъдат намерени малко по -надолу, когато създаваме услугата CloudMQTT.
  3. НЕ е необходимо да следвате моя синтаксисен формат на темата. Бих препоръчал обаче да го следвате.
  4. В този код няма нищо умно. Това е много прагматично.

Стъпка 4: Оформление на Perfboard

Оформление на Perfboard
Оформление на Perfboard

Този проект ще бъде инсталиран в мини център за данни, затова реших просто да използвам перф дъска за окончателния дизайн. Perfboard работи чудесно за проекти като този и е лесен за оформление с помощта на персонализирана диаграма хартия. Тук ще видите моето оформление. Разбира се, можете да изберете да го направите по различен начин.

Моят проект се нуждаеше от два 8-битови регистъра за смяна, така че започнах с позиционирането им по средата. Знаех, че моите съединители към оптоизолаторите засега ще бъдат прости женски заглавки, въпреки че това не е идеално решение.

Обичам светодиодите и това трябваше да има светодиод за всяка схема на оптоизолатор. Знаех, че тестовата фаза ще бъде безкрайно по -лесна, ако мога да получа незабавна обратна връзка директно на платката, но също така знаех, че тези светодиоди ще причинят огромна болка при запояване. И те бяха. Нямах нищо по -малко от 5 мм светодиоди, така че трябваше да ги залитя. Окончателният ми дизайн направи зигзагообразен модел на катодите, защото не исках да пускам анодите по заземителните проводници. Това се оказа добър дизайн. Светодиодните проводници се съединяват над 8-битовите регистри за смяна и преминават по горната част на платката с екранирани проводници за простота.

За захранване исках да го пусна от стар USB кабел, за да се захранва директно от един от компютрите. Това ще работи добре, защото USB портовете обикновено се захранват, дори ако компютърът е изключен. Използвах линеен регулатор на напрежение LM317, за да намаля мощността до 3.3V. 3.3V регулатор също би работил, но аз нямах такъв.

За да избегна пресичането на твърде много проводници, прокарах няколко проводника от горната страна на перф дъската, които се опитвам да избегна. Имайте предвид, че проходните отвори са проводими, затова използвайте екранирани проводници, за да избегнете къси панталони. Тези връзки, които се осъществяват в горната част на дъската, са показани с пунктирани линии на моята диаграма.

Стъпка 5: Споена дъска

Запоена дъска
Запоена дъска

Последната ми запоена дъска се оказа много добре. Както се очакваше, светодиодите отгоре отнеха много работа, за да бъдат запоени правилно без шорти. След като сте запоявали светодиодите и заглавките, използвайте мултицета си, за да определите дали имате къси панталони. Най -добре е да разберете сега.

Освен светодиодите, всичко останало вървеше доста добре. Трябваше да преработя няколко връзки, но с някои пациенти, някои отстраняване на грешки и малко повторно запояване, всичко ще работи добре.

От тази снимка ще видите, че съм свързал и оптоизолаторите, които използвах 8-жичен кабел CAT-5. Причината е, че е супер евтин, лесен за снаждане и е добре маркиран-повече за тези оптоизолатори в следващата стъпка.

Стъпка 6: Изработка на оптоизолатори

Изработване на оптоизолатори
Изработване на оптоизолатори

Разбира се, не е необходимо да правите свои собствени оптоизолатори. Много търговски версии са достъпни за стотинки на брой и биха работили по -добре, тъй като те ще управляват електропроводите на компютъра директно без никакво съпротивление. Но нямах оптоизолатор, така че трябваше да направя моя с помощта на светодиод, резистор и фоторезистор.

След като потвърдих, че в една втулка от черни свиващи се тръби, „изключеното“съпротивление с по -малко от моя глюкомер може да прочете и съпротивлението „включено“беше няколко хиляди ома, направих последен тест на стара дънна платка. При мен работи перфектно. Подозирам, че някои компютри може да са повече или по -малко чувствителни, но на дънните платки, които съм тествал, тази конфигурация работи добре.

Ще искате да използвате наистина ярък бял светодиод, за да получите максимална светлина във фоторезистора. Не пробвах много опции, но ярко белият светодиод и 220-омов резистор определено работят добре.

Стъпка 7: Настройка на CloudMQTT

Настройка на CloudMQTT
Настройка на CloudMQTT
Настройка на CloudMQTT
Настройка на CloudMQTT
Настройка на CloudMQTT
Настройка на CloudMQTT

Всяка MQTT услуга или подобна IoT услуга като Blynk би работила, но аз избирам да използвам CloudMQTT за този проект. Използвал съм CloudeMQTT за много проекти в миналото и тъй като този проект ще бъде предаден на приятел, има смисъл да се създаде нов акаунт, който също може да бъде прехвърлен.

Създайте акаунт в CloudMQTT и след това създайте нов „екземпляр“, изберете размера „Сладка котка“, тъй като ние го използваме само за контрол, без регистриране. CloudMQTT ще ви предостави име на сървър, потребителско име, парола и номер на порт. (Обърнете внимание, че номерът на порта не е стандартният MQTT порт). Прехвърлете всички тези стойности във вашия ESP8266 код на съответните места, като се уверите, че регистърът е правилен. (сериозно, копирайте/поставете стойностите)

Можете да използвате панела „Websocket UI“на CloudMQTT, за да видите връзките на вашето устройство, натискането на бутони и в нечетния сценарий, че получавате грешка, съобщение за грешка.

Тези настройки ще ви трябват и при конфигурирането на клиента Android MQTT, така че отбележете стойностите, ако е необходимо. Надяваме се, че паролата ви не е твърде сложна за въвеждане в телефона ви. Не можете да зададете това в CloudMQTT.

Стъпка 8: MQTT Android клиент

MQTT Android клиент
MQTT Android клиент
MQTT Android клиент
MQTT Android клиент
MQTT Android клиент
MQTT Android клиент
MQTT Android клиент
MQTT Android клиент

Всеки MQTT клиент за Android (или iPhone) ще работи, но аз харесвам MQTT Dash. MQTT Dash е лесен за използване, много отзивчив и има всички опции, които ще ви трябват.

След като бъде инсталиран, настройте MQTT сървър, попълнете сървъра, порта, потребителското име и паролата със стойностите на вашия екземпляр, а НЕ вашата информация за вход в CloudMQTT. Можете да използвате всяко име на клиента, което искате.

Ако сте въвели всичко правилно, той автоматично ще се свърже с вашия MQTT сървър и ще ви покаже празен екран, тъй като все още не сте настроили никакви бутони, текст или съобщения. На празния екран виждате „+“в горния десен ъгъл, щракнете върху него и след това изберете „Избор/Бутон“. Ще добавим по един „Избор/Бутон“на компютър, така че 8 или 16 или по -малко.

Ако сте получили грешка при свързване, една от стойностите е грешна. Върнете се и проверете отново

Всеки компютър ще използва темата, която съответства на стойностите, посочени във вашия код. Ако следвате моите конвенции, те щяха да бъдат „клъстер/багажник-01/компютър/01“. Най -добре би било да промените стойностите „включено“и „изключено“, за да съответстват на нашия код. Вместо "0" и "1", използвайте съответно стойностите "on" и "off". Аз също бих препоръчал използването на QoS (1), тъй като ще очакваме потвърждение от сървъра.

След като добавите такъв, можете да натиснете дълго и да използвате опцията „клониране“, за да създадете куп, след което да промените името и темата им.

Достатъчно лесно.

Стъпка 9: Включете вашия ESP8266 в Wifi

Първи вашия ESP8266 на Wifi
Първи вашия ESP8266 на Wifi

Използвайки модула ESP8266 Wifi Manager, е лесно да включим устройството си на Wifi. Ако сте използвали моя клас SensorBase, той вече е вграден. Ако не, следвайте инструкциите на страницата на Wifi Manager.

Wifi Manager ще се опита да се свърже с вашия SSID при зареждане, което не може, тъй като никога не сте му казвали вашия SSID, така че той автоматично ще премине в режим на точка за достъп (или режим на AP) и ще обслужва проста уеб страница с искане за вашия SSID & Парола. С помощта на телефона или лаптопа си свържете новодостъпната безжична мрежа с името на SSID „ESP_xxxxxx“, където „xxxxxx“е някаква произволна (всъщност не случайна) последователност. (Пълни инструкции можете да намерите на страницата на Wifi Manager.)

След като се свържете, отворете уеб браузъра си и го насочете към 192.168.4.1, въведете вашия SSID и парола и щракнете върху запазване.

Вече сте в интернет и вашето IoT устройство има част "I", която работи!

Стъпка 10: Окончателна връзка и тестване

Крайна връзка и тестване
Крайна връзка и тестване

Готово.

За да свържете всичко, намерете кабела на бутона за захранване на компютъра там, където той отговаря на дънната платка. Трябва да видите два реда заглавки с куп жици и конектори. Обикновено те са етикетирани доста добре. Изключете превключвателя и включете щепсела на оптоизолатора. Сложих няколко щекера "Dupont" на моя, така че те се включиха точно като захранващия кабел. Полярността в този край няма значение, но се уверете, че полярността на другия край е правилна - тази, която отива към вашата персонализирана дъска.

И работи перфектно. Използвайки клиента MQTT Dash (или подобен инструмент), можете дистанционно да захранвате компютрите си.

Натиснете съответния бутон за проверка на приложението си и след като приложението чуе съобщението от сървъра на MQTT със съобщението „изключено“, бутонът ще се промени обратно на непроверено.

Това работи от няколко седмици без никакви проблеми. Забелязахме, че времето за натискане на бутона надолу на компютрите трябва да бъде удължено. Завършихме с 1 пълна секунда. Тази стойност може да бъде изложена като зададена стойност чрез MQTT сървъра, или можете да я свържете по кабел, в зависимост от вашето желание.

Успех и кажи как се получи твоят.

Препоръчано: