Оглавление:

Солнечная метеостанция: 5 шагов
Солнечная метеостанция: 5 шагов

Видео: Солнечная метеостанция: 5 шагов

Видео: Солнечная метеостанция: 5 шагов
Видео: Солнечная электростанция 5кВт. Метеостанция Восточная 2024, Ноябрь
Anonim
Солнечная метеостанция
Солнечная метеостанция

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

Шаг 1. Соберите материалы

Материалы

  • Raspberry Pi 3 модель B + + адаптер + карта Micro SD 16 ГБ
  • Ардуино Уно
  • Arduino Pro Mini + базовый прорыв FTDI
  • 4 панели солнечных батарей 6V 1W
  • 4 батареи 18650
  • Бустер 5v
  • 4 зарядных устройства TP 4056
  • Датчик температуры и влажности Adafruit DHT22
  • BMP180 Датчик атмосферного давления
  • 4 LDR
  • Приемник и передатчик RF 433
  • 2 шаговых двигателя Nema 17
  • 2 драйвера шагового двигателя DRV8825
  • жк 128 * 64
  • Много проводов

Инструменты и материалы

  • Клей
  • Деревянные доски
  • Пила
  • Винты + отвертка
  • Утиная лента
  • 2 алюминиевые полосы

Шаг 2: Механический дизайн

Механический дизайн
Механический дизайн
Механический дизайн
Механический дизайн
Механический дизайн
Механический дизайн
Механический дизайн
Механический дизайн

Корпус метеостанции изготовлен из фанеры. Вам не обязательно использовать дерево, вы можете сделать его из любого материала, который вам больше нравится. Для крепления двигателя я просверлил целое в деревянном бруске, а затем прикрутил плоский винт к валу двигателя, который работает лучше, чем я ожидал. Таким образом, вам не нужно печатать на 3D-принтере крепление для двигателя, и его легко сделать. Затем я согнул 2 алюминиевые полоски, чтобы очень плотно удерживать моторы. Затем я вырезал доску и просверлил в ней отверстия для солнечных батарей. Затем приклейте на него солнечные батареи и припаяйте к ним провода. Затем вам также нужно будет сделать крест из материала черного цвета. Если у вас нет ничего черного, вы можете использовать черный скотч. Этот крест будет удерживать LDR в каждом углу, поэтому Arduino может сравнить измерения с LDR и вычислить, в каком направлении ему нужно повернуться. Поэтому просверлите крошечные отверстия в каждом углу, чтобы в них можно было вставить LDR. Все, что осталось сделать, это сделать опорную пластину и что-нибудь для установки электроники. Что касается опорной пластины, вам нужно будет просверлить в ней целиком, чтобы провести все провода в желобе. Что касается размеров, я не дам вам их, потому что это действительно зависит от вас, как вы хотите это спроектировать. Если у вас есть другие двигатели или другие солнечные батареи, вам придется самостоятельно рассчитать размеры.

Шаг 3: электрическое проектирование

Власть

Вся система работает от батарей (кроме Raspberry Pi). Я поставил 3 батареи последовательно. 1 батарея в среднем составляет 3,7 В, поэтому 3 последовательно соединенных батареи дают около 11 В. Этот батарейный блок 3s используется для двигателей и передатчика RF. Другая оставшаяся батарея используется для питания Arduino Pro Mini и датчиков. Для зарядки аккумуляторов я использовал 4 модуля TP4056. Каждая батарея имеет 1 модуль TP4056, каждый модуль подключен к солнечной панели. Поскольку модуль имеет B (вход) и B (выход), я могу заряжать их по отдельности и разряжать их последовательно. Убедитесь, что вы покупаете правильные модули TP4056, потому что не все модули имеют B (вход) и B (выход).

Конртол

Arduino Pro Mini управляет датчиками и двигателями. Необработанный и заземляющий контакт Arduino подключен к усилителю 5 В. Бустер 5V подключается к одной батарее. Arduino Pro Mini имеет очень низкое энергопотребление.

Компоненты

DHT22: Я подключил этот датчик к VCC и земле, затем я подключил вывод данных к цифровому выводу 10.

BMP180: я подключил этот датчик к VCC и земле, я подключил SCL к SCL на Arduino и SDA к SDA на Arduino. Будьте осторожны, потому что контакты SCL и SDA на Arduino Pro Mini находятся в середине платы, поэтому, если вы припаяли контакты к плате и вставили ее в макет, это не сработает, потому что у вас будут помехи от других контактов. Я припаял эти 2 контакта к верхней части платы и подключил к ней провод.

Радиочастотный передатчик: я подключил его к батарейному блоку 3s для лучшего сигнала и большей дальности. Я попытался подключить его к 5 В от Arduino, но тогда РЧ-сигнал очень слабый. Затем я подключил вывод данных к цифровому выводу 12.

LDR: Я подключил 4 LDR к аналоговым контактам A0, A1, A2, A3. Я поставил LDR вместе с резистором 1 кОм.

Двигатели: Двигатели приводятся в действие 2 модулями управления DRV8825. Это очень удобно, потому что они принимают только 2 входные линии (направление и шаг) и могут производить до 2 А на фазу для двигателей. Я подключил их к цифровым контактам 2, 3 и 8, 9.

ЖК-дисплей: Я подключил ЖК-дисплей к Raspberry Pi, чтобы показать его IP-адрес. Я использовал триммер, чтобы отрегулировать подсветку.

Радиочастотный приемник: я подключил приемник к Arduino Uno через 5 В и землю. Ресивер не должен принимать больше 5В. Затем я подключил вывод данных к цифровому выводу 11. Если вы можете найти библиотеку для этих радиочастотных модулей, которая работает на Raspberry Pi, вам не нужно использовать Arduino Uno.

Raspberry Pi: Raspberry Pi подключается к Arduino Uno через USB-кабель. Arduino передает радиочастотные сигналы на Raspberry Pi через последовательное соединение.

Шаг 4. Приступим к программированию

Чтобы закодировать Arduino Pro Mini, вам понадобится программатор FTDI. Поскольку у Pro Mini нет порта USB (для экономии энергии), вам понадобится эта коммутационная плата. Я программировал код в Arduino IDE, думаю, это самый простой способ сделать это. Загрузите код из файла, и все должно быть хорошо.

Чтобы запрограммировать Arduino Uno, я подключил его к своему компьютеру через USB-кабель. После того, как я загрузил код, я подключил его к Raspberry Pi. Я также смог изменить код на Raspberry Pi, потому что я установил IDE Arduino, и поэтому я мог программировать его оттуда. Код очень простой, он принимает входные данные от приемника и отправляет их через последовательный порт на Raspberry Pi.

Чтобы запрограммировать Raspberry Pi, я установил Raspbian. Затем я использовал Putty для подключения к нему через соединение SSH. Затем я настраиваю Raspberry, чтобы я мог подключиться к нему через VNC и, таким образом, иметь графический интерфейс. Я установил веб-сервер Apache и начал кодировать бэкэнд и интерфейс для этого проекта. Вы можете найти код на github:

Шаг 5: База данных

Для хранения данных я использую базу данных SQL. Я создал базу данных в MySQL Workbench. База данных содержит показания датчиков и данные датчиков. У меня есть 3 таблицы, одна для хранения значений датчиков с отметками времени, другая для хранения информации о датчиках и последняя для хранения информации о пользователях. Я не использую таблицу Users, потому что я не кодировал эту часть проекта, поскольку ее не было в моем MVP. Загрузите файл SQL и запустите его, и база данных должна быть в порядке.

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