Оглавление:
- Шаг 1: приготовьте Pi
- Шаг 2. Подключите все
- Шаг 3. Проверьте свой I2C
- Шаг 4: Установите MySQL и PhpMyAdmin
- Шаг 5: Установите модули Python
- Шаг 6: Код для входа в базу данных
- Шаг 7: Код для отображения температуры
- Шаг 8: корпус, напечатанный на 3D-принтере
- Шаг 9: что нужно сделать
Видео: Погодные часы с барометром Raspberry Pi: 9 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
В этом руководстве я покажу вам, как создать базовые часы термометра / барометра, используя 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
- Загрузите и установите выбранный вами дистрибутив Linux на SD-карту - я использовал Raspbian
- Подключите пи и загрузите его
- Я использовал адаптер micro WiFi для подключения пи к моему маршрутизатору, так как корпус часов закрывает порт Ethernet.
- Я использовал безголовый режим, в котором вы подключаетесь к пи с помощью SSH, поэтому все, что вам нужно, это питание.
- Настройте I2C на Pi - я выполнил эти инструкции на сайте Adafruit.
Шаг 2. Подключите все
Все модули, которые я использую в этом проекте, устойчивы к 5 В и используют I2C, который является двухпроводным протоколом, используемым для связи IC друг с другом, поэтому подключение довольно простое. Подключите все VCC к 5V, все заземления вместе и все линии SCA и SCL вместе, как показано на схеме. Работа сделана.
Шаг 3. Проверьте свой I2C
Часть установки I2C - запустить i2cdetect, который должен выглядеть как прикрепленный образ, если все подключено правильно.
Ниже приведены соответствующие адреса
- 0x70 = 7-сегментный дисплей
- 0x77 = Датчик термометра / барометра BMP180
- 0x68 = Модуль часов реального времени DS3231
- 0x57 = DS3231 на плате EEPROM для хранения данных аварийных сигналов.
Шаг 4: Установите 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, которые вы будете использовать для подключения к датчикам.
- Модуль Adafruit_BMP085
- Модуль SDL_DS3231
- Модуль Adafruit 7 Segment
Шаг 6: Код для входа в базу данных
Приведенный ниже фрагмент кода используется для регистрации температуры и атмосферного давления и вызывается из сценария cron (запланированные задачи Linux), который запускается каждые 5 минут. Чтобы узнать, как использовать crond, ознакомьтесь с этим руководством.
NB! Не тратьте время на мои навыки программирования, я не разработчик, так что да, наверное, есть миллион лучших, быстрых, плавных и чистых способов сделать это
Вы заметите, что в коде температура снижается на 7 градусов, что эквивалентно теплу, выделяемому Raspberry Pi даже с BMP180, установленным снаружи корпуса. Когда я изначально поместил его в корпус, он был примерно на 15 градусов горячее, чем окружающий. Это кажется довольно линейным, но у меня не было возможности проверить какие-либо крайности. Мы будем благодарны за отзывы о вашем опыте.
Шаг 7: Код для отображения температуры
Этот код вызывается для циклического просмотра дисплея согласно введению.
Опять же, я не разработчик, поэтому код действительно грубый, но он работает
Шаг 8: корпус, напечатанный на 3D-принтере
Далее следует дизайн корпуса. Это было довольно сложно, поскольку форма склонна к деформации, потому что части внешней оболочки имеют толщину всего 2 мм. Сначала я нарисовал макеты Pi и всех его частей, а затем спроектировал корпус вокруг него. На моем RapMan 3.2 (довольно медленном принтере) печать заняла около 7 часов при глубине слоя 0,25.
Прилагаемая схема сделана в Autodesk 123D Design, который я считаю фантастическим бесплатным программным обеспечением.
Обратите внимание, что некоторые из отверстий, таких как те, которые необходимы для установки Pi, отсутствуют в конструкции, так как их лучше просверлить позже, на случай, если ваш отпечаток немного деформируется. Все, что вам нужно - это надежная рука сверло диаметром 3 мм. Отметьте глубину сверла с помощью малярного скотча, чтобы случайно не пройти через 7-часовой отпечаток, как это сделал я.
Шаг 9: что нужно сделать
- Часы реального времени были дополнением после того, как корпус был напечатан в 5-й раз, поэтому в настоящее время они приклеены к боковой стороне корпуса горячим клеем, что выглядит не очень хорошо, поэтому я хотел бы переделать дизайн и добавить для него место.
- Яркость 7-сегментного дисплея в настоящее время установлена на минимальное значение, что не является оптимальным для условий сильного освещения. Я хотел бы добавить фоторезистор в верхнюю часть корпуса и отрегулировать 7-сегментную яркость в зависимости от условий окружающего освещения.
- Есть некоторые незначительные конструктивные проблемы с растрескиванием основания, которые также будут исправлены.
- Любые идеи приветствуются.
Надеюсь, вам понравилось это руководство, и вы нашли его достаточно вдохновляющим, чтобы вы начали. Идея состоит в том, чтобы предоставить платформу, которую вы можете использовать для добавления своих собственных идей. Повеселись!
Рекомендуемые:
Часы Vortex: наручные часы с зеркалом бесконечности: 10 шагов (с изображениями)
Часы Vortex: наручные часы с зеркалом бесконечности: целью этого проекта было создание носимой версии зеркальных часов бесконечности. Он использует свои светодиоды RGB для индикации времени, назначая часы, минуты и секунды красным, зеленым и синим светам соответственно и перекрывая эти оттенки t
Погодные часы Raspi-Nextion: 7 шагов
Погодные часы Raspi-Nextion: меня вдохновило то, что я увидел так много разных часов, построенных на Arduino и Raspberry Pi. Я тоже хотел сделать такую. Я начал с использования Arduino Mega с ESP8266, но обнаружил, что у 8266 Wi-Fi слишком много сбоев. Я решил использовать запасной Pi, который у меня был (Raspb
Погодные часы: 11 шагов (с изображениями)
Погодные часы: обновите электрическую схему и схему Fritzing Я делаю две предпосылки: это моя первая инструкция Я невежественный итальянец, который не изучал английский в школе, и поэтому я обратился за помощью к: https: //translate.google.itStart с благодарностью
Погодные часы: 15 шагов (с изображениями)
Погодные часы: великолепные настольные часы с датой и датой. отображение погоды
ESP8266 Погодные часы: 6 шагов (с изображениями)
ESP8266 Weather Clock: Я очень горжусь вашим прибытием и приветствую вас