Показаны сообщения с ярлыком arduino. Показать все сообщения
Показаны сообщения с ярлыком arduino. Показать все сообщения
12 октября 2017 г.
Textual description of firstImageUrl

Чиним Arduino Nano V3.0

Отдали в ремонт Arduino Nano V3.0 с miniUSB разъемом на базе ATmega328 и конвертером USB - UART CH340G, со словами: перепутал полярность питания, теперь не работает.
При собственноручной проверке "мертвость" объекта подтвердилась.
Вооружившись схемой на плату, у меня в первую очередь вызвал подозрения диод D1 (после него не было напряжения). Замкнув пинцетом диод, светодиод питания загорелся.
Arduino, Arduino nano, Ардуино
Сбрасываем феном диод
Arduino, Arduino nano, Ардуино
Замыкаем площадки из под диода
Arduino, Arduino nano, Ардуино
Все заработало
В конечном итоге дополнительно проверил связь с ПК:
void setup() {
  Serial.begin(9600);
}
void loop() {
  Serial.print("Test");
  delay(1000);
}

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, то в первом случае мне необходимо менять датчики: датчик движения дополню ультразвуковым, а датчик освещения заменю на цифровой, т.е. я буду получать данные в люксах и получать количественную характеристику.

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

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

Итог

Библиотека для датчика освещенности
Обновленная библиотека для датчика движения (немного оптимизирован)
Скетч, где задействован и датчик освещенности и датчик движения
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 рублей в год.