Оглавление:

АтмоСкан: 7 шагов (с изображениями)
АтмоСкан: 7 шагов (с изображениями)

Видео: АтмоСкан: 7 шагов (с изображениями)

Видео: АтмоСкан: 7 шагов (с изображениями)
Видео: 99 (Every) Giant Jaegers In Pacific Rim Who Are Perfect Kaiju Killers - Explored 2024, Сентябрь
Anonim
Image
Image
Датчики
Датчики

**********************************************************************************************

НОВОСТИ

Зайдите на мой GitHub, чтобы получить:

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

- Проект PCB v2 теперь опубликован вместе с руководством по легкому применению изменений к платам V1.0.

- Файлы САПР для полного корпуса

Новый корпус выглядит как на картинке выше… ну, без резинки

****************************************************************************************

ATMOSCAN - это мультисенсорное устройство, предназначенное для мониторинга качества воздуха в помещениях. Несмотря на то, что было опубликовано множество проектов, имеющих аналогичное назначение, этот представляет собой полную систему в компактном, автономном корпусе, который суммирует их все. Он имеет цветной ЖК-дисплей, учитывает время и местоположение, управляется жестами и отправляет сообщения в ThingSpeak (или другие) через MQTT, но может правильно обрабатывать отключенные операции и повторное подключение. Благодаря встроенной перезаряжаемой батарее он работает целый день при отключении от сети.

Он использует многозадачную кооперативную структуру и очень быстро реагирует на ввод данных пользователем при выборке датчиков, обработке пользовательского интерфейса и отправке сообщений в MQTT. На самом деле он немного выживает из крошечного ESP8266. Это достигается за счет интеграции ряда библиотек с открытым исходным кодом и использования веб-служб Интернета.

Кредиты на библиотеки принадлежат ряду участников, см. Ниже.

Музыка в видео можно найти ЗДЕСЬ

Шаг 1: датчики

Atmoscan измеряет ряд переменных:

  • Температура
  • Влажность
  • Давление
  • СО2
  • CO
  • NO2
  • ЛОС (Летучие органические соединения, индикатор качества воздуха)
  • PM 01
  • PM25
  • PM10
  • Радиация

Для этого он объединяет несколько дискретных датчиков.

  • BME280 (например, ссылка)
  • PMS7003 (например, ссылка)
  • MH-Z19 (например, ссылка)
  • HDC1080 (например, ссылка)
  • MiCS6814 (ссылка)
  • MP503 (ссылка)
  • Трубка Гейгера LND-712 (Ссылка, я нашел ее в Европе здесь Ссылка или здесь Ссылка) с высоковольтным модулем (Ссылка)

Таблицы данных ЗДЕСЬ.

Шаг 2: Электроника

Электроника
Электроника
Электроника
Электроника
Электроника
Электроника

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

Пока я делал прототип с отдельными компонентами, для окончательной версии я разработал специальную плату, которая объединяет все функции и предоставляет аккуратные разъемы для датчиков и светодиоды для индикации состояния (синий = источник питания подключен; красный = зарядка).

Файлы печатной платы Eagle доступны ЗДЕСЬ.

В частности, плата объединяет:

  • Схема зарядки на базе MAX8903A (ссылка)
  • Логика включения / выключения нажатием одной кнопки
  • Модуль ESP12E
  • Логика программирования
  • Переключатель уровня
  • Драйвер подсветки ЖК-дисплея
  • Повышающий / понижающий стабилизатор напряжения 3.3В на базе Pololu S7V8F3 (ссылка)
  • Повышающий стабилизатор напряжения 5В на базе Pololu U1V10F5 (ссылка)
  • Датчик уровня топлива LiPo на базе SparkFun TOL10617 (ссылка)

Дисплей - 2,8-дюймовый TFT 320x240 на базе микросхемы ILI9341 (ссылка).

Датчик жестов основан на микросхеме PAJ7620U2 (Link), намного лучше, чем дешевый APDS9960, который генерирует непрерывные прерывания и не может работать через оргстекло.

