Оглавление:

Регистратор данных с открытым исходным кодом (OPENSDL): 5 шагов (с изображениями)
Регистратор данных с открытым исходным кодом (OPENSDL): 5 шагов (с изображениями)

Видео: Регистратор данных с открытым исходным кодом (OPENSDL): 5 шагов (с изображениями)

Видео: Регистратор данных с открытым исходным кодом (OPENSDL): 5 шагов (с изображениями)
Видео: Как обеспечить целостность данных с помощью хеширования средствами OpenSSL 2024, Июль
Anonim
Регистратор данных с открытым исходным кодом (OPENSDL)
Регистратор данных с открытым исходным кодом (OPENSDL)
Регистратор данных с открытым исходным кодом (OPENSDL)
Регистратор данных с открытым исходным кодом (OPENSDL)
Регистратор данных с открытым исходным кодом (OPENSDL)
Регистратор данных с открытым исходным кодом (OPENSDL)

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

В результате создается настраиваемая и доступная по цене система, которая позволяет заинтересованным сторонам проводить измерения, необходимые для оценки характеристик здания, эффективным и доступным способом путем одновременной регистрации нескольких параметров окружающей среды. Разработанный регистратор данных с открытым исходным кодом (OPENSDL) сравнивался с регистратором данных HOBO U12-012. Эта коммерчески доступная аналогичная система может измерять 3 параметра, а именно температуру, относительную влажность и освещенность, а также один внешний канал для других типов датчиков. Для измерения любого другого параметра потребуется другое чувствительное устройство. Характеристики измеряемых параметров ограничиваются проприетарным оборудованием и программным обеспечением, что ограничивает систему измерением определенных параметров с определенной точностью. HOBO U12-012 стоит около 13 000 фунтов стерлингов (185 долларов США), тогда как OPENSDL стоит 4 605 фунтов стерлингов (66 долларов США), что составляет почти одну треть от стоимости коммерческого аналога.

Регистратор данных с открытым исходным кодом для мониторинга температуры, относительной влажности и уровней освещенности (освещенности) с помощью Arduino Uno. Это рукоделие для разработки регистратора данных OPENSDL.

Требуемое время: 2-3 часа на пайку, 5 часов на упаковку (4 часа - 3D-печать и 1 час для лазерной резки) Требуемые навыки: пайка, небольшие или нулевые знания в области программирования и электроники.

Требуемые детали:

  1. Arduino Uno с кабелем
  2. Экран регистратора данных
  3. Батарейка типа таблетка CR1220
  4. Плата подключения датчика температуры, влажности и давления BME280
  5. Коммутационная плата датчика освещенности TSL2561
  6. Модуль Wi-Fi ESP01-8266
  7. Разъем RJ-9 папа и мама
  8. Заголовки стекирования экрана для Arduino
  9. Карта памяти SD (любой емкости)
  10. Векторная доска (26 x 18 отверстий)
  11. 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 и использовать напрямую. Попав в код, нам нужно сделать несколько настроек в соответствии с нашими потребностями:

  1. Вручную измените значение задержки (1000) в конце кода, чтобы изменить интервал регистрации. Значение 1000 представляет интервал в миллисекундах.
  2. Отредактируйте строку кода, в которой указано mySensorData = SD.open ("Logged01.csv", FILE_WRITE); и замените Logged01 именем файла с желаемым именем. Расширение файла также можно изменить, изменив расширение.csv сразу после имени файла.
  3. Уравнение калибровки, полученное путем нахождения корреляции между главным / эталонным датчиком и 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

Не стесняйтесь задавать вопросы о проекте.

Спасибо.

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