Оглавление:

Детектор вздутых боссов: 9 шагов (с изображениями)
Детектор вздутых боссов: 9 шагов (с изображениями)

Видео: Детектор вздутых боссов: 9 шагов (с изображениями)

Видео: Детектор вздутых боссов: 9 шагов (с изображениями)
Видео: «Синдром Зоны» Глава 31 2024, Ноябрь
Anonim
Детектор вздутия босса
Детектор вздутия босса
Детектор вздутия босса
Детектор вздутия босса

Чем старше я становлюсь, тем меньше становится моя кабинка. Фактически, у меня сейчас даже кабинки нет. Но мой босс приходил незамеченным и ловил меня, когда я занимаюсь каким-то заданием (WWW - для босса это выглядело как веб-серфинг), и он просил меня приступить к работе. Я хотел повесить на него колокольчик, но уверен, что он не пойдет на это, поэтому мне пришлось придумать что-то еще. (примечание - название должно быть «Вздутие живота».)

Шаг 1: Купите этот отличный шумогенератор примерно за 6 баксов в отделе игрушек продовольственного магазина

Купил этот отличный шумогенератор примерно за 6 баксов в отделе игрушек продовольственного магазина
Купил этот отличный шумогенератор примерно за 6 баксов в отделе игрушек продовольственного магазина

Вы можете сами прочитать пакет. В нем около 6 различных случайных «мелодий». Но ключевым элементом является маленькая радиочастотная кнопка дистанционного управления, которая идет в комплекте с ним.

Шаг 2: И я нашел эту маленькую жемчужину в WalMart примерно за 5 долларов

И я нашел эту маленькую жемчужину в WalMart примерно за 5 долларов
И я нашел эту маленькую жемчужину в WalMart примерно за 5 долларов

Очевидно, он включает небольшой свет (светодиод) при обнаружении движения, а в комнате темно. (Хммммм, интересно, смогу ли я …)

Шаг 3: Хорошо. Давайте откроем датчик движения и посмотрим…

Хорошо. Давайте откроем датчик движения и посмотрим…
Хорошо. Давайте откроем датчик движения и посмотрим…

Ну, я все пометил. Фотоэлемент (не показан, но поверьте мне, он есть) предназначен для предотвращения включения света (светодиода) в дневное время и, следовательно, продления срока службы батареи.

Линза Френеля предназначена для обеспечения широкого поля зрения датчика движения. Френель произносится как френель, дополнительную информацию можно найти в Википедии.

Шаг 4: давайте займемся хакингом

Давай займемся взломом
Давай займемся взломом

Сначала вы видите этот датчик движения PIR. PIR означает «пассивный инфракрасный порт». Некоторые называют это «инфракрасным поджигателем». Не знаю почему. Тем не менее, мы не будем взламывать это. Нам может понадобиться что-нибудь позже.

Затем мы (ну, я… но королевская мы) прикрыли тот фотоэлемент, о котором я вам говорил. Понимаете, я хочу, чтобы мой босс-детектор работал днем и ночью. Так что, прикрывая его, он думает, что он в темноте, даже когда свет включен. Но мы только что прикрыли ему глаза (на самом деле один глаз), и теперь он / она находится в темноте. И вы можете видеть, что мы установили наш собственный фотоэлемент прямо рядом со светодиодом. Этот небольшой трюк позволяет нам узнать, когда загорается светодиод, потому что движение было обнаружено. Конечно, мы могли бы протянуть провод от светодиода для достижения той же цели, но что в этом интересного. Самое интересное в хакерстве - это то, что взломать его не так, как другие хакеры, как и другие инженеры-электрики. И это делает ваш хак настоящим оригиналом.

Шаг 5: Схема фотоэлемента

Схема фотоэлемента
Схема фотоэлемента

Фотоэлемент, который вы можете купить в Radio Shack, имеет сопротивление около 50 кОм без воздействия света и около 5 кОм или меньше при ярком свете. Итак, если мы подключим резистор последовательно с фотоэлементом, который представляет собой просто резистор, и подключим их к источнику напряжения и земле, то у нас будет делитель напряжения. Оттуда ответвление между двумя резисторами обеспечивает сигнал напряжения, который повышается или понижается, и может использоваться для запуска устройства. В этом случае в датчике движения используются батарейки 3xAA, что составляет 4,5 вольт. Вот как устроена схема для подачи сигнала, необходимого для управления другой электроникой. При выключенном светодиоде сигнал цепи составляет около 1,7 вольт, при включенном светодиоде сигнал возрастает примерно до 3,5 вольт, чего достаточно для запуска микроконтроллера.

