Мазмұны:
- 1 -қадам: компоненттер
- 2 -қадам: жинау және жүктеу
- 3 -қадам: құрылғыны пайдалану
- 4 -қадам: Басқа әдістер
Бейне: Автоматты түрде құлыптау компьютерлік жүйесі: 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Бұл оқулықта біз компьютер экранын құлыптаудың қауіпсіздігін зерттейміз. Операциялық жүйелерде пайдаланушы тінтуірге немесе пернетақтаға тигізбесе, экранды құлыптайтын, реттелетін күту уақыты бар.
Әдетте әдепкі мән шамамен бір минутты құрайды. Егер сіз осы әдепкі бойынша жүрсеңіз және компьютерді бос ортада қалдырсаңыз, экран құлыпталғанша бір минут ішінде біреу сіздің компьютеріңізге кіруі мүмкін. Егер сіз оны бірнеше секундқа қойсаңыз, пернетақтаны ұстамайтын кезде құлыптау экраны жиі шығады және бұл сізді мазалайды …
Бір күні жұмысшы әріптесім бұл мәселені ол жоқ кезде компьютерді құлыптайтын құрылғы арқылы шеше аламын ба деп сұрады, мен оны қабылдадым:)
Мен басымда бірнеше параметрлерді зерттедім, мысалы, ардуино мен инфрақызыл термометр сенсоры, PIR сенсоры немесе компьютерде бетті анықтауды қолдану, бірақ мен қарапайым әдіске көштім:
Біз Arduino Leonardo HID функциясын (пернетақтаны эмуляциялау) ультрадыбыстық қашықтық сенсорымен біріктіреміз, егер адам компьютерді пайдаланып жатқанын анықтайтын болсақ, құрылғы компьютерді құлыптау үшін USB арқылы пернелер тіркесімін жібереді.
1 -қадам: компоненттер
Бұл біз құрылғыны нан тақтасына салатын тұжырымдаманың дәлелі
Сізге қажет:
1. Ардуино Леонардо (Леонардоны қолдану маңызды, себебі ол пернетақтаны еліктей алады)
2. HC-SR04 ультрадыбыстық қашықтық датчигі
3. 2 х 10 К айнымалы резисторлар
4. нан тақтасы, нанға арналған сымдар
5. USB кабелі
6. OLED дисплейі (https://www.adafruit.com/product/931)
2 -қадам: жинау және жүктеу
Алдымен сізде барлық қажетті компоненттер мен Arduino IDE бар -жоғын тексеріңіз. Мен қосылу қадамдарына қысқаша барамын, және сіз әрқашан бекітілген фризинг схемасын қарай аласыз
Ассамблея
1. Леонардоны нан тақтасына қойып, резеңке таспамен бекітіңіз
2. екі айнымалы резисторды, OLED дисплейін және ультрадыбыстық сенсорды тақтаға қойыңыз
3. алаңдар мен вкч -ты қосу
4. резисторлардың ортаңғы түйреуіштерін arduino A0 және A1 жалғаңыз
5. дисплейдің SDA мен SCL -ін Леонардода белгіленген SDA мен SCL -ге қосыңыз
6. ультрадыбыстық сенсордың триггері мен жаңғырық түйреуішін Леонардоның 12, 13 цифрлық түйреуішіне жалғаңыз
7. USB -ді компьютерге қосыңыз
Жүктеу
Ең алдымен, сізге қажет arduino кітапханаларын жүктеу және орнату қажет:
1. GOFi2cOLED кітапханасы:
2. Ультрадыбыстық-HC-SR04 кітапханасы:
Егер сіз arduino кітапханаларын қалай орнатуды білмесеңіз, осы оқулықты қараңыз.
Жоғарыдағы кітапханаларды жүктеп, орнатқаннан кейін сіз менің arduino репозиторийімді осы жерден көшіре аласыз немесе жүктей аласыз: https://github.com/danionescu0/arduino, және біз бұл эскизді қолданамыз: https://github.com/danionescu0 /arduino/tree/master…
Немесе төмендегі кодты көшіріп, қоюға болады:
/ * * Бұл жоба пайдаланатын кітапханалар: * * GOFi2cOLED: https://github.com/hramrach/GOFi2cOLED * Ultrasonic-HC-SR04: https://github.com/JRodrigoTech/Ultrasonic-HC-SR04 */#include «Keyboard.h» #«Wire.h» қосу #«GOFi2cOLED.h» қосу «» Ультрадыбыстық.h «қосу
GOFi2cOLED GOFoled;
Ультрадыбыстық ультрадыбыстық (12, 13);
const байт аралығыPot = A0;
const байт таймеріPot = A1; const float пайызыMaxDistanceChangedAllowed = 25; int actualDistance; белгісіз ұзақ maxDistanceDetectionTime; bool lockTimerStarted = жалған;
жарамсыз орнату ()
{Serial.begin (9600); Keyboard.begin (); initializeDisplay (); }
бос цикл ()
{clearDisplay (); actualDistance = getActualDistance (); writeStatusData (); doDisplay (); if (! lockTimerStarted && shouldEnableLockTimer ()) {lockTimerStarted = true; maxDistanceDetectionTime = millis (); Serial.println («құлыптау таймері басталады»); } else if (! shouldEnableLockTimer ()) {Serial.println («құлыптау таймері өшірілген»); lockTimerStarted = жалған; } if (shouldLockScreen ()) {lockScreen (); Serial.println («Құлыптау экраны»); } кешіктіру (100); }
bool shouldLockScreen ()
{return lockTimerStarted && (millis () - maxDistanceDetectionTime) / 1000> getTimer (); }
bool shouldEnableLockTimer ()
{int allowedDistance = процентMaxDistanceChangedAllowed / 100 * getDistance (); getTimer ()> 1 && getDistance ()> 1 && actualDistance қайтару - getDistance ()> рұқсат етілген қашықтық; }
жарамсыз writeStatusData ()
{setDisplayText (1, «MinDistance:», String (getDistance ())); setDisplayText (1, «Таймер:», Жол (getTimer ())); setDisplayText (1, «ActualDistance:», String (actualDistance)); int countDown = getTimer () - (миллис () - maxDistanceDetectionTime) / 1000; Жолдық хабар = «»; if (shouldLockScreen ()) {message = «құлып жіберілді»; } else if (shouldEnableLockTimer () && countDown> = 0) {message = «..» + Жол (countDown); } басқа {хабарлама = «жоқ»; } setDisplayText (1, «Құлыптау:», хабар); }
void initializeDisplay ()
{GOFoled.init (0x3C); GOFoled.clearDisplay (); GOFoled.setCursor (0, 0); }
void setDisplayText (байт fontSize, String жапсырмасы, String деректері)
{GOFoled.setTextSize (fontSize); GOFoled.println (белгісі + «:» + деректер); }
жарамсыз doDisplay ()
{GOFoled.display (); }
void clearDisplay ()
{GOFoled.clearDisplay (); GOFoled.setCursor (0, 0); }
int getActualDistance ()
{int distanceSum = 0; for (байт i = 0; i <10; i ++) {distanceSum+= ультрадыбыстық. Ранг (CM); }
қайтару қашықтығыСум / 10;
}
int getDistance ()
{қайтару картасы (analogRead (timerPot), 0, 1024, 0, 200); }
int getTimer ()
{қайтару картасы (analogRead (distancePot), 0, 1024, 0, 20); }
void lockScreen ()
{Serial.println («басу»); Keyboard.press (KEY_LEFT_CTRL); кешіктіру (10); Keyboard.press (KEY_LEFT_ALT); кешіктіру (10); Keyboard.write ('l'); кешіктіру (10); Keyboard.releaseAll (); }
Соңында arduino компьютерін USB кабелі арқылы қосыңыз және эскизді arduino -ға жүктеңіз.
3 -қадам: құрылғыны пайдалану
Ардуино компьютерге қосылған кезде ол сенсор алдындағы қашықтықты үздіксіз бақылап отырады және егер қашықтық ұлғайса, компьютерге «құлыптау» экран пернелерінің комбинациясын жібереді.
Құрылғыда бірнеше конфигурация бар:
1. Қалыпты қашықтық, қашықтықты А0 -ға қосылған айнымалы резистордың көмегімен конфигурациялауға болады. Қашықтық OLED -де де көрсетіледі. Қашықтық 25% -ға артқан кезде кері санақ басталады
2. Күту уақыты (кері санау). А1 -ге қосылған резистордан секунд бойынша күту уақыты да реттеледі. Күту уақыты аяқталғаннан кейін құлыптау пәрмені жіберіледі
3. Құлыптау пернелер тіркесімі. Әдепкі құлыптау пернелерінің комбинациясы Ubuntu Linux 18 (CTRL+ALT+L) үшін жұмыс істеу үшін орнатылған. Комбинацияны өзгерту үшін эскизді операциялық жүйеге сәйкес өзгерту қажет:
4. Күту уақыты мен қашықтықтан қорғау. Бұл пернетақтаны эмуляциялайтын құрылғы болғандықтан, пернетақта функциясын өшіру механизмін қолданған дұрыс. Менің эскизімде мен күту уақыты мен қашықтық «1» -ден үлкен болуы керек деп шештім. (егер қаласаңыз, оны кодта өзгертуге болады)
«LockScreen ()» функциясын табыңыз және өзгертіңіз
void lockScreen () {Serial.println («басу»); Keyboard.press (KEY_LEFT_CTRL); кешіктіру (10); Keyboard.press (KEY_LEFT_ALT); кешіктіру (10); Keyboard.write ('l'); кешіктіру (10); Keyboard.releaseAll (); }
Ардуино арнайы кілттерінің толық тізімін мына жерден қараңыз:
4 -қадам: Басқа әдістер
Бұл іске асырудың алдында мен басқа да кейбір іске асыруларды қарастырдым:
1. Инфрақызыл термометр (MLX90614 https://www.sparkfun.com/products/10740). Инфрақызыл термометр - бұл объектіден қашықтықта шығарылатын инфрақызыл сәулеленуді талдау арқылы температураны өлшейтін құрылғы. Менде біреу жатыр еді, мен компьютердің алдында температураның айырмашылығын анықтай аламын деп ойладым.
Мен оны байланыстырдым, бірақ температураның айырмашылығы өте аз болды (мен алдында болғанда немесе болмағанда) 1-2 градус, мен оны сенімді деп ойламадым.
2. PIR сенсоры. (https://www.sparkfun.com/products/13285) Бұл арзан сенсорлар «қозғалыс сенсорлары» ретінде сатылады, бірақ олар инфрақызыл сәулеленудің өзгеруін шынымен анықтайды, сондықтан адам компьютерді тастаған кезде сенсор анықтай алады. Бұл.. Сонымен қатар бұл сенсорларда күту уақыты мен сезімталдық тұтқалары бар. Мен оны қостым және онымен ойнадым, бірақ сенсор жақын аралықта жасалмаған сияқты (оның бұрышы кең), ол жалған ескертулердің барлық түрін берді.
3. Веб -камераның көмегімен бетті анықтау. Бұл опция өте қызықты болып көрінді, өйткені мен осы компьютерлік өріспен басқа жобаларымда ойнадым: https://github.com/danionescu0/robot-camera-platfo… және https://github.com/danionescu0/image-processing- пр…
Бұл торттың бір бөлігі болды! Бірақ кейбір кемшіліктер болды: бағдарлама жұмыс істеп тұрған кезде ноутбук камерасын басқа мақсаттарда пайдалану мүмкін болмады, бұл үшін кейбір компьютерлік ресурстар қажет болады. Сондықтан мен де бұл идеядан бас тарттым.
Егер сізде мұны қалай жасауға болатыны туралы қосымша идеялар болса, бөлісіңіз, рахмет!
Ұсынылған:
Батареямен жұмыс істейтін кеңсе. Күн жүйесі шығыс/батыс автоматты түрде ауысатын күн панельдері мен жел турбинасы: 11 қадам (суреттермен)
Батареямен жұмыс істейтін кеңсе. Шығыс/Батыс күн панельдері мен жел турбинасы автоматты түрде ауысатын күн жүйесі: Жоба: 200 шаршы метрлік кеңсе батареямен жұмыс істеуі керек. Сонымен қатар кеңседе осы жүйеге қажетті барлық контроллерлер, батареялар мен компоненттер болуы керек. Күн мен жел энергиясы батареяларды зарядтайды. Аз ғана мәселе бар
Abellcadabra (Бетті тану есігін құлыптау жүйесі): 9 қадам
Abellcadabra (Бетті тану есіктерін құлыптау жүйесі): Карантин кезінде мен үйдің есігіне бетті тану арқылы уақытты өлтірудің жолын табуға тырыстым. Мен оны Abellcadabra деп атадым - бұл қоңырауды алатын есік қоңырауы бар сиқырлы фраза Абракадабраның қосындысы. ҚАТТЫ КҮЛУ
Есікті автоматты түрде құлыптау: 5 қадам
Есікті автоматты түрде құлыптау: Ей, онда !! Бұл менің бірінші нұсқаулығым! Барлығыңызға ұнайды деп үміттенемін. Бұл жобада біз автоматтандырылған (парольмен қорғалған) есік құлпын құрамыз. Классикалық құлып пен кілт - бұл 100 жылдық өнертабыс, және біз білетіндей, «өзгереді
UWaiPi - өсімдіктерді автоматты түрде суару жүйесі: 11 қадам (суреттермен)
UWaiPi - өсімдіктерді автоматты түрде суару жүйесі: Сәлеметсіз бе! Сіз бүгін таңертең өсімдіктерді суаруды ұмыттыңыз ба? Сіз демалысты жоспарлап отырсыз, бірақ өсімдіктерді кім суарады деп ойлайсыз ба? Егер сіздің жауаптарыңыз Иә болса, онда менде сіздің мәселеңіздің шешімі бар, uWaiPi -ді енгізгеніме өте қуаныштымын
WiFi резервуарлы өсімдіктерді автоматты түрде беру - жабық/ашық ауада өсіру - су қондырғылары қашықтан бақылаумен автоматты түрде: 21 қадам
Резервуарлы WiFi автоматты өсімдік қоректендіргіші - жабық/ашық өсіру қондырғысы - су қондырғылары қашықтан бақылаумен автоматты түрде: Бұл оқулықта біз өсімдіктерді автоматты түрде суаратын және Adosia платформасы арқылы қашықтан бақыланатын жабық/ашық өсімдіктерді тамақтандыратын жүйені қалай орнату керектігін көрсетеміз