Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Целью этого проекта является разработка, создание и тестирование недорогой системы измерения для исследований по оценке эффективности здания, которая включает, по крайней мере, температуру, относительную влажность, освещенность и расширяемую до дополнительных датчиков, а также разработку прототипа этих устройств..
В результате создается настраиваемая и доступная по цене система, которая позволяет заинтересованным сторонам проводить измерения, необходимые для оценки характеристик здания, эффективным и доступным способом путем одновременной регистрации нескольких параметров окружающей среды. Разработанный регистратор данных с открытым исходным кодом (OPENSDL) сравнивался с регистратором данных HOBO U12-012. Эта коммерчески доступная аналогичная система может измерять 3 параметра, а именно температуру, относительную влажность и освещенность, а также один внешний канал для других типов датчиков. Для измерения любого другого параметра потребуется другое чувствительное устройство. Характеристики измеряемых параметров ограничиваются проприетарным оборудованием и программным обеспечением, что ограничивает систему измерением определенных параметров с определенной точностью. HOBO U12-012 стоит около 13 000 фунтов стерлингов (185 долларов США), тогда как OPENSDL стоит 4 605 фунтов стерлингов (66 долларов США), что составляет почти одну треть от стоимости коммерческого аналога.
Регистратор данных с открытым исходным кодом для мониторинга температуры, относительной влажности и уровней освещенности (освещенности) с помощью Arduino Uno. Это рукоделие для разработки регистратора данных OPENSDL.
Требуемое время: 2-3 часа на пайку, 5 часов на упаковку (4 часа - 3D-печать и 1 час для лазерной резки) Требуемые навыки: пайка, небольшие или нулевые знания в области программирования и электроники.
Требуемые детали:
- Arduino Uno с кабелем
- Экран регистратора данных
- Батарейка типа таблетка CR1220
- Плата подключения датчика температуры, влажности и давления BME280
- Коммутационная плата датчика освещенности TSL2561
- Модуль Wi-Fi ESP01-8266
- Разъем RJ-9 папа и мама
- Заголовки стекирования экрана для Arduino
- Карта памяти SD (любой емкости)
- Векторная доска (26 x 18 отверстий)
- 8 батареек AA Держатель для батареек
Необходимые инструменты:
- Паяльник (35Вт)
- Припой провод
- Кусачки
- Инструмент для обжима
- Мультиметр
Требуемое программное обеспечение: Arduino IDE (1.0.5 или выше)
Используемые библиотеки Arduino:
- Библиотека проводов
- Библиотека SparkFun TSL2561
- Мультисенсорная библиотека Cactus BME280
- Библиотека SD-карт
- Библиотека SPI
- Библиотека RTC
Примечание. Датчик BME280 - это очень точный датчик температуры, относительной влажности и давления от Bosch. Точно так же DS1307 - это точные часы реального времени от Maxim, а TSL2561 - точный датчик освещенности. Существуют менее дорогие и менее точные альтернативы этим продуктам, но это руководство предназначено для людей, которые были заинтересованы в сборе данных для оценки производительности зданий и приложений для мониторинга зданий, требующих высокой точности и точности. Это означает, что любая конкретная настройка оборудования и программного обеспечения (библиотеки, программный код) предназначалась строго только для указанных продуктов.
Шаг 1: Сборка
Щит регистратора данных можно легко установить поверх платы Arduino Uno. Этот экран обеспечивает возможности регистрации данных (хронометраж и хранение данных). Щит пришлось складывать. Батарейка типа «таблетка» CR1220 должна была быть вставлена в круглый слот, чтобы часы продолжали работать, даже когда Arduino выключен. Карта памяти SD должна быть вставлена во встроенный слот для карт. Уникальный индивидуальный экран был разработан с использованием гнездовых контактов разъема RJ-9 и соединительных заголовков Arduino. Соответствующие разъемы были припаяны в соответствующих местах, чтобы экран идеально подходил к плате Arduino. Arduino имеет 18 контактов с одной стороны и 14 контактов с другой стороны. Заголовки с таким же количеством контактов использовались на том же расстоянии (18 контактов друг от друга), что и на Arduino. Оставшееся дополнительное пространство рядом с заголовками было использовано для размещения разъема RJ-9.
Заголовки были лучшим способом использовать необходимые контакты, делая их по-прежнему доступными для использования другими компонентами. Используемые датчики соответствуют протоколу связи I2C, для которого требуется 4 контакта от Arduino, а именно: SDA (также доступен как A4), SCL (также доступен как A5), 3,3 В и GND. Четыре провода, выходящие из разъема RJ-9, были припаяны к этим четырем контактам разъема. Количество необходимых разъемов RJ-9 зависит от количества датчиков. В этом проекте использовались 3 разъема RJ-9 (два для BME280 и один для TSL2561). Четыре провода, выходящие из разъема RJ-9, имели цветовую маркировку, и каждый цветной провод был обозначен как определенный контакт для всех разъемов RJ-9. Следует отметить, что цветовой код может отличаться на разных частях RJ-9. В таком случае необходимо отметить расположение провода на разъеме. Разъем RJ-9 после пайки был прикреплен к векторной плате с помощью Feviqwik, так что он зафиксировался на поверхности. Эти соединения можно проверить с помощью режима проверки целостности на мультиметре. В режиме проверки целостности мультиметр должен показывать нулевое сопротивление. Подключите один из щупов мультиметра к припаянному контакту, а другой щуп к контакту внутри разъема RJ-9. Мультиметр должен издать звуковой сигнал, что означает, что паяные соединения в порядке и соединения выполнены правильно. Если тон не раздается, проверьте паяные соединения. Точно так же припаяйте разъем RJ-9 с теми же проводами, подключенными к одним и тем же отверстиям на платах подключения датчиков, то есть A4, A5, 3,3 В и GND. Датчик BME280 поддерживает два адреса I2C, что означает, что два датчика BME280 могут быть подключены к одному контроллеру одновременно. При этом необходимо изменить адрес одного из датчиков, замкнув контактные площадки на датчике. Микросхема беспроводного подключения ESP-01 требовала следующих подключений к Arduino.
ESP-01 --------- Arduino Uno
10 -------------------- TX
11 -------------------- RX
Vcc ---------------- CH_PD
Vcc ------------------- Vcc
GND ----------------- GND
Примечание: - Несколько светодиодов на Arduino Uno были удалены для увеличения срока службы батареи. Светодиодный индикатор питания, светодиоды RX и TX были удалены путем нагрева паяных соединений и надавливания на светодиод щипцами.
Шаг 2. Настройка IDE и библиотек
Перед программированием необходимо загрузить Arduino IDE (интегрированную среду разработки). Программирование было выполнено на этой платформе. Для взаимодействия с разными компонентами OPENSDL требовались разные библиотеки. Для данных компонентов использовались следующие библиотеки.
Составная часть ------------------------------------------------- --------------Библиотека
Датчик температуры и относительной влажности BME280 --------------------------------- Cactus_io_BME280_I2C.h
Световой датчик------------------------------------------------ ---------------- SparkFun TSL2561.h
Часы реального времени ----------------------------------------------- ------------- RTClib.h
Разъем для SD-карты ----------------------------------------------- ------------- SD.h
Подключение I2C ------------------------------------------------ ------------- Wire.h
Отдельная библиотека для связи с ESP01 не требуется, поскольку код, загруженный в Arduino, имеет AT-команды, которые отправляются на последовательный монитор, откуда ESP-01 принимает инструкции. Таким образом, в основном AT-команды, с помощью которых запускается ESP01, выводятся в Serial Monitor, которые принимаются ESP-01 как входная команда. Для установки этих библиотек после их загрузки откройте IDE Arduino, перейдите в Sketch -> Включить библиотеку -> Добавить библиотеку. Zip и выберите загруженные библиотеки.
Шаг 3: Программирование системы
Перед программированием OPENSDL подключите Arduino к ноутбуку. После подключения перейдите в Инструменты -> Порт и выберите COM-порт, к которому подключен OPENSDL. Также убедитесь, что в меню «Инструменты» -> «Платы» выбрано «Arduino Uno».
OPENSDL был разработан для работы в 2-х режимах. В первом режиме он сохраняет данные на SD-карте на экране регистратора данных. Во втором режиме он отправляет данные через Интернет на веб-сайт с помощью чипа Wi-Fi ESP-01. Программа для обоих режимов разная. Эти строки кода можно напрямую скопировать и вставить в редактор Arduino IDE и использовать напрямую. Попав в код, нам нужно сделать несколько настроек в соответствии с нашими потребностями:
- Вручную измените значение задержки (1000) в конце кода, чтобы изменить интервал регистрации. Значение 1000 представляет интервал в миллисекундах.
- Отредактируйте строку кода, в которой указано mySensorData = SD.open ("Logged01.csv", FILE_WRITE); и замените Logged01 именем файла с желаемым именем. Расширение файла также можно изменить, изменив расширение.csv сразу после имени файла.
- Уравнение калибровки, полученное путем нахождения корреляции между главным / эталонным датчиком и BME280, будет изменяться для каждого датчика. Замените эту строку кода уравнением для калибровки датчиков: Serial.print ((1.0533 * t2) -2.2374) - для датчика с адресом по умолчанию (0x77), где t2 - значение, считываемое с датчика температуры.
Отдельная программа была предоставлена для программирования второго доступного режима OPENSDL, то есть беспроводной системы. ESP-01 должен быть подключен к OPENSDL в соответствии с подключениями, как описано в Шаге № 2. После завершения подключений подключите Arduino к ноутбуку и загрузите пустой скетч в Arduino. Переведите ESP-01 в режим обновления и обновите прошивку до последнего доступного обновления. После обновления обязательно подключите контакт сброса Arduino к контакту 3,3 В, который обходит загрузчик Arduino.
Шаг 4: Изготовление
Корпус OPENSDL был создан для защиты и улучшения внешнего вида. Корпуса были разработаны с помощью 3D-печати с использованием материала PLA, а корпус для микроконтроллера был разработан путем лазерной резки листа МДФ и склеивания частей. 3D-печатные модели были разработаны с помощью программного обеспечения SketchUp, а 2D-чертежи в формате dxf для лазерной резки были созданы с помощью AutoCAD.
Для 3D-печати файлы STL, созданные с помощью SketchUp, открывались и проверялись в программном обеспечении Ultimaker Cura 3.2.1. Убедитесь, что используется материал PLA, а сопло используемого принтера рассчитано на печать 0,4 мм. Для рабочей пластины 3D-принтера может потребоваться клей, чтобы приклеить 3D-печатный объект. Но когда печать завершена, клей создает прочную адгезию между напечатанным объектом и рабочей пластиной.
Шаг 5: Код
Код (файлы.ino) предназначен для работы в программном обеспечении Arduino IDE. Вот ссылка на мою страницу Github для кода и других деталей.
github.com/arihant93/OPENSDL
Не стесняйтесь задавать вопросы о проекте.
Спасибо.