Шаг 6: взлом кнопки пульта дистанционного управления

Взлом кнопки пульта дистанционного управления
Взлом кнопки пульта дистанционного управления

Есть кнопка, что означает, что где-то есть два контакта, которые при замкнутом замыкании заставляют подушку-колокольчик делать свое дело. Штифты довольно очевидны, поэтому я не стал показывать эту часть. Но я просверлил небольшое отверстие и проделал пару проводов к контактам кнопки. И, используя герконовое реле 5 В от Radio Shack, я могу соединить два контакта, включив герконовое реле.

Шаг 7: Теперь самое сложное

Теперь самое сложное
Теперь самое сложное

Это не так уж сложно, если вы немного разбираетесь в электронике, но дело в том, что вам нужно использовать сигнал запуска для активации системы. Вы можете использовать однократный таймер, компаратор или таймер 555, но для меня проще всего использовать 8-контактный микроконтроллер. Я использовал PIC Micro 12F675. При этом я мог срабатывать при изменении входа контакта и мигать красным светодиодом. Кроме того, если войдут 5 человек, я не хочу, чтобы эта штука сошла с ума на 15 секунд, поэтому я поставил 30-секундную задержку, чтобы я мог нажать аварийный выключатель и выключить его. Итак, я просто бегло просмотрю и покажу конечный результат изобретения. Обратите внимание: я накрыл светодиод, чтобы бывший начальник не видел, как загорается свет каждый раз, когда он врывается в мою скромную четверть отсека. Эта картинка - конечный продукт. Я оставлю электронику в качестве упражнения для ученика. Вот код для PIC Micro 12F675:; ************************** ************************************************; Имя файла: Flatulant_Boss; Процессор: 12F675; Автор: Алан Моллик (alanmollick.com); Режим: Прерывание при смене GP2;; ~ РЕГИСТРЫ GPIO ~; GP0 = ВХОД - н / п; GP1 = ВЫХОД - реле; GP2 = INPUT - High = обнаружено движение; GP3 = ВХОД - н / п; GP4 = ВЫХОД - Красный светодиод; ***************************************** ********************************** список p = 12F675; директива list для определения процессора # include; определение переменной, зависящей от процессора, уровень ошибки -302; запретить сообщение 302 из списка fileCONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT; ~ Переменные ~ w_temp EQU 0x20; переменная, используемая для сохранения контекста status_temp EQU 0x21; переменная, используемая для сохранения контекста hiB EQU 0x21; MSBytelowB EQU 0x22; LSBytetemp EQU 0x23 резервный EQU 0x24 temp1 EQU 0x25; запускать прерывание flagtemp2 EQU 0x26 задержка EQU 0x27; задержка timepins EQU 0x28; состояние контактовpare1 EQU 0x29spare2 EQU 0x2acount EQU 0x2b; цикл countcount1 EQU 0x2c; внешний цикл countcount2 EQU 0x2d; внешний цикл countd1 EQU 0x2e; счетчик задержки d2 EQU 0x2f; счетчик задержки d3 EQU 0x30; счетчик задержки d4 EQU 0x31; счетчик задержки; ********************************************* *********************** RESET_VECTOR ORG 0x000; вектор сброса процессора goto main; перейти в начало программы INT_VECTOR ORG 0x004; расположение вектора прерывания movwf w_temp; сохранить текущее содержимое регистра W movf STATUS, w; переместить регистр статуса в регистр W movwf status_temp; сохранить содержимое регистра STATUS; вызов кода isr motion_detect; отправка сигналов тревоги banksel INTCON bcf INTCON, INTF; очистить флаг GP2 / INT movf status_temp, w; получить копию регистра STATUS movwf STATUS; восстановить предварительно isr содержимое регистра STATUS swapf w_temp, f swapf w_temp, w; восстановить содержимое регистра pre-isr W retfie; возврат из прерывания; ********************************************* ******************главный:; основная программа; эти первые 4 инструкции не требуются, если внутренний осциллятор не используется call 0x3FF; получить значение заводской калибровки bsf STATUS, RP0; установить банк регистров файлов на 1 movwf OSCCAL; обновить регистр с заводским значением калибровки bcf STATUS, RP0; установить банк регистров файла на 0; ***********************************; * Инициализация *; *** ********************************; GP0 = не используется, GP1 = релейный выход, GP2 = вход (обнаружение движения),; GP3 = вход для управления / аварийного отключения, GP4 = выход для светодиодного индикатора,; GP5 = не используется; установить направление контактов ввода / вывода banksel TRISIO movlw b'00000101 '; xx ------ не реализовано; --0 ----- 0 = выход, GP5 = n / c; --- 0 ---- 0 = выход, GP4 = светодиод; ---- x --- не используется, GP3, предназначен для MCLR; ----- 1-- 1 = вход, обнаружено движение GP2; ------ 0- 0 = выход, GP1 = электромагнитный клапан; ------- 1 1 = вход GP0 = A / D movwf TRISIO; настроить аналого-цифровой преобразователь banksel ANSEL movlw b'00010000 '; x ------- не реализовано; -001 ---- 001 = Тактовая частота преобразования Focs / 8; ---- 0 --- 0 = цифровой ввод / вывод, GP4, тактовый сигнал Fosc / 4 для целей отладки.; ----- 0-- 0 = цифровой ввод / вывод, GP2; ------ 0- 0 = цифровой ввод / вывод, GP1, реле и т. Д.; ------- 0 0 = цифровой ввод / вывод, 1 = аналоговый GP0 movwf ANSEL banksel ADCON0 movlw b'00000000 '; 0 ------- 1 = результат с выравниванием по правому краю; -0 ------ 0 = Vdd - опорное напряжение; --xx ---- не реализовано; ---- 00-- 00 = выберите канал 0 (GP0); ------ 0- 0 = аналого-цифровое преобразование не запущено; ------- 0 0 = модуль аналого-цифрового преобразователя выключен movwf ADCON0; инициализировать выходной pinsinit banksel GPIO movlw b'00000000 'movwf GPIO; инициализировать прерывания banksel INTCON movlw b'00000000 '; 0 ------- 0 = глобальные прерывания отключены; -0 ------ 1 = разрешить периферийные прерывания; --0 ----- 0 = запретить прерывание переполнения TMR0; --- 1 ---- 1 = разрешить внешнее прерывание GP2 / INT; ---- 0 --- 0 = запретить прерывание смены порта GPIO; ----- 0-- 0 = нет при переполнении TMR0; ------ 0- 1 =; ------- 0 0 = нет изменения порта GPIO movwf INTCON; инициализировать прерывание при смене вывода GP2 banksel IOC movlw b'00000100 '; x ------- не реализовано; -x ------ не реализовано; --0 ----- 0 = отключить GP5; --- 0 ---- 0 = отключить GP4; ---- 0 --- 0 = отключить GP3; ----- 1-- 1 = включить GP2 / INTR *****; ------ 0- 0 = отключить GP1; ------- 0 0 = отключить GP0 movwf IOC banksel PIE1 movlw b'00000000 '; 0 ------- 0 = запретить прерывание от завершения записи EE; -0 ------ 0 = запретить прерывание аналого-цифрового преобразователя; --xx ---- не реализовано; ---- 0 --- 0 = прерывание от компаратора запрещено; ----- xx- не реализовано; ------- 0 1 = разрешить прерывание переполнения TMR1 movwf PIE1 banksel PIR1 movlw b'00000000 '; 0 ------- 0 = запись EE не завершена; -0 ------ 0 = аналого-цифровое преобразование не выполнено; --xx ---- не реализовано; ---- 0 --- 0 = нет прерывания от компаратора; ----- xx- не реализовано; ------- 0 0 = нет переполнения TMR1 movwf PIR1; ********************************* ************************; GP1 = выход на реле; GP4 = вывод на светодиод; ******************************************* ************** banksel INTCON bsf INTCON, INTE; включить прерывание GP2 bsf INTCON, GIEMain_Loop:; если GP2 = 1, то вывести аварийные сигналы на GP1, GP4 через прерывание сна nop goto Main_Loop; ****************************** ***************************; Обработчик прерывания при обнаружении движения;; GP1 = выход на реле, GP4 = выход на светодиод; ************************************* ******************** motion_detect: bsf GPIO, 1; активировать реле на 100 мсек вызова pause_100ms bcf GPIO, 1; реле отключения bsf GPIO, 4; активировать светодиод на 0,5 сек. вызов pause_500ms bcf GPIO, 4 return; **************************************** ****************; онлайн-генератор кода задержки; https://massmind.org/techref/piclist/codegen/delay.htm;****************************** ************************* pause_100msec:; Задержка = 0,1 секунды; Тактовая частота = 4 МГц movlw 0x1F; 99998 циклов movwf d1 movlw 0x4F movwf d2Delay_100 decfsz d1, f goto $ + 2 decfsz d2, f goto Delay_100 goto $ + 1; 2 цикла returnpause_500msec:; Задержка = 0,5 секунды; Тактовая частота = 4 МГц movlw 0x03; 499994 циклов movwf d1 movlw 0x18 movwf d2 movlw 0x02 movwf d3Delay_500 decfsz d1, f goto $ + 2 decfsz d2, f goto $ + 2 decfsz d3, f goto Delay_500 goto goto $ + 1; $ + 1 goto $ + 1 returnpause_1sec; Задержка = 1 секунда; Тактовая частота = 4 МГц movlw 0x08; 999997 циклов movwf d1 movlw 0x2F movwf d2 movlw 0x03 movwf d3Delay_1sec decfsz d1, f goto $ + 2 decfsz d2, f goto $ + 2 decfsz d3, f goto Delay_1 3sec goto nop + возвращение;************************************************ *****************************

