4 декабря 2016 г.
Textual description of firstImageUrl

Рукожопим вентиляцию на балконе на базе датчика температуры DS18b20 и Arduino UNO R3 MEGA328P

Проектирую элемент "умного дома": охлаждение (проветривание) балкона (может пригодиться для любых других помещений).

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

Введение

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

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

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

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

Схема без реле, ну там все просто, сами сообразите

Алгоритм

О причинах я рассказываю в видео.

Замеры выполняются на 5-минутных интервалах, по окончании 30-минутных "отрезков" времени алгоритм выносит решение о включении или выключении вентиляторов. Дабы избежать дребезга, порог для включения 29 градусов, для выключения 25.
Если вентиляторы включены и подошел к концу, то выполняется анализ тенденции изменения температуры:
  • если не меняется или растет, то нет смысла тратить энергию, вентиляторы выключаются и повторная попытка делается через час
  • если снижается, то выполняется анализ тенденции снижения (подробнее в видео)

Библиотеку для датчика DS18b20 я взял в интернете и "перепилил" ее почти полностью, выбросив все лишнее и оставив только нужное, для этой конкретной модели.

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


22 октября 2016 г.
Textual description of firstImageUrl

Вскрытие упаковки (Sven EASY SEE-122 DD)

Вскрытие упаковки телевизионного приемника DVB-T2 Sven EASY SEE-122 DD


Ловит нормально, каналы быстро переключает, но пультом пользоваться невозможно: вскрыть защелку пульта руками невозможно, очень тяжело ловится ИК сигнал от пульта и дело не в батарейках. Во общем приемник отличный, но пультом пользоваться можно только матерясь и сожалея о покупке.
15 октября 2016 г.
Textual description of firstImageUrl

Почему на youtube так много лажи

Немного правды об алгоритмах youtube.

А причина на самом деле в нас, мы реагируем на эту лажу.

Если мы откроем любой ролик, будучи зарегистрированным на youtube, мы увидим 3 основных элемента для продвижения этого ролика в топ youtube:
  1. лайк/дизлайк
  2. комментарий
  3. время просмотра ролика
Так вот мои рекомендации, для того чтобы минимизировать мусор в тренде youtube:
  1. Если вы зарегистрированный пользователь и видите что ролик имеет смысловую нагрузку для вас, то вашим лайком или дизлайком вы скорректируете свои личные рекомендации, однако если вы видите что в ролике полная херота, то ни в коем случае не ставьте оценку ролику, тем самым вы не проявляете реакцию на этот ролик, а это самое худшее, что можно сделать с точки зрения алгоритмов youtube

    Все дело в том что youtube это площадка для рекламодателей, а цель всех трендовых блогеров (они же распространители хери в интернете) это нарубить бабла, им плевать что выпустить, им важно вызвать общественную реакцию, а общественная реакция с точки зрения площадки для рекламы, это потенциальный поток бабла. Поэтому если вы видите лажу в интернете, в любом месте, в том числе на youtube, просто игнорируйте это.
  2. Комментарии этот как лайк или дизлайк, это проявление активности. Для алгоритмов youtube не имеет значения поставили вы лайк, или дизлайк, или комментарий, это проявление активности и тем самым вы продвигаете ролик в топ
  3. И последнее, это время просмотра в частности время удержания аудитории. Если вы видите что на экране творится какая-то жесть, немедленно выключайте ролик. С точки зрения алгоритмов youtube не маловажный параметр так называемый "удержания аудитории", т.е. просмотр видео в % отношении от его длительности. И чем больше этот процент, тем более вы продвигаете этот ролик.