Датчики довольно энергоемкие, поэтому, чтобы гарантировать по крайней мере 24 часа автономной работы, я сделал комплект с 3 батареями LiPo 105575 емкостью 5000 мАч (ссылка). На самом деле двух могло хватить. Зарядное устройство MAX8903 изо всех сил пытается зарядить получившуюся батарею емкостью 15 000 мАч.

ПРИМЕЧАНИЯ - КАК ВИДЕТЬ НА ИЗОБРАЖЕНИЯ:

  • Показаны положения разъемов.
  • Слот для SD-карты необходимо отсоединить от дисплея, если вы хотите, чтобы он поместился в корпусе.
  • На плате нужно сделать небольшую выемку, чтобы не мешать работе вентилятора (выемки в моде после iPhone X). Исправлено в PCB V2

Аббревиатуры разъемов на печатной плате следующие:

  • PRS: датчик барометрического давления (на основе BME280) ПРИМЕЧАНИЕ: устанавливается непосредственно на печатной плате.
  • VOC: Grove - Датчик качества воздуха v1.3 (на основе MP503)
  • TMP: высокоточный цифровой датчик влажности и температуры (на основе HDC1080)
  • PMS: PMS7003 Цифровой датчик концентрации частиц
  • ГАЗ: Grove - Многоканальный датчик газа (на основе MiCS6814)
  • GES: Grove - Датчик жестов (на основе PAJ7620U2)
  • РАД: трубка Гейгера (через высоковольтный модуль питания драйвера зонда Гейгера, 400 В / 500 В с цифровым импульсным выходом TTL)
  • CO2: инфракрасный датчик газа CO2 MH-Z19
  • U1V10F: повышающий стабилизатор напряжения 5 В на базе Pololu
  • U1V10F5 S7V8V3: повышающий / понижающий стабилизатор напряжения 3.3 В на базе Pololu S7V8F3
  • TOL10617: Датчик уровня топлива Sparkfun LiPo
  • ЖК-дисплей: дисплей ILI9341

Шаг 3: корпус

Вложение
Вложение
Вложение
Вложение
Вложение
Вложение

Корпус создан на основе кубического контейнера 10х10х10 см из оргстекла, который я купил на ebay и предназначался для совершенно другого использования. В нем были хорошие вентиляционные отверстия, которые и требовались. В принципе, объема было достаточно, чтобы упаковать весь набор, за исключением того, что это было непросто… некоторые ранние попытки, основанные на макетах из картона, с треском провалились, поэтому я сдался и потратил несколько часов на 3D CAD, а внутренние опоры были вырезаны лазером. Внутреннее пространство разделено на отсеки, чтобы датчик температуры находился как можно дальше от внутренних источников тепла. Внешний корпус изготовлен из материала толщиной 3 мм, а верх - из листов толщиной 2 + 1 мм. Этот трюк позволил покрыть датчик жестов акрилом толщиной всего 1 мм, и этого достаточно, чтобы он заработал.

Некоторые модификации приходилось делать с помощью ручных инструментов на оригинальном корпусе, таких как вентилятор, переключатель и отверстия для USB. Тем не менее результат был достойным!

Файлы САПР находятся ЗДЕСЬ.

Шаг 4: Механическая сборка

Механическая сборка
Механическая сборка
Механическая сборка
Механическая сборка
Механическая сборка
Механическая сборка

Упаковка очень плотная, но, благодаря 3D-дизайну, при сборке у меня было немного сюрпризов.

Циркуляция воздуха (сверху вниз) обеспечивается небольшим вентилятором. Купив приличное количество на Aliexpress / eBay, я понял, что шум дешевых вентиляторов невыносим для домашнего устройства. В итоге я купил довольно дорогой, медленно вращающийся Papst 255M (Link) и запитал его менее 5 В через пару диодов. Результат довольно хороший и достаточно тихий, чтобы остаться незамеченным (даже одобрено женой, самая сложная сертификация).

Шаг 5: Программное обеспечение

Программное обеспечение
Программное обеспечение
Программное обеспечение
Программное обеспечение
Программное обеспечение
Программное обеспечение
Программное обеспечение
Программное обеспечение

Архитектура программного обеспечения основана на объектно-ориентированной структуре, которая запускает несколько (совместных) процессов, которые обрабатывают пользовательский интерфейс, датчики и MQTT. Он учитывает местоположение и время, но может обрабатывать отключение / повторное подключение к WiFI.

Фреймворк открыт и может управлять любым количеством экранов, если их код и ресурсы помещаются во флэш-память. Платформа приложения обрабатывает жесты и передает их на экраны для дальнейшей обработки или отмены, если это необходимо. Фреймворк управляет следующими жестами:

  • Проведите пальцем влево / вправо - сменить экран
  • (Палец) Вихрь по часовой стрелке - Поверните экран
  • (Палец) Вихрь против часовой стрелки - вызов экрана настройки
  • (Рука) From far to close - Отключить дисплей

Экраны наследуются от базового класса и управляются с помощью следующей модели событий:

  • activate - срабатывает один раз при создании экрана
  • update - периодически вызывается для обновления экрана
  • deactivate - вызывается один раз перед закрытием экрана
  • onUserEvent - вызывается при срабатывании датчика жестов. Позволяет отвечать, а также отменять обработку событий по умолчанию, например отменить проведите пальцем, чтобы сменить экран

Каждый экран заявляет о своих возможностях, предоставляя следующую информацию:

  • getRefreshPeriod - как часто экран нужно обновлять
  • getRefreshWithScreenOff - если экран хочет обновиться даже при выключенной подсветке. например для графиков
  • getScreenName - имя экрана
  • isFullScreen - полностью управляйте дисплеем или разрешите верхнюю панель с датой / временем / местоположением / датчиком заряда батареи / датчиком Wi-Fi

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

В настоящее время в Atmoscan реализованы следующие экраны:

  • Значения датчиков
  • Метр Гейгера / полулогарифмическая диаграмма
  • Состояние системы
  • Журнал ошибок
  • Метеостанция
  • Самолет-корректировщик
  • Настраивать
  • Низкий заряд батареи

Экраны настройки позволяют настроить учетные данные Wi-Fi, каналы MQTT, сервер системного журнала.

НОВИНКА в версии 2.0: все ключи веб-служб теперь можно настраивать через портал конфигурации. Единственное значение, которое все еще жестко запрограммировано, - это пароль OTA (ATMOSCAN в верхнем регистре).

ПРИМЕЧАНИЕ 1: Первое программирование должно быть выполнено с помощью кабеля USB-Serial, подключенного к разъему для программирования. Поскольку последовательный порт занят датчиком, отладка и программирование таким образом нецелесообразны после сборки, поскольку для этого потребуется отсоединить датчик. Поэтому программное обеспечение поддерживает отладку SYSLOG и обновления OTA.

ПРИМЕЧАНИЕ 2. Размер двоичного файла ATMOSCAN превышает 700 КБ, и ArduinoOTA требует, чтобы пространство программы было как минимум в два раза больше размера изображения, что исключает вариант «4M (3M SPIFFS)». Однако стандартный вариант «4M (1M SPIFFS)» также не подходит, так как раздела SPIFFS будет недостаточно для графических ресурсов, связанных с метеостанцией, самолет-корректировщиком и для файла конфигурации. Поэтому для решения этой проблемы была создана специальная конфигурация «4M (2M SPIFFS)». Объяснение здесь.

Документация и полный исходный код доступны здесь.

КРЕДИТЫ ВКЛЮЧАЮТ КОД И БИБЛИОТЕКИ ОТ

  • Адафрут
  • Аркао
  • Bblanchon
  • Бодмер
  • ClosedCube
  • Gmag11
  • Knolleary
  • Lucadentella
  • Виден
  • Сквикс78
  • Цапу
  • Волшебник97

ИНТЕГРАЦИЯ ВЕБ-УСЛУГ ОТ

  • Adsbexchange.com
  • GeoNames.org
  • Google.com
  • Mylnikov.org
  • Timezonedb.com
  • Wunderground.com