Шаг 8: Заключительные слова

Заключительные слова
Заключительные слова

Эта картинка - один из способов все скрыть.

Примечание. При использовании микроконтроллера количество вариантов этой инструкции не ограничено. Вы можете разместить динамик так, чтобы звук исходил из-за спины начальника. Или вы можете привязать его к системе громкой связи компании. Вы даже можете сделать так, чтобы система проверяла ваш компьютер, и через 1/10 секунды выскакивала страница, связанная с работой, чтобы каждый раз, когда ваш бывший начальник или кто-либо другой входит в ваш периметр, всегда была электронная таблица или технический документ. над которым вы должны работать. И 24 часа в сутки, 7 дней в неделю… любой, кто входит в вашу кабинку или выходит из нее, может сказать, что вы прижимаетесь к точильному камню каждую секунду. Это делает вас ценным сотрудником. Вы чертов трудоголик. Кроме того, вам действительно не нужна линза Френеля. На самом деле, для обнаружения босса лучше удалить его, иначе люди внутри вашей кабины, перемещающиеся вокруг, вызовут его. Вы можете снять линзу Френеля и надеть кусок ПВХ-трубки (диаметром 1/2 дюйма от Home Depot) на детектор PIR, и это даст вам очень узкое поле обзора, например, прямо у дверного проема (при условии, что у вас есть дверь) но датчик работает так же хорошо. Его диапазон составляет около 5-10 футов без линзы Френеля. Вы также можете снять детектор PIR и, используя 3 провода, вы можете разместить детектор в любом месте, чтобы сделать его скрытым. Можно даже купить звуковой модуль за 6 баксов и записывать собственные звуки. Вы можете использовать международный сигнал для "приближается босс", который прочищает горло. И менять его можно каждое утро. Или запишите звук, как вы лихорадочно печатаете, и т. Д. Вот звуковой эффект, который я сделал из этой подушки, и запустил его в свой компьютер, отредактировал с помощью Audacity и использовал его для взлома Easy Button, который я мог бы однажды выложить.

