Arduino

Морской барометр для точных прогнозов погоды

Почему морской? Просто автор этой самоделки — старый морской волк.
Особенностью этого барометра является график в виде нескольких шкал с снятыми ранее показаниями. Ядро данного проекта — микроконтроллер ESP32, датчик окружающей среды и цветной дисплей.
Мастер хотел, чтобы в этом проекте был широкий выбор отладочных плат и датчиков ESP32, поэтому он разработал «плату расширения ESP32».
Инструменты и материалы:
-ESP32 V1 — 36 контактов;
-Цифровой датчик температуры и давления BME680;
-Макетная плата;
-Сенсорный дисплей 2,8-дюймовый;
-Соединительные кабели;
-Штыревой разъем;
-Паяльник;
-Супер клей;
-Кусачки;
-Рамка для фото;
Шаг первый: функции погоды и барометра
Атмосфера Земли оказывает на поверхность давление 1013 мбар ( 760 мм рт. ст.), определяемое как стандартное давление.
Таким образом, мастер решил, что стандартное давление — это значение посередине шкалы дисплея.
Уникальной особенностью данного барометра являются индикаторы, которые будут отображать абсолютные значения от 1003 до 1023 мбар, начиная с настоящего времени и на десять часов назад.

Шаг второй: датчик давления BME680
Ртутный барометр был изобретен в 1643 году во Флоренции. Но только в начале 1900 года современный дизайн без ртути стал популярным. Он был намного меньше, имел коммерческий успех и широко использовался на борту кораблей.
Тем не менее, это механическое устройство, в котором трение между движущимися частями влияет на его предельную точность.
Можно улучшить эти старомодные механические барометры с помощью датчика BME680, датчика окружающей среды с возможностью измерения температуры, барометрического давления, качества воздуха и влажности.
В этом проекте используется коммутационная плата Pomoroni с датчиком BME680.
Технические характеристики BME680 впечатляют.
-влажность с абсолютной точностью ± 3%
-барометрическое давление с абсолютной точностью ± 0,6 гПа (0 … 65 ° C) и ± 0,12 гПа (25 … 40 ° C)
-температура с абсолютной точностью ± 1,0 ° C (0 … 65 ° C) и ± 0,5 ° C (при 25 ° C)

Шаг третий: платы для разработки ESP32
Сердце данного проекта — модуль разработки ESP32 . Благодаря разработанной плате адаптера можно подключить различные модули.
Ниже список модулей ESP32, которые может использовать этот проект:
20-контактный (для TinyPico ESP32 от Unexpected Maker )
12 + 16 контактов (для Sparkfun ESP32 Thing Plus )
30 контактов (для модуля ESP32 Geekcreit )
36 контактов (для ESP32 DEVKIT V1 от Geekcreit-DOIT )
38 контактов (для Expressif ESP32-DEVKITC-32D )
В репозитории GitHub для платы адаптера есть последний обновленный список плат ESP32.
esp32-adapter-schematic-v1x.pdf

Шаг четвертый: дисплей
В этом проекте мастер использует цветной дисплей SPI TFT 2,8 ”280×320 пикселей. Имеется хорошая поддержка библиотеки Arduino для этого конкретного дисплея и драйвера ILI9341 .

Шаг пятый: сборка схемы на макетной плате
Следующим шагом будет построение проекта на макете. Нужно протестировать как настройку Arduino IDE для загрузки программы, так и совместную работу частей.
esp32-адаптер-схема-v1x.pdf

После установки на плату дисплея, ESP32 и датчика необходимо соединить комплектующие.
Обратите внимание, что на лицевой стороне дисплея нет маркировки. Таким образом, список подключений расположен в порядке слева направо.
Т.е. TFT_CS (третий контакт слева на дисплее) подключаем к модулю ESP32 . Следующий вывод, TFT_RESET, является четвертым слева выводом на дисплее и так далее.

Подключает два сигнального провода к датчику. Подключает выход 3,3 В от модуля ESP32 для питания дисплея и датчика.
Схема использует три разные шины питания для распределения 3,3 В ( красные провода ) и GND ( черные провода ) на макетной плате .
Дисплей не должен иметь никаких проводов, подключенных к шести крайним правым контактам дисплея.

Шаг шестой: программирование
Чтобы использовать плату ESP32 с библиотеками Arduino, нужно использовать интегрированную среду разработки Arduino (IDE) с добавленной поддержкой платы ESP32.
В Arduino IDE добавляем поддержку плат ESP32.
В верхнем меню выбираем «Файл-> Настройки». Затем в новом окне кликаем маленький символ справа в строке с надписью «URL-адреса дополнительных менеджеров плат». Дальше откроется список неподдерживаемых URL-адресов. Затем находим страницу Arduino на GitHub, чтобы найти неофициальные URL-адреса поддержки сторонних плат.
В списке находим Expressif ESP32.
Копируем адрес ссылки, и добавляем его в конец списка существующей платы в маленьком окне, как показано ниже. По завершении нажимаем ОК.
В главном меню выбираем «Инструменты-> Плата: * -> Диспетчер плат ». В поле поиска вводим ESP32 и нажимаем кнопку «Установить», чтобы установить поддержку многих модулей ESP32, производимых различными поставщиками. По окончании закрываем окно.
Дальше открываем диспетчер плат в меню «Инструменты-> Плата: -> ESP32 Arduino» и выбираем нужную плату ESP32.

Для проекта требуются три библиотеки Arduino. Самый простой способ — использовать Arduino Library Manager для их установки.
Выбираем «Инструменты -> Управление библиотеками» в меню Arduino и находим библиотеки.
TFT_eSPI от Bodmer ((библиотека аппаратного обеспечения дисплея)
BME680 от SV-Zanshin (интерфейс к датчику)
ESP32Time от fbiego (интерфейс с часами реального времени в ESP32)
Загружаем последний выпущенный zip-архив с GitHub в папку с альбомом и извлекаем туда исходный код. Путь «Файл-> Настройки» и «Местоположение блокнота».
После распаковки архива проекта папка будет называться esp32-nautical-barometer-gold-1.0. В этой папке будет находится код Arduino, готовый для загрузки в модуль ESP32.

Перед использованием библиотеки дисплея нужно определить, какие контакты используются на макетной плате и плате адаптера.
Открываем папку с библиотеками Arduino.В каталоге библиотек находим и открываем файл TFT_eSPI / User_Setup.h в текстовом редакторе.
Теперь нужно настроить несколько параметров конфигурации.
Во втором разделе мы определяем фактический модуль и используемые контакты. Примерно в строке 158 модуль ESP8266 по умолчанию установлен активным; нужно закомментировать все эти строки с помощью //.
Прокручиваем вниз, пока не находим ESP32, во втором разделе, возле строки № 191, активируем и регулируем pin-номера.

 Показать / Скрыть текст//#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS 27 // Chip select control pin
#define TFT_DC 26 // Data Command control pin
#define TFT_RST 4 // Reset pin
Сохраняем файл.
Теперь нужно протестировать настройки.
Тестируем настройки Arduino IDE.
Запускаем программу Blink, чтобы проверить загрузку кода. Открываем «Файл-> Примеры-> 01. основы -> Blink ».
ESP32 не использует предопределенное значение LED_BUILTIN Arduino. Заменяем на: #define LED_BUILTIN 2
Далее просто нажимаем кнопку со стрелкой загрузки, и код должен скомпилироваться и загрузится. Встроенный светодиод должен начать мигать.
Проверка дисплея.
Открываем «Файл-> Примеры-> TFT_eSPI-> Тесты и диагностика -> Цветовые тесты»
Загружаем файл, чтобы убедиться, что библиотека настроена и сборка макета правильная.
Теперь нужно загрузить код проекта.
Открываем папку с загруженным кодом в Arduino IDE и кликаем esp32-nautical-barometer-gold.ino . По умолчанию значения температуры отображаются в градусах Фаренгейта. Чтобы изменить его на градусы Цельсия, редактируем код и устанавливаем нулевое значение, например: #define FAHRENHEIT 0
Дальше нажимаем кнопку со стрелкой и загружаем код.
Первые показания видны примерно через 5 секунд задержки. При этом на всех столбцах показания отобразятся только через 10 часов. Все значения считываются с датчика один раз в час.
Показания теряются при потере питания, поэтому рекомендуется или постоянное питание от сети или батарея.

Шаг седьмой: плата адаптера ESP32
Мастер нарисовал схему и выполнил полный дизайн платы с помощью программного обеспечения KiCad.
esp32-adapter-schematic-v1x.pdf

Все файлы можно загрузить . Дальше можно заказать плату на соответсвующем сервисе.
здесь

Шаг восьмой: монтаж платы
После изготовления платы можно приступить к ее сборке.
Подготавливает штыревые разъемы.

Для удобства пайки штыревых разъемов устанавливает их в макетную плату. Припаивает к модулю ESP32. Также припаиваются разъемы к BME680.

Припаивает разъем к задней стороне дисплея.

Припаивает разъемы на стороне модуля-датчика.

Устанавливает на плату модуль ESP32. Для ориентации разъем USB всегда обращен наружу, для питание барометра. Устанавливает датчик BME680 и дисплей. Подключает питание и загружает код.

Шаг девятый: рамка
Барометр мастер решил установить в рамку. Внутреннюю часть рамки он закрыл черным материалом. Саму рамку покрасил под золото.

Все готово.

Источник

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть
Закрыть