Оглавление:
- Шаг 1. Ингредиенты и инструменты
- Шаг 2. Тщательно подготовьте корпус
- Шаг 3. Установка компонентов - часть 1
- Шаг 4: Установка компонентов - часть 2
- Шаг 5: Код - основные функции
- Шаг 6. Код - функции калибровки, управления, графического интерфейса, Google Assistant и служебных программ
- Шаг 7: часы Nixie и химер
Видео: Барометр настроения Nixie Clock: 7 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Незаметной жертвой "Прогресса" стал домашний барометр-анероид. В наши дни вы все еще можете найти образцы в домах людей старше девяноста, но миллионы других находятся на свалке или на ebay.
По правде говоря, барометр старой школы не помог сам по себе, будучи бесполезным в своей единственной работе. Даже если предположить, что он правильно откалиброван и работает должным образом, использование атмосферного давления для прогнозирования погоды или даже определения текущей погоды практически невозможно.
Между тем, в дополнение к внедрению круглосуточных сводок погоды в средствах массовой информации стали доступны сверхточные твердотельные датчики давления, температуры и влажности. Добавьте сюда процессор и дешевый ЖК-дисплей, и вы получите «домашнюю цифровую метеостанцию». Даже погодным ботаникам или людям, которые думают, что погода по телевизору или в Интернете - это правительственный заговор, барометр больше не нужен.
Все это обидно, потому что у меня остались теплые воспоминания о барометре, который был у нас в доме моего детства. Мой папа каждый день тщательно модулировал постукивание и устанавливал текущий индикатор чтения в мини-ритуале, который я стремился повторить, когда был старше, даже после того, как я понял, что это просто мерзавец мирового класса.
Вот как сделать обновленный барометр с аналоговым дисплеем, который не устраняет ни одного из недостатков оригинала, но имеет некоторые дополнительные функции, даже более бесполезные, чем то, с чего он начинался. Если вы посмотрите видео, вы поймете идею.
Учитывая скромные цели этого проекта, это довольно сложно - или, точнее, воспроизвести проект целиком - слишком сложно для одного учебного пособия. По этой причине я сосредоточусь на части барометра / барометра настроения, а в остальном я просто укажу вам правильное направление.
Шаг 1. Ингредиенты и инструменты
Для барометра / барометра настроения вам понадобятся:
- Барометр-анероид. Не должно работать. То, что нравится вашим эстетическим чувствам, более важно. Хотел бы я иметь тот из дома моего детства, но я думаю, что он на свалке. Получил замену на ebay за 15 долларов.
- Датчик давления.
- Модуль ESP8266 - я использовал NodeMCU.
- Подходящий шаговый двигатель и плата драйвера - ссылка ведет к пяти работам, но по цене их трудно превзойти. Этот двигатель имеет 4096 шагов за полный оборот, что дает достаточное разрешение для наших целей.
- Источник питания 5 В постоянного тока - минимум 1 А - для ESP8266 и двигателя. Я использовал комбинированный источник питания 12 В постоянного тока и 5 В постоянного тока, потому что он у меня уже был, и мне требовалось питание 12 В для часов Nixie (плюс еще 5 В для других элементов проекта).
- Как минимум три светодиода (для индикации тренда давления).
- LDR / фоторезистор.
- Разные расходные материалы, такие как перемычка, резисторы, термоусадочные трубки и т. Д.
- В большинстве случаев вы можете использовать оригинальный корпус барометра, который вы используете для размещения электроники. Я перепрофилировал корпус часов в стиле «Искусство и Ремесло», чтобы разместить как часы, так и барометр, поэтому корпус барометра мне не понадобился.
Что касается инструментов, вам понадобится паяльник, тепловой пистолет и несколько небольших ручных инструментов. Если вам нужно внести существенные изменения в корпус, вам пригодится набор электроинструментов.
Шаг 2. Тщательно подготовьте корпус
То, что вам нужно сделать, во многом зависит от используемого вами корпуса. Если вы используете футляр барометра, вам просто нужно придумать, как его разобрать и снять анероидный механизм. Указатель, скорее всего, установлен непосредственно на этом механизме, и необходимо принять меры, чтобы отсоединить указатель, не повредив его.
Мне предстояло еще немного поработать, потому что в моем корпусе часов все еще был старый (неработающий) часовой механизм.
Я почти ничего не знаю о механических часах, но мощные спиральные пружины подсказывали, что мне следует действовать осторожно. Тем не менее, когда вещь взорвалась, я был не готов. В одну секунду я откручивал, казалось бы, несущественный винт, в следующую раздался громкий хлопок, и воздух был наполнен пылью и мусором. Биты часов были повсюду, а сам корпус полностью разлетелся. Так же, как я представляю, когда взрывается настоящая бомба, на мгновение я не мог понять, что произошло. В наступившей оглушительной тишине я почти ожидал услышать далекий вой сирен. К тому же у меня сильно болела рука.
Урок первый: даже механизмы часов скромного размера могут хранить удивительно большое количество энергии.
Урок второй: если сомневаетесь, надевайте защитные очки! Мне повезло, в глаза ничего не летело, но, конечно, могло. Иногда просто задействовать старые защитные прицелы недостаточно (даже не уверен, что я это сделал). Моя рука была в порядке, я просто был младенцем.
После долгих склеек и зажимов я собрал корпус и был готов перейти к шагу 3.
Шаг 3. Установка компонентов - часть 1
Вам нужно найти способ установить двигатель так, чтобы вал выступал через циферблат ровно настолько, чтобы, когда указатель прикреплен, он скользил по лицу без помех. Это может быть немного сложнее, чем кажется на первый взгляд, потому что у большинства барометров на внутренней стороне стакана есть еще один указатель, который в старину использовался для записи текущего показания. Как объяснено ниже, этот указатель нам не понадобится, но его сохранение помогает сохранить первоначальный внешний вид устройства.
В любом случае наличие указателя текущего чтения означает, что существует предел того, насколько далеко «первичный» указатель может находиться от лицевой стороны циферблата.
В другом направлении указатель должен располагаться достаточно далеко от шкалы, чтобы просто очистить шайбу, которая обрамляет LDR, установленный на циферблате (см. Следующий шаг).
Что я сделал, так это установил циферблат и его раму на деревянную основу, а затем установил двигатель на основу с соответствующими прокладками. Первое изображение может помочь объяснить это, но вы можете придумать свою собственную аранжировку.
Одним из преимуществ использования корпуса часов или чего-то подобного по размеру является то, что есть место для внутренней установки источника питания. Для меня это было важно, потому что часы должны были стоять на каминной полке, подключенной к специально установленной мной розетке. Спрятать явно анахроничную «стенную бородавку» или кирпич SPS в этом месте было бы сложно, но это может не быть проблемой для вас.
Компоненты, не отмеченные на втором рисунке, относятся к частям проекта, связанным с часами и химерами (третий узел NodeMCU и связанная проводка находятся под печатной платой Nixie).
Размещение всего остального - в первую очередь датчика BMP180, платы драйвера двигателя и NodeMCU - не критично. Тем не менее, пока я не проложил соединительный провод от платы драйвера, двигатель иногда не работал должным образом. Не уверен, что там происходит, но если ваш мотор звучит забавно и / или не двигается плавно, вы можете попробовать переместить провода.
Чтобы избежать необходимости вручную записывать тенденцию давления (повышение, падение или постоянное), я включил три маленьких светодиода под циферблатом. Когда все три горят, барометр находится в режиме настроения. Я использовал «теплые белые» светодиоды, чтобы попытаться сохранить ощущение периода. Немодулированные, они были слишком яркими, если смотреть в лоб, но с некоторыми мощными ШИМ я получил тот вид, который искал. Текущий указатель чтения по-прежнему доступен традиционалистам.
Шаг 4: Установка компонентов - часть 2
Давайте разберемся с LDR на циферблате. Во-первых, какого черта нам это нужно?
Что ж, это мое решение проблемы дешевого шагового двигателя - хотя он может двигаться с точными шагами, ему не присуща способность знать, где он находится, кроме как по его начальному положению. Хотя теоретически я полагаю, что вы могли бы жестко закодировать это и отслеживать все последующие движения, я предположил (без реальной основы), что ошибки будут быстро закрадываться, особенно с учетом крупномасштабных движений, необходимых в «режиме настроения». Кроме того, вы бы столкнулись с отключением электроэнергии (записывать каждое движение в EEPROM не совсем практично).
Моей первой мыслью было ввести цикл калибровки при включении и переключении между режимом настроения и режимом барометра. Этот цикл приведет к срабатыванию микровыключателя в известной точке на циферблате. Но механическая реализация идеи переключателя показалась мне слишком сложной. Сам указатель слишком хлипкий, чтобы быть приводом, поэтому мне нужно было установить что-то еще на валу. Затем возникла проблема сохранения движения на 360 ° - одна из причин, по которой я выбрал шаговый двигатель, а не стандартный сервопривод. Я уверен, что, приложив немного больше изобретательности, чем я мог, можно заставить работать микропереключатель - или, возможно, есть готовое решение для датчика положения, - но я пошел другим путем.
Обратите внимание, что на изображении циферблата есть шайба, установленная в положении «один час». Эта шайба обрамляет LDR, подключенный к единственному аналоговому входу, доступному на NodeMCU. Когда барометр включен или переключает режимы, NodeMCU входит в цикл калибровки и просто отслеживает внезапное изменение уровня освещенности, вызванное перемещением задней части указателя над LDR. Любое дальнейшее движение индексируется от этой известной позиции. Мне пришлось немного повозиться с пороговыми значениями в коде, чтобы заставить это работать надежно, но как только это было сделано, я был приятно удивлен тем, насколько он был точным - постоянно возвращался к настройкам барометра в пределах 1% или 2% от ожидаемых значений.
Очевидно, что в полной темноте он не работает, но вы обычно не переключаете режимы. Если по какой-либо причине цикл калибровки не может быть завершен в течение установленного времени, он прекращает работу и мигает светодиоды тренда.
В любом случае, прелесть подхода LDR заключается в том, что его установка очень проста - просверлите на циферблате отверстие, достаточно большое для LDR, в месте, где оно будет закрыто задней частью указателя. Чтобы получить хорошее «уплотнение» между указателем и LDR, приклейте небольшую шайбу вокруг LDR и, если необходимо, измените хвостовую часть указателя (я использовал черную бумагу подходящей формы).
Шаг 5: Код - основные функции
Как выяснили другие, мне не удалось заставить стандартную библиотеку шаговых двигателей Arduino работать с этим двигателем и драйвером. К счастью, по этому поводу есть хорошее руководство с кодом, который действительно работает. Я использовал код в исходной публикации для базового степпинга, хотя в комментариях есть несколько предложений по оптимизации. Этот код не требует библиотеки.
Для обработки данных о давлении я использовал пример из библиотеки Sparkfun BMP180. Все, что мне нужно было сделать, это соединить это с моторным управлением.
Шаг 6. Код - функции калибровки, управления, графического интерфейса, Google Assistant и служебных программ
Первичная калибровка жестко запрограммирована. Чтобы быть в безопасности и учесть возможное перемещение барометра на другую высоту, вторичная калибровка и управление выполняются с помощью веб-сервера, запускаемого посредством связи NodeMCU и Websocket. Здесь вы найдете хороший источник информации об этом.
Однако, как демонстрирует видео, настоящий «вау» -фактор этого проекта, каким он есть, - это управление через Google Assistant / Google Home. Здесь есть инструкция для тостера GA (работающего на Raspberry Pi3). Не волнуйтесь, вам не нужно использовать тостер за 400 долларов в качестве корпуса.
Команды передаются через IFTTT и Adafruit IO в NodeMCU. Хороший ресурс по этому поводу здесь. Есть и другие, более сложные способы взаимодействия с вашим Google Ассистентом, но для этого проекта этот очень простой подход отлично работает.
Наконец, код включает в себя несколько чрезвычайно полезных служебных функций (беспроводное обновление, многоадресный DNS, Wifi Manager), которые я начал включать во все свои проекты на основе ESP8266.
Весь код этого проекта (включая часы Nixie и элемент управления химером) находится на Github здесь. Я оставил изображения, которые использовал в файлах HTML / CSS, поэтому он работает из коробки (надеюсь) - вам просто нужно добавить свои собственные данные учетной записи Adafruit IO.
Шаг 7: часы Nixie и химер
Часы Nixie Clock управляются отдельным NodeMCU и используют лампу Nixie и модуль драйвера, разработанный в виде щита Arduino, доступный здесь. Версия по ссылке включает модуль GPS для получения времени. Мой щит (более ранняя версия) не имеет модуля GPS, но я использую Node MCU для получения времени из Интернета, что в некотором смысле лучше.
Схема управления и графический интерфейс для часов имеют больше параметров конфигурации, но в остальном очень похожи на барометр. Здесь есть небольшое совпадение в том, что светодиоды Nixie реагируют на входные сигналы настроения барометра (через тот же канал ввода-вывода Adafruit).
Из обломков оригинального часового механизма я собрал достаточно бит, чтобы построить химерный механизм, приводимый в действие третьим NodeMCU (эй, они всего по 6 долларов каждый) и еще одним шаговым двигателем. Все, что я добавил, - это «интерфейс» между оригинальным механизмом и двигателем. «Интерфейс» заключен в кавычки, потому что он состоит только из соединителя пули с двумя гвоздями, вбитыми в него под прямым углом и вставленными на вал двигателя. Каждые четверть оборота этой штуковины приводят к одному удару химера. Опять же, схема управления химерами похожа на барометр, и все три веб-сервера связаны друг с другом, чтобы все выглядело более бесшовно, чем есть на самом деле.
Часы и химеры NodeMCU работают полностью независимо друг от друга, но благодаря чудесам Интернет-хронометража всегда идеально синхронизированы.
Рекомендуемые:
Напечатанная на 3D-принтере светодиодная лампа для настроения: 15 шагов (с изображениями)
Светодиодная лампа для настроения с 3D-печатью: я всегда был очарован лампами, поэтому возможность сочетать 3D-печать и Arduino со светодиодами была тем, что мне нужно было реализовать. Концепция очень проста, а результат - один из самых приятных визуальных эффектов. впечатления, которые вы можете передать
Лампа настроения IOT: 8 шагов (с изображениями)
IOT Mood Lamp: лампа IoT Mood, созданная с использованием Node MCU (ESP8266), светодиодов RGB и Jar. Цвета лампы можно изменить с помощью приложения Blynk. Я выбрал Мемориальную статую Тони Старка, которую напечатал на 3D-принтере, чтобы вставить в эту лампу. Вы можете взять любую готовую статуэтку или можете
Современная лампа настроения RGB: 7 шагов (с изображениями)
Современная лампа для настроения с RGB-подсветкой: хотите добавить стиля своему столу? Мы накрыли вас лампой для настроения, сделанной из деталей, которые вы легко найдете в гараже или сарае. Наша лампа настроения отличается эстетичным и современным дизайном, позволяя вам полностью контролировать цвет
Лампа для настроения RGB Icosahedron: 9 шагов (с изображениями)
RGB Icosahedron Mood Lamp: геометрические формы всегда привлекали наше внимание. Недавно наше любопытство привлекла одна такая удивительная форма: Икосаэдр. Икосаэдр - это многогранник с 20 гранями. Разных форм икосаэдров может быть бесконечно много, но
Барометр Интернета вещей: 5 шагов (с изображениями)
Барометр Интернета вещей: измеряйте и регистрируйте температуру и атмосферное давление с помощью этого барометра Интернета вещей. Я хочу представить барометр Интернета вещей. Он позволяет измерять и хранить данные о температуре и давлении на платформе Интернета вещей Adfruit. Я опубликовал аналогичный проект, который