Шаг 9: вариация

Вариация
Вариация

Вот еще один детектор боссов, основанный на той же концепции. Кроме того, кто-то хотел видео, поэтому я скоро выложу для этого видео. Детектор для этого, очевидно, Robo Sapien, соединенный с детектором движения от Home Depot. При обнаружении движения робот посылает ИК-сигнал в птичью клетку, где находится скрытый детектор 38 кГц. Птичий механизм имеет несколько вариантов. Все параметры выбираются индивидуально, но при включении всех элементов птичка начинает кружиться, щебетать, с мигающим светодиодом. Также я добавил сверхяркий красный светодиод, установленный под ним, который мигает 4 раза, чтобы вы знали, что кто-то идет без всякой ракетки. У этого также есть 30-секундная задержка, и вы можете отключить все это, просто подняв карандаш. Карандаш имеет магнит на конце, который, когда он вставлен в кормушку для птиц, включает электрическую схему с помощью небольшого магнитного герконового реле. Единственная реальная разница в этой системе состоит в том, что я не использовал трюк с фотоэлементом. В детекторе движения есть четырехъядерный операционный усилитель, и я просто отключил выходной контакт последнего каскада. Я купил несколько таких вещей для птиц в аптеке, потому что они продавались по 5 баксов за штуку. Затем я добавил камни и растительность, чтобы скрыть ИК-детектор, и сделал небольшую коробку из вишневого дерева и покрыл ее лаком, чтобы скрыть дополнительную батарею AA, которая мне нужна. Вещь работает от 2-х батареек АА и активируется по звуку. Я сделал его менее чувствительным к звуку и нуждался в дополнительной батарее, потому что детектор 38 кГц, который я использовал, требовал не менее 4,5 вольт, что означает 3 батареи. Детектор движения был предназначен для подключения к розетке, поэтому я отрезал большую часть от печатной платы, и теперь он работает от батареи 9 В, установленной там, где находилась лампочка.

Вот ссылка на видео с этого видео.

Рекомендуемые: