Оглавление:

Погодные часы с барометром Raspberry Pi: 9 шагов (с изображениями)
Погодные часы с барометром Raspberry Pi: 9 шагов (с изображениями)

Видео: Погодные часы с барометром Raspberry Pi: 9 шагов (с изображениями)

Видео: Погодные часы с барометром Raspberry Pi: 9 шагов (с изображениями)
Видео: Дальнобойное радиоуправление на Ардуино - Радиомодуль HC-12 2024, Ноябрь
Anonim
Погодные часы с барометром Raspberry Pi
Погодные часы с барометром Raspberry Pi

В этом руководстве я покажу вам, как создать базовые часы термометра / барометра, используя Raspberry Pi 2 с датчиком BMP180 I2C, отображаемым на 4-значном 7-сегментном дисплее Adafruit I2C. Pi также использует модуль часов реального времени I2C DS3231, чтобы отслеживать время при перезапуске Pi.

Часы проходят 4 этапа по 5 секунд каждый. Сначала отображается температура в градусах Цельсия, затем в градусах Фаренгейта, затем барометрическое давление в кПа * (это число идет влево из-за ограниченного количества цифр), и, наконец, он показывает тенденцию изменения атмосферного давления между текущим моментом и средним значением предыдущий час.

Что отличает эти часы от большинства, так это то, что они используют базу данных MySQL на Pi для записи данных с BMP180 каждую минуту. Поскольку текущее атмосферное давление не так важно, как его движение вверх или вниз за определенный период времени, он использует эту базу данных для вычисления среднего значения за часовой интервал между 2 часами и 1 часом назад и сравнивает его с текущим давлением. Значительное повышение атмосферного давления обычно указывает на улучшение погодных условий, а сильное падение может предупреждать о надвигающемся шторме.

Часы размещены в корпусе из АБС-пластика, напечатанном на 3D-принтере, а BMP180 находится в вентилируемой крышке на задней панели часов, чтобы тепло, выделяемое Pi, не влияло на показания температуры. Я предоставлю схему Autodesk 123D Design, если вы хотите распечатать свою собственную.

Часы питаются от стандартной настенной USB-бородавки и в общей сложности потребляют около 450 мА.

Я не буду вдаваться в подробности базовой настройки Pi и I2C, поскольку это описано во многих других инструкциях, на которые я дам ссылки.

Шаг 1: приготовьте Pi

Подготовьте Пи
Подготовьте Пи

Настройте Raspberry Pi - подробности на Raspberrypi.org

  1. Загрузите и установите выбранный вами дистрибутив Linux на SD-карту - я использовал Raspbian
  2. Подключите пи и загрузите его
  3. Я использовал адаптер micro WiFi для подключения пи к моему маршрутизатору, так как корпус часов закрывает порт Ethernet.
  4. Я использовал безголовый режим, в котором вы подключаетесь к пи с помощью SSH, поэтому все, что вам нужно, это питание.
  5. Настройте I2C на Pi - я выполнил эти инструкции на сайте Adafruit.

Шаг 2. Подключите все

Wire It All Up
Wire It All Up

Все модули, которые я использую в этом проекте, устойчивы к 5 В и используют I2C, который является двухпроводным протоколом, используемым для связи IC друг с другом, поэтому подключение довольно простое. Подключите все VCC к 5V, все заземления вместе и все линии SCA и SCL вместе, как показано на схеме. Работа сделана.

Шаг 3. Проверьте свой I2C

Проверьте свой I2C
Проверьте свой I2C

Часть установки I2C - запустить i2cdetect, который должен выглядеть как прикрепленный образ, если все подключено правильно.

Ниже приведены соответствующие адреса

  1. 0x70 = 7-сегментный дисплей
  2. 0x77 = Датчик термометра / барометра BMP180
  3. 0x68 = Модуль часов реального времени DS3231
  4. 0x57 = DS3231 на плате EEPROM для хранения данных аварийных сигналов.

Шаг 4: Установите MySQL и PhpMyAdmin

Установите MySQL и PhpMyAdmin
Установите MySQL и PhpMyAdmin

Установка mySQL довольно проста, если вы следуете руководству здесь.

sudo apt-get установить mysql-server

Я также установил phpMyAdmin, веб-сайт, работающий на Apache, который вы можете использовать для создания баз данных mySQL и управления ими. Учебник здесь

sudo apt-get install phpmyadmin

После установки я настроил базу данных под названием BP180 с помощью phpMyAdmin со структурой, как показано на изображении.

Я также использую модуль python под названием mysqlDB, который вы можете установить, используя

sudo apt-get install python-mysqldb

Шаг 5: Установите модули Python

Загрузите и установите указанные ниже модули Python, которые вы будете использовать для подключения к датчикам.

  1. Модуль Adafruit_BMP085
  2. Модуль SDL_DS3231
  3. Модуль Adafruit 7 Segment

Шаг 6: Код для входа в базу данных

Приведенный ниже фрагмент кода используется для регистрации температуры и атмосферного давления и вызывается из сценария cron (запланированные задачи Linux), который запускается каждые 5 минут. Чтобы узнать, как использовать crond, ознакомьтесь с этим руководством.

NB! Не тратьте время на мои навыки программирования, я не разработчик, так что да, наверное, есть миллион лучших, быстрых, плавных и чистых способов сделать это

Вы заметите, что в коде температура снижается на 7 градусов, что эквивалентно теплу, выделяемому Raspberry Pi даже с BMP180, установленным снаружи корпуса. Когда я изначально поместил его в корпус, он был примерно на 15 градусов горячее, чем окружающий. Это кажется довольно линейным, но у меня не было возможности проверить какие-либо крайности. Мы будем благодарны за отзывы о вашем опыте.

Шаг 7: Код для отображения температуры

Код для отображения температуры
Код для отображения температуры
Код для отображения температуры
Код для отображения температуры
Код для отображения температуры
Код для отображения температуры
Код для отображения температуры
Код для отображения температуры

Этот код вызывается для циклического просмотра дисплея согласно введению.

Опять же, я не разработчик, поэтому код действительно грубый, но он работает

Шаг 8: корпус, напечатанный на 3D-принтере

Корпус с 3D-печатью
Корпус с 3D-печатью
Корпус с 3D-печатью
Корпус с 3D-печатью
Корпус с 3D-печатью
Корпус с 3D-печатью
Корпус с 3D-печатью
Корпус с 3D-печатью

Далее следует дизайн корпуса. Это было довольно сложно, поскольку форма склонна к деформации, потому что части внешней оболочки имеют толщину всего 2 мм. Сначала я нарисовал макеты Pi и всех его частей, а затем спроектировал корпус вокруг него. На моем RapMan 3.2 (довольно медленном принтере) печать заняла около 7 часов при глубине слоя 0,25.

Прилагаемая схема сделана в Autodesk 123D Design, который я считаю фантастическим бесплатным программным обеспечением.

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

Шаг 9: что нужно сделать

Дела, которые необходимо сделать
Дела, которые необходимо сделать
  1. Часы реального времени были дополнением после того, как корпус был напечатан в 5-й раз, поэтому в настоящее время они приклеены к боковой стороне корпуса горячим клеем, что выглядит не очень хорошо, поэтому я хотел бы переделать дизайн и добавить для него место.
  2. Яркость 7-сегментного дисплея в настоящее время установлена на минимальное значение, что не является оптимальным для условий сильного освещения. Я хотел бы добавить фоторезистор в верхнюю часть корпуса и отрегулировать 7-сегментную яркость в зависимости от условий окружающего освещения.
  3. Есть некоторые незначительные конструктивные проблемы с растрескиванием основания, которые также будут исправлены.
  4. Любые идеи приветствуются.

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

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