Шаг 6: Сделайте лучше

Сделать его лучше!
Сделать его лучше!

Результат совсем неплохой! Программное обеспечение выглядит хорошо и надежно, хотя его можно расширить за счет новых функций и, возможно, немного подправить, чтобы сделать структуру приложения действительно пригодной для повторного использования в других проектах. Калибровка некоторых датчиков невелика, но потребуется лабораторное оборудование. Время дорого, а у меня его мало, поэтому прогресс был медленным. К тому времени, как я закончил, стала доступна достойная поддержка ESP32. Если бы я начал это сейчас, я бы использовал его и интегрировал внешние датчики через bluetooth.

Кто угодно?

ПРИМЕЧАНИЕ: у меня все еще есть несколько печатных плат, поэтому, если кому-то интересно, они доступны по номинальной / почтовой цене.

Шаг 7: вопросы и ответы

Вопросы и Ответы
Вопросы и Ответы
Вопросы и Ответы
Вопросы и Ответы

Прежде всего, СПАСИБО за исключительно положительные комментарии. Честно говоря, я не ожидал такого большого интереса.

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

Я нашел в задней части ящика 8 доступных печатных плат - и они отправляются в Бельгию, Германию, Индию, США, Канаду, Великобританию, Австралию. Ух ты, 3 континента! Удивительный.

Что я должен указать на странице конфигурации ATMOSCAN?

На странице конфигурации Atmoscan требуются следующие параметры:

  • SSID и пароль сети Wi-Fi, к которой вы хотите подключиться.
  • MQTT-сервер, который вы используете. Например, я использую mqtt.thingspeak.com
  • Строка подключения для используемых тем MQTT. Например, темы MQTT Thingspeak имеют следующий формат: каналы / ИДЕНТИФИКАТОР КАНАЛА / публикация / WRITE-API (ПРИМЕР: каналы / 123456 / публикация / 567890)
  • Сервер системного журнала: IP-адрес сервера системного журнала, который вы используете для ведения журнала.
  • Ключ Google для Статического API Карт. Получите ключ на https://console.cloud.google.com/apis/dashboard. Создать проект; API, который использует Atmoscan, - https://maps.googleapis.com/maps/api/staticmap. Создайте ключ для этого API в только что созданном проекте Google, используйте его здесь
  • Погода Подземный ключ. Создайте учетную запись на www.wunderground.com, перейдите в WEATHER API (ссылка внизу главной страницы, перейдите в НАСТРОЙКИ КЛЮЧЕЙ, сгенерируйте ключ, используйте его здесь
  • Аккаунт Geonames. Создайте учетную запись на https://www.geonames.org/, дайте ему возможность использовать бесплатные веб-службы и укажите здесь имя пользователя.
  • Ключ TimeZoneDB. Создайте аккаунт на https://timezonedb.com/, создайте ключ, поместите его сюда

Как мне настроить Thingspeak?

Вам нужно 3 канала Thingspeak. Поля используются следующим образом:

Поля КАНАЛА 1

  1. ТЕМПЕРАТУРА
  2. ВЛАЖНОСТЬ
  3. ДАВЛЕНИЕ
  4. PM01
  5. PM2,5
  6. PM10
  7. Цена за тысячу показов
  8. ИЗЛУЧЕНИЕ

КАНАЛ 2 поля

  1. CO
  2. СО2
  3. NO2
  4. ЛОС

КАНАЛ 3 поля (системный канал)

  1. ВРЕМЯ В МИНУТАХ
  2. БЕСПЛАТНАЯ КУЧА В БАЙТАХ
  3. WIFI RSSI (СИГНАЛ В DBM)
  4. НАПРЯЖЕНИЕ БАТАРЕИ
  5. LINEAR SOC (BATTERY STATE OF CHARGE% - линейный расчет, пропорциональный напряжению)
  6. ИСХОДНЫЙ SOC (СОСТОЯНИЕ ЗАРЯДА АККУМУЛЯТОРА,% - по данным датчика. По показаниям датчика. ПРИМЕЧАНИЕ: датчик показывает 0% при достижении 3,6 В, в то время как батареи могут быть разряжены немного дальше, скажем, выше 3 В. Нижний предел, при котором ATMOSCAN выключается, это #define в файле globaldefinitions.h)
  7. ТЕМПЕРАТУРА СИСТЕМЫ (от BME280, установленного непосредственно на плате)
  8. ВЛАЖНОСТЬ СИСТЕМЫ (от bme280, установленного непосредственно на плате)

Печатная плата очень компактная. Как припаять SMD-устройства, особенно микросхему MAX8903A?

Во-первых, я предлагаю вам спросить себя, хотите ли вы попасть в SMD или это разовый вопрос - в последнем случае, возможно, попросите кого-нибудь сделать это за вас. Если вы хотите принять вызов SMD, вложите немного и приобретите подходящие инструменты (припой, флюс, небольшой утюг изопропилового спирта, горячий пистолет, пинцет, дешевую USB-камеру, держатель для печатной платы). В наше время это дешевый товар. Затем посмотрите видео на YouTube - их полмиллиона - и потратьте некоторое время на старую печатную плату, которой вы можете пожертвовать и распаять / почистить / припаять некоторые компоненты. Вы не поверите, насколько это поучительно - узнать, чего ожидать, получить нужную температуру и т. Д. Говоря по опыту… Я начал SMD менять разъем дисплея в iPod touch и убил первый!

Действительно, печатная плата Atmoscan компактна, а эта ИС - непростая. Опять же, я не рекомендую вам делать это в качестве первой пайки SMD. QFN - не очень удобный пакет, хотя я уже спаял ряд. Вы никогда не уверены, что все сделали правильно …

На Atmoscan я сначала спаял его, затем окружающие его компоненты, чтобы я мог проверить, работает ли зарядная часть платы, затем я выполнил все остальное. По прилагаемым изображениям вы сможете сделать вывод об ориентации компонентов. Я использовал библиотеки компонентов общественного достояния, и ориентация на шелкографии не очень очевидна.

Мой способ: сначала я припаял контактные площадки с утюгом. Затем много флюса (специфичного для SMD), и я осторожно расположил ИС с помощью пинцета. Затем нагрейте все это примерно до 200/220 ° C (ниже точки плавления), чтобы избежать напряжения из-за неравномерного нагрева. Затем я повысил температуру до 290 ° C или около того и вокруг ИС. Если вы нанесете немного припоя на соседнюю площадку, вы увидите, когда температура достигнет точки плавления, поскольку она будет сиять.

После этого я протер его изопропиловым спиртом и внимательно осмотрел с помощью дешевой USB-камеры. Типичными проблемами являются выравнивание и количество припоя, поскольку некоторые контакты могут не подключаться. В некоторых случаях мне приходилось возвращаться к этому с небольшим паяльником, чтобы добавить еще немного припоя к некоторым контактам, так как у этой ИС есть термопрокладка под ней, которую тоже нужно припаять. Из-за этого немного сложно угадать количество припоя, и может случиться так, что слишком много припоя под ним может поднять его, так что контакты не касаются печатной платы.

Сказав это, я не хочу вас пугать. Я закончил 3 платы и никогда не убивал эти микросхемы … Однажды мне даже пришлось удалить ее, очистить и перезапустить с нуля, но в конце концов все заработало. Опять же, не очень просто, но выполнимо.

Где вы купили комплектующие?

В основном на eBay и Aliexpress. Однако фирменные оригинальные (Seeed, Pololu, Sparkfun).

Далее следуют УКАЗАТЕЛЬНЫЕ ссылки. Примечание: посмотрите вокруг, вы можете найти еще более дешевые предложения …

www.aliexpress.com/item/ESP8266-Remote-Ser…

www.aliexpress.com/item/PLANTOWER-Laser-PM…

www.aliexpress.com/item/High-Accuracy-BME2…

www.aliexpress.com/item/Free-shipping-HDC1…

www.aliexpress.com/item/J34-F85-Free-Shipp…

www.aliexpress.com/item/30pcs-A11-Tactile-…

www.aliexpress.com/item/10PCS-IRF7319TRPBF…

www.aliexpress.com/item/120PC-Lot-0805-SMD…

www.aliexpress.com/item/100pcs-sma-1N5819-…

www.aliexpress.com/item/Free-Shipping-100P…

www.aliexpress.com/item/Chip-Capacitor-080…

www.aliexpress.com/item/92valuesX50pcs-460…

www.aliexpress.com/item/170valuesX50pcs-85…

www.aliexpress.com/item/Si2305-si2301-si23…

www.aliexpress.com/item/100pcs-lot-SI2303-…

www.aliexpress.com/item/20pcs-XH2-54-2-54m…

www.aliexpress.com/item/10pcs-SMD-Power-In…

Первое программирование Плата Atmoscan включает схему программирования, соответствующую NodeMCU. Последовательное соединение обычно используется для первого программирования. После этого предпочтительным вариантом будет программирование OTA через Wi-Fi, так как это может быть выполнено с полностью собранным устройством. Не забывайте, что последовательный порт обычно используется датчиком частиц!

Чтобы запрограммировать плату с последовательным интерфейсом, адаптер USB-Serial (например, FTDI232 или аналогичный) должен быть подключен к разъему J7 (рядом с кнопкой сброса) в соответствии с распиновкой на схеме. Программа может быть загружена без подключенных датчиков, за исключением того, что линия прерывания датчика Гейгера должна быть подключена к GND, иначе плата не загрузится (для этого подключите контакты 1 и 3 в разъеме RAD). Самый простой способ протестировать плату без использования основного эскиза - следовательно, без сложности датчиков - это загрузить ЭТУ простую программу через последовательный кабель. Создает точку доступа Wi-Fi, которая позволяет в дальнейшем прошивать основной программой.

ВАЖНО: Не забудьте использовать конфигурацию SPIFFS 4M / 2M в соответствии с инструкциями, иначе основная программа не подойдет. Плата должна быть инициализирована с помощью последовательного программирования с этой конфигурацией, иначе у вас могут возникнуть проблемы с OTA позже.

К сожалению, инициализация некоторых датчиков блокируется, если датчики отсутствуют (зависит от поставщика библиотеки). Одним из примеров является библиотека мультигазовых датчиков. Чтобы обеспечить правильную загрузку Atmoscan с полной прошивкой, вы можете отключить связанный процесс, см. Соответствующий пункт вопросов и ответов. Простой способ отключить ВСЕ датчики для тестирования - закомментировать строку #define ENABLE_SENSORS в файле GlobalDefinitions.h.

Когда плата загружает основной эскиз в первый раз, она должна распознать, что он не настроен, и должна открыть точку доступа Wi-Fi, к которой вы можете подключиться и настроить ее. Среди настроек есть сервер системного журнала, который сильно помогает при отладке. Вы также можете повысить уровень ведения журнала, раскомментировав #define DEBUG_SYSLOG в файле GlobalDefinitions.h. Обратите внимание, что в том же файле есть также #define DEBUG_SERIAL, который использовался во время начальной отладки. Если раскомментировать, он выводит _some_ остаточное протоколирование, но минимальное. Задача всегда заключалась в том, чтобы сделать ведение журнала единообразным и доступным для выбора, но у меня никогда не было времени убирать его.

Вы изменили используемые библиотеки, нужна ли какая-либо конфигурация? (в отличие от загрузки и компиляции)

Хороший вопрос, я забыл упомянуть об этом. Действительно, необходимо несколько модов / конфигов:

  • Библиотека https://github.com/Seeed-Studio/Mutichannel_Gas_Sensor - операторы последовательной отладки. Необходимо закомментировать, так как последовательный порт используется для датчика!
  • Библиотека https://github.com/Bodmer/TFT_eSPI - требуется файл конфигурации, в котором указаны назначение контактов и частота SPI.
  • Библиотека https://github.com/lucadentella/ArduinoLib_MAX1704… - Просматривая комментарии и запросы на вытягивание, я заметил, что есть исправление ошибки, которое никогда не было объединено.

Насколько я помню, так и должно быть. Сообщите мне, если возникнут проблемы.

ПРИМЕЧАНИЕ. См. Комментарии в последнем исходном коде - содержит ссылки на все необходимые библиотеки и постоянно обновляется.

Почему некоторые датчики на видео / изображениях показывают красный цвет, а некоторые - зеленый?

Цвет указывает на тенденцию. Он начинается с белого цвета, а при повышении - красного, при понижении - зеленого.

Как вы справляетесь с дрейфом датчиков с течением времени? Насколько хороши эти датчики? Что я могу видеть с помощью этих датчиков?

Честно говоря, это не научный измерительный набор. Для калибровки мне понадобится оборудование, которого у меня нет. Это действительно любимый проект. Пробовал несколько датчиков. Частица, СО2, температура, влажность, давление, Гейгер, на мой взгляд, неплохие. Что касается NO2, у меня есть оговорки по калибровке и общему дизайну, но их мало. В целом, это основные датчики.

Однако комбинация достаточно хороша, чтобы показать то, чего вы не ожидали.

Когда Atmoscan находится в гостиной, а кухня - на расстоянии комнаты, он обнаруживает огромные пики частиц, когда, например, жарка. NO2 от утреннего движения ощущается даже при закрытых окнах.

Действительно ли нужен был счетчик Гейгера? Есть ли что-нибудь полезное?

К счастью, у нас не было ядерных инцидентов, и война еще не наступила … Тем не менее, недалеко есть атомные станции, и правительство раздает детям йодные таблетки, которые они хранят в ящике на случай инцидентов … так что у меня возникли подозрения. Пока я должен сказать, что показания в точности соответствуют ожидаемому фоновому излучению (0,12 мкЗв / ч).

Какая общая стоимость устройства?

У меня дома уже было много компонентов, и приведенные выше ссылки дают вам представление. Честно говоря, покупая готовый NetAtmo или аналогичный, вы экономите деньги. Вы не можете превзойти китайскую компанию, занимающуюся масштабными делами! Однако, если вам нравится творить вместе с детьми, оно того стоит. Хорошая часть состоит в том, что я уже протестировал (и выбросил) несколько датчиков для вас….

Как насчет печатных плат? Вы можете продать мне один?

Изначально у меня было 10 из них, сделанных dirtypcbs.com, и мои файлы работали отлично. Хорошее качество и достаточно дешево, 25USD / 20Euro за 10 печатных плат. Я использовал два, и я рад отправить оставшиеся по чистой цене (2 евро + доставка, в зависимости от местоположения и предпочтений по доставке). Боюсь, мне придется выбирать первых, кто отправит мне личное сообщение.

Можете ли вы сделать комплект или кикстартерную кампанию?

Лестно, но, честно говоря, я никогда не думал, что это будет достаточно инновационным … и, кроме того, НЕТ ВРЕМЕНИ !!

Однако, если кто-то подхватит идею, потребуется вторая итерация. В дизайне есть несколько острых граней, которые стоит исправить, но, опять же, у меня никогда не было достаточно времени на V2.

Об оборудовании: Могу ли я добавить / удалить датчик, экран и т. Д., Чтобы расширить возможности / снизить энергопотребление?

Дисплей подключен без использования MISO, поэтому ЦП никогда не считывает данные с дисплея. Поэтому вы просто не можете подключить дисплей, и он будет работать нормально. При этом дисплей включен только в течение некоторого времени после обнаружения последнего жеста, поэтому он не влияет на энергопотребление.

Вместо этого датчики потребляют много энергии, и все это легко потребляет 400/500 мА. Не забывайте вентилятор, а также тот факт, что датчик частиц также имеет встроенный вентилятор. ESP также не переходит в спящий режим из-за отсутствия GPIO pons. Однако, возможно, это сэкономило бы 20 мА …

Программное обеспечение является модульным, и вы можете легко добавлять / удалять процессы и экраны, так что вы можете добавить датчики или сделать их включенными, удалив некоторые, если хотите. Единственное ограничение - количество контактов GPIO. Тем не менее, датчики можно легко добавить, если I2C, или, в качестве альтернативы, можно использовать расширитель I2C для добавления GPIO …

Чтобы отключить датчик, например, чтобы протестировать частичную сборку, на мой взгляд, лучший способ - не запускать связанный процесс. Это можно сделать, закомментировав связанный вызов enable () в функции void startProcesses () в основном файле.ino. Если вы не хотите структурно изменить систему, я бы не удалял процессы полностью, так как экран и процессы MQTT будут их опрашивать. Таким образом, они должны просто вернуть ноль. Обратите внимание, что вход прерывания для платы Гейгера должен быть опущен, если не используется, иначе плата не загрузится.

Какие улучшения вы бы сделали, если бы у вас было время для версии 2.0?

Не в каком-то определенном порядке..

  • Печатная плата может избежать попадания меди за антенной ESP8266. Я совсем забыл об этом, и это делает диаграмму излучения неизотропной.
  • Зарядное устройство на мой взгляд меньше размера для такой большой батареи / батарея слишком велика для зарядного устройства. Есть другие микросхемы, и я бы попробовал другую.
  • Есть датчики батареи получше.
  • Я бы добавил датчик озона
  • Я бы использовал ESP32 для большего количества GPIO и датчиков Bluetooth вне основного блока.
  • Если бы у меня было больше GPIO с ESP32 или с расширителем I2C, я бы использовал один для управления вентилятором, а другой - для отключения питания устройства из программного обеспечения. Теперь при низком заряде батареи единственное, что он может сделать, это отобразить экран низкого заряда батареи. Фактически, это самый большой недостаток конструкции, так как ситуация с низким уровнем заряда батареи не решается изящно.

О программном обеспечении

Это заняло у меня больше времени, чем аппаратное обеспечение… Думаю, в нем есть ряд хороших концепций, которые, к сожалению, реализованы не полностью. В частности, я считаю, что его следует очистить, потенциально расширить, и на его основе можно легко получить общую структуру для приложений ESP8266. Нет времени. Кто-нибудь принимает вызов?

Можете ли вы добавить голосовое управление?

Должно быть возможно. Существует ряд готовых библиотек для управления ESP8266 с помощью Alexa, и я не понимаю, почему интеграция должна быть проблемой. Интересный вопрос - что вы хотите с этим делать, с точки зрения функциональности. У меня нет Amazon Echo, поэтому я никогда не пробовал.

Как вы делали лазерную резку?

Рисунки сделаны с помощью SketchUp. Программа хороша, но экспортных возможностей серьезно не хватает. Однако 30-дневная пробная версия помогает, поскольку имеет дополнительные функции. Затем я импортировал его в Inkscape для окончательной обработки.

Можно ли включать / выключать датчики для экономии энергии через полевые МОП-транзисторы?

Идея в принципе неплохая, но большинство этих датчиков необходимо постоянно запитывать, так как у них есть время прогрева. Кроме того … у меня закончились GPIO в ESP8266. Мне даже пришлось использовать GPIO10, который официально не работает, но отлично работает на ESP12E.

Какие навыки мне понадобятся?

Чтобы построить его с нуля, вам понадобится немного опыта в области дизайна электроники. Ничего особенного, в настоящее время с Интернетом вам действительно не нужно читать таблицы данных построчно, как в мои первые дни … Если вы воспользуетесь результатами моих экспериментов, вам потребуются некоторые навыки пайки SMD, механические навыки и немного терпения.

Это твой первый проект?

Это мой первый поучительный, но не первый проект. Раньше я много возился, но сейчас у меня мало времени. Я воскресил свои ржавые навыки, пытаясь научить своих детей чему-то полезному …! Я сделал еще несколько проектов, которые, возможно, когда-нибудь опубликую..

Рекомендуемые: