По сравнению с предыдущими частями увлекательного повествования о создании уникального устройства эта часть получилась не такой уж и объемной. В ней я расскажу о том, как от макетной платы проекта измерения температуры, влажности, атмосферного давления и импульсов газового счетчика, перейти к законченному продукту. Конечно, «продукт» наименование применено как абсолютно условное. Все же делалось все исключительно для себя.
Я не отрицаю, что для некоторых проектов вполне допустимо использование микроконтроллера с макетной беспаячной платой на постоянной основе, а все датчики и индикаторы вполне могут болтаться на соплях проводах. Но, как я уже писал ранее, применение макетной платы может вести к ненадежному контакту и, как следствие, к некоторым, трудно отлавливаемым, проблемам с устройством как таковым. В частности, у меня есть веские причины подозревать, что уход сенсоров DHT22 в положение -5 может происходить именно по причине использования макетной платы, а не из-за выходящего из строя контроллера. В любом случае после сборки всего устройства на плату с пайкой и в корпусе, проблема с DHT22 исчезла. Хотя попутно была заменена и сама плата с микроконтроллером на новую, еще не измученную многочисленными прошивками. Поэтому достоверно я ничего не могу утверждать.
Плата
Предлагаю начать не с корпуса, а с платы, которая будет служить интерфейсом для подключения всех датчиков и индикаторных светодиодов. Используемая плата микроконтроллера WeMos D1 R2 идентична по размеру и расположению выводов с Arduino Uno R3. Для самой платы D1 R2 отсутствуют специальные распаячные платы, поэтому я взял одну из таких плат как раз для Uno R3. Такая распаячная плата — нечто промежуточное между макетной платой для втыкания проводков и настоящей печатной платой. В ней есть металлизированные отверстия для впайки деталей, но практически нет дорожек. Отсутствие последних должно восполняться самим пользователем при помощи припаиваемых проводков.
В принципе, в далекие времена именно так и собирались первые компьютеры. Радиолампы, детали, платы с дырками и великое множество кабеля. Разобраться с которым, в случае какой-то ошибки, мог только очень опытный или очень пьяный электронщик. Так и здесь, берем плату, впаиваем в свободные отверстия такие детали, как колодки для подключения светодиодов и внешних датчиков, резисторы. Повинуясь инстинкту паяльника, на плату я запаял в том числе и цифровой датчик температуры и атмосферного давления. Все равно его задача измерять температуру воздуха внутри корпуса устройства. Но заменить его, в случае выхода из строя, без паяльника будет непросто.
Для соединения всех элементов на плате между собой и соответствующими выходами платы микроконтроллера используется обыкновенный монтажный провод. Такой провод уже химически облужен и припаивается без необходимости предварительного покрытия припоем. Монтажный провод хорош еще и тем, что он достаточно гибок, а его изоляция не плавится при неквалифицированной пайке.
Я рекомендую по возможности использовать провод адекватного сечения и ограничивать длину самого провода между элементами на плате. Поскольку элементы установлены на лицевой стороне, то все соединительные провода спрятаны со стороны торцевой. При достижении определенной плотности размещения элементов на нижней стороне постепенно нарастает степень хаоса, проводки перепутываются и зачастую понять, что там и куда, весьма затруднительно. В таком случае рекомендуется использовать провод в изоляции разного цвета. Например, для цепей питания применять красный кабель, для «земли» черный, а для прочих элементов применять отличные от базовой расцветки.
При пайке платы от Arduino для WeMos следует учитывать, что у WeMos расположение выводов немного иное, хотя механически они и одинаковые, нежели у Arduino. Отличается нумерация. Более того, плата для Arduino Uno предназначена для 5В питания и именно 5В разведены по плате, а электроника WeMos использует 3.3В. Тут придется либо разводить требуемое напряжение отдельно к каждому элементу, либо отрезать дорожки от 5В и припаивать туда 3.3В. Я предпочел пойти по первому пути.
В целом применение подобной платы для размещения разъемов и радиодеталей позволяет при необходимости легко заменять плату контроллера. Достаточно только расцепить разъемы. Все остальное остается неизменным на плате. С другой стороны, применение разъемов и колодок позволяет заменять внешние элементы устройства, светодиоды и датчики без необходимости что-то отпаивать от самой платы. Но в примененном решении есть и минус — вся конструкция становится выше, ведь плата с деталями вставляется в плату контроллера, а еще ведь присутствуют и разъемы.
Корпус
Корпус для самодельных устройств — уязвимое место любых самодельных решений. Если собрать работоспособное устройство и написать для него грамотное программное обеспечение под силу многим умельцам, то собрать корпус, да еще и прилично выглядящий, удается далеко не каждому. Проблема тут в том, что собираемые устройства обладают различными габаритами, имеют не стандартизированные выводы, а для изготовления подобающего корпуса из пластика или другого материала, требуется специализированное оборудование. Хотя бы завалящий 3D-принтер.
Но в отсутствие собственных или доступных производственных мощностей приходится выкручиваться. Некоторые авторы используют корпуса от печенья, мобильных телефонов, тостеров, видеомагнитофонов и прочей разной радости. Самые же одаренные применяют подручные материалы и конструируют нечто невообразимое, выжигают по дереву и покрывают лаком. Я не был готов к такому подвигу, да и лаковые миниатюры в бойлерной будут смотреться не совсем уместно.
Поэтому в качестве корпуса для устройства был выбран корпус для радиоэлектронной аппаратуры с прозрачной крышкой. Корпус изготовлен из приличного пластика, герметичный и вполне вписывается в интерьер бойлерной где-то рядом с камерой видеонаблюдения и стойкой для остатков кабелей питания. Герметичность корпуса никакой роли не играет, поскольку корпус будет иметь множество отверстий для датчиков, кабеля питания. А вот прозрачная крышка позволит визуально наблюдать, что там и как унутри.
Скажу сразу. При сборке корпуса возникли определенные трудности. Во-первых, желательно корпус по размерам брать с запасом. Как ни крути, а все проводочки, все кабелёчки и прочие платки занимают место в корпусе и там становится банально тесно. Во-вторых, при проделывании отверстий в корпусе для выводов кабелей, нужно соблюдать осторожность, поскольку его можно поцарапать, можно наделать отверстий не там, да и, вообще, плавящийся под сверлом пластик может испортить весь глянцевый вид.
Плату микроконтроллера я решил установить на специальные штанги с внешней и внутренней резьбой, которые задумал ввинтить в корпус. Разметив нужные места и просверлив дырочки с диаметром меньше резьбы на штангах, я приступил к вкручиванию оных в корпус. Но то ли резьба на штангах не предполагает функции самонарезки, то ли вкручивать их очень неудобно, но процесс активно не хотел продвигаться. Посему было принято решение впаять штанги в корпус.
В полном соответствии с замыслом, штанги нагревались в огне газовой горелки и аккуратно впаивались в корпус. С первой попытки ничего толком впаять не удалось. Штанги я слишком перегревал, они проплавляли корпус насквозь и никак не хотели фиксироваться. А самое неприятное — нарушилась геометрия расположения штанг и прикрутить плату оказалось возможным только одним винтом. Поэтому процедуру пришлось повторить, отступив немного в сторону. Но даже и тут в конечном итоге плата была прикручена всего двумя винтами из четырех. На надежности это никак не сказалось, а вот правильным решением было бы прикручивание штанг гайкой с обратной стороны. Но такая умная мысль пришла ко мне только потом, когда штанги уже были впаяны, а из далекого Китая добрался богатый набор со штангами различной длины, винтами и гайками.
Внешние датчики и светодиоды
Все внешние датчики и светодиоды я подключил через разъемы типа «шпынек». Каждый датчик и каждый светодиод — отдельно, дабы не сливать в кучу все провода с обратной стороны распаянной платы. Для датчика температуры и влажности призванного измерять оные в помещении я сплел простую косичку из монтажного провода и оборудовал ее с обеих концов комплементарными разъемами. Косичка помогает избежать излишней путаницы в проводах.
Все светодиоды были оснащены индивидуальными кабелями, изготовленными по аналогичной технологии. А вот с датчиком для измерения влажности и температуры на улице немного сложнее. Кабель к датчику следовало вывести через стену наружу, а там довести до нужной точки. В качестве подобного кабеля я использовал витую пару, предназначенную для прокладки на открытом воздухе вне помещений. Подобный кабель, в отличие от обычной витой пары, имеет внешнюю оболочку из полиэтилена, материала устойчивого к внешней среде и в том числе к ультрафиолетовому излучению.
Но такое решение трудно назвать идеальным. Обычная витая пара содержит четыре пары проводников, а мне, для подключения датчика DHT22, нужно всего 3 провода. Остальные же проводники так и остались в кабеле неиспользованными. Внешняя оболочка из полиэтилена, конечно, хорошо защищает среду передачи, но она весьма жесткая и может принести некоторое количество проблем до момента установки.
Общая длина кабеля к датчику у меня составила чуть более полутора метров. На таком расстоянии витая пара работает идеально, не доставляя никаких хлопот. Но сам датчик DHT22 пришлось поместить в отдельный кожух, так называемую распаячную коробку. Коробка небольшого размера имеет четыре «гермо» вывода. Нижний я удалил, установив туда сетку для фильтрации желающих поселиться в уютном домике насекомых. А через один из боковых выводов я пропихнул кабель к датчику DHT22. Я не зря поставил в кавычки слово гермо. К сожалению, недорогие отечественные коробки, при общем допустимом качестве, оснащаются неверно сконструированными гермозаглушками. К сожалению, нормально пропустить кабель, с соблюдением герметичности, через них нельзя. Впрочем, герметичность и не требуется.
Сама коробка с внешним датчиком установлена под крышей так, чтобы на нее не капал дождь и не светило Солнце прямыми лучами. Для крепления к стене я использовал «жидкие гвозди», так не портится стена, а при необходимости можно коробку удалить. Жидкие гвозди держат, в принципе, надежно, даже при неблагоприятных уличных условиях.
Небольшая рекомендация по кабелю с импульсами от газового счетчика. Его концы лучше всего облудить. Для передачи импульсов, как правило, используется кабель типа «лапша» с многожильным гибким проводом небольшого сечения. Тоненькие жилки которого очень быстро окисляются, истираются и возникают проблемы с приемом сигнала.
PS. Светодиоды, кстати, установлены в специальные окантовки.
Ознакомиться со всем циклом статей можно по следующим ссылкам:
Измеряем температуру, влажность и отслеживаем показания газового счетчика с использованием ThingSpeak. Часть 1. Используем Arduino Uno R3.
Измеряем температуру, влажность и отслеживаем показания газового счетчика с использованием ThingSpeak. Часть 2. Используем ESP8266.
Измеряем температуру, влажность и отслеживаем показания газового счетчика с использованием ThingSpeak. Часть 3. Собираем все вместе.
Измеряем температуру, влажность и отслеживаем показания газового счетчика с использованием ThingSpeak. Часть 4. Обрабатываем значения.
Измеряем температуру, влажность и отслеживаем показания газового счетчика с использованием ThingSpeak. Часть 5. Избавляемся от сенсоров DHT.