28 ноября 2016 г.
Textual description of firstImageUrl

Рукожопим датчик освещения базе Arduino Uno R3 MEGA328P и первая ошибка

Проектирую элемент "умного дома". На данный момент из элементов: датчика освещения, который возвращает лишь логический "0" или "1" и датчика движения HC-SR501 базе Arduino Uno R3 MEGA328P. В предыдущем посте я разбирался с датчиком движения, сегодня мы составим алгоритм обработки данных с датчика освещенности.

Что такое Arduino


Прежде хочу рассказать что такое Arduino UNO, да и вообще что такое Arduino.
Arduino UNO это небольшая плата с процессором и памятью. Существует множество модификаций плат Ардуино, отличаются они количеством выводов, мощностью процессора, памятью, интерфесов и дополнительных фишек.

Приемуществом Arduino является предельная простота при проектировании своей системы. К системе Ардуино выпускается множество датчиков, переключателей и множество иных устройств.

Программы легки пишутся на "урезанном" C++ и довольно легки в освоении даже если вы с программированием не слишком знакомы.

Введение

Задача:
  • научиться работать с датчиком 
  • построить оптимальный алгоритм для анализа данных с датчика.
Исходные материалы:
Безусловно вначале необходимо приобрести данные девайсы (ссылки выше) и конечно же проверить:

Начало работы

Для начала нам необходимо поставить соответствующее ПО (Arduino Software). Найти его можно здесь. Впоследствии, когда я делал библиотеку, я понял что это полная лажа и перешел на Arduino IDE, на чем я собственно пока и остановился.

Собираем стенд для отладки


Алгоритм

Решение об уровне освещенности принимается на интервале 1 минута.
Минутный интервал разбит на 6 подинтервалов по 10 секунд.
На каждом подинтервале принимается решение об уровне освещенности, если уровень освещенности выше порога и по времени более 10%, то считается что «светло».
На 1 минутном интервале принимается решение только если 100% «темно» или «светло». Это сделано во избежание случайных засветок (мимо проезжающая машина, облака, засветка от термоядерного взрыва…).
Библиотека приложена.

Далее совмещаем работу с датчиком движения.
Логика работы следующая: если в помещении «светло», то выключаем датчик движения и доп. освещение. Если в помещении «темно» и отсутствует движение, то доп. освещение выключено и если движение есть, то включаем доп. освещение.

Есть минусы данного алгоритма и датчиков:
  1. Датчики возвращают лишь логические «0» или «1», а значит количественно оценить данные с датчиков мы не можем
  2. В случае ручного включения основного освещения, система не отличит увеличения уровня освещения от основного источника света или естественного от дополнительного.
Если во втором случае мы можем дополнительно ввести датчик тока в цепь основного освещения или организовать разовую команду от выключателя до Arduino, то в первом случае мне необходимо менять датчики: датчик движения дополню ультразвуковым, а датчик освещения заменю на цифровой, т.е. я буду получать данные в люксах и получать количественную характеристику.

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

Скетч приложен, может кому пригодится

Итог

Библиотека для датчика освещенности
Обновленная библиотека для датчика движения (немного оптимизирован)
Скетч, где задействован и датчик освещенности и датчик движения
27 ноября 2016 г.
Textual description of firstImageUrl

«Режим Бога» в Windows 7

Включение этого режима в операционной системе Windows 7 позволит вам забыть о поиске различный инструментов для настройки системы.
Всё, что вам необходимо сделать – это создать папку и назвать её GODMODE.{ED7BA470-8E54-465E-825C-99712043E01C}
Создаем новую папку
Задаем новое имя
Что должно получиться - God Mode
Внутри папки вы найдёте все утилиты по тонкой настройке системы, которые иногда довольно непросто извлечь из недр операционной системы.
Если у вас возникла необходимость в создании папки для быстрого доступа к какой-то определенной системной утилите, вы можете воспользоваться другими «секретными кодами» для упрощения работы с операционной системой. Вот их список:

Action Center.{BB64F8A7-BEE7-4E1A-AB8D-7D8273F7FDB6}
Backup and Restore.{B98A2BEA-7D42-4558-8BD1-832F41BAC6FD}
Biometric Devices.{0142e4d0-fb7a-11dc-ba4a-000ffe7ab428}
Credential Manager.{1206F5F1-0569-412C-8FEC-3204630DFB70}
Default Location.{00C6D95F-329C-409a-81D7-C46C66EA7F33}
Devices and Printers.{A8A91A66-3A7D-4424-8D24-04E180695C7A}
Display.{C555438B-3C23-4769-A71F-B6D3D9B6053A}
HomeGroup.{67CA7650-96E6-4FDD-BB43-A8E774F73A57}
Location and Other Sensors.{E9950154-C418-419e-A90A-20C5287AE24B}
Notification Area Icons.{05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}
Recovery.{9FE63AFD-59CF-4419-9775-ABCC3849F861}
RemoteApp and Desktop Connections.{241D7C96-F8BF-4F85-B01F-E2B043341A4B}
Speech Recognition.{58E3C745-D971-4081-9034-86E34B30836A}
Troubleshooting.{C58C4893-3BE0-4B45-ABB5-A63E4B8C8651}
Administrative Tools.{D20EA4E1-3957-11d2-A40B-0C5020524153}
All .NET Frameworks and COM Libraries.{1D2680C9-0E2A-469d-B787-065558BC7D43}
All Tasks (Control Panel).{ED7BA470-8E54-465E-825C-99712043E01C}
AutoPlay.{9C60DE1E-E5FC-40f4-A487-460851A8D915}
BitLocker Drive Encryption.{D9EF8727-CAC2-4e60-809E-86F80A666C91}
Computer Folder.{20D04FE0-3AEA-1069-A2D8-08002B30309D}
Default Programs.{17cd9488-1228-4b2f-88ce-4298e93e0966}
Ease of Access Center.{D555645E-D4F8-4c29-A827-D93C859C4F2A}
Font Settings.{93412589-74D4-4E4E-AD0E-E0CB621440FD}
Get Programs.{15eae92e-f17a-4431-9f28-805e482dafd4}
Manage Wireless Networks.{1FA9085F-25A2-489B-85D4-86326EEDCD87}
Network and Sharing Center.{8E908FC9-BECC-40f6-915B-F4CA0E70D03D}
Network Connections.{7007ACC7-3202-11D1-AAD2-00805FC1270E}
Network Folder.{208D2C60-3AEA-1069-A2D7-08002B30309D}
Parental Controls.{96AE8D84-A250-4520-95A5-A47A7E3C548B}
Performance Information and Tools.{78F3955E-3B90-4184-BD14-5397C15F1EFC}
Personalization.{ED834ED6-4B5A-4bfe-8F11-A626DCB6A921}
Power Options.{025A5937-A6BE-4686-A844-36FE4BEC8B6D}
Programs and Features.{7b81be6a-ce2b-4676-a29e-eb907a5126c5}
Sync Center.{9C73F5E5-7AE7-4E32-A8E8-8D23B85255BF}
System.{BB06C0E4-D293-4f75-8A90-CB05B6477EEE}
User Accounts.{60632754-c523-4b62-b45c-4172da012619}
Windows Firewall.{4026492F-2F69-46B8-B9BF-5654FC07E423}
Windows SideShow.{E95A4861-D57A-4be1-AD0F-35267E261739}
Windows Update.{36eef7db-88ad-4e81-ad49-0e313f0c35f8}

19 ноября 2016 г.
Textual description of firstImageUrl

Рукожопим датчик движения HC-SR501 на базе Arduino Uno R3 MEGA328P


Задача:
  • научиться работать с датчиком
  • построить наиболее оптимальный алгоритм для анализа данных с датчика.

Исходные материалы:

Введение

Безусловно вначале необходимо приобрести данные девайсы (ссылки выше) и конечно же проверить:

Сенсор на дисплее не работал, но это другая история.

Начало работы

Для начала нам необходимо поставить соответствующее ПО (Arduino Software). Найти его можно здесь. Впоследствии, когда я делал библиотеку, я понял что это полная лажа и перешел на Arduino IDE, на чем я собственно пока и остановился.

Собираем стенд для отладки

Алгоритм

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

Значит так: замеры движения выполняются на интервалах времени (15 сек, 30 сек, 1 мин, 5 мин).
Замер выполняется раз в пол секунды. Если за интервал времени интервал задетектированного движения больше 10%, считается что движение есть, следствии чего модуль ПО выдает TRUE.
Если за интервал времени детектируется движение, то следующий интервал инкриминируется.
В случае пропажи движения, модуль ПО выдает TRUE до окончания интервала + этот же интервал. В случае пропажи движения на последнем интервале, модуль ПО выдает TRUE до окончания текущего интервала + (интервал - 1).
П.С. выражать свои мысли текстом или языком я толком не умею, не учитель, так что если что не поняли, то вряд ли смогу объяснить (вторую попытку делаю в видео).

Итог


Работа модуля ПО проверялось на светодиоде (с падением напряжения max. 2,8 В), токозадающий резистор 350 Ом.
Если взять за стоимость киловата 5 руб, то стоить данная конфигурация будет 8 рублей в год.

12 ноября 2016 г.
Textual description of firstImageUrl

Kingston DataTraveler R3.0 DTR30G2 32GB