Оглавление:

Хранение и графическое отображение данных EC / pH / ORP с помощью TICK Stack и платформы NoCAN: 8 шагов
Хранение и графическое отображение данных EC / pH / ORP с помощью TICK Stack и платформы NoCAN: 8 шагов

Видео: Хранение и графическое отображение данных EC / pH / ORP с помощью TICK Stack и платформы NoCAN: 8 шагов

Видео: Хранение и графическое отображение данных EC / pH / ORP с помощью TICK Stack и платформы NoCAN: 8 шагов
Видео: База данных как модель предметной области | Информатика 9 класс #9 | Инфоурок 2024, Декабрь
Anonim
Хранение и графическое отображение данных EC / pH / ORP с помощью TICK Stack и платформы NoCAN
Хранение и графическое отображение данных EC / pH / ORP с помощью TICK Stack и платформы NoCAN

Здесь будет рассказано, как использовать платформу NoCAN от Omzlo и датчики uFire для измерения EC, pH и ОВП. Как говорится на их веб-сайте, иногда проще просто проложить кабель к узлам датчиков. CAN имеет преимущество связи и питания в одном кабеле, поэтому сигнал и аккумулятор не являются проблемой. Прошивка узлов может быть проще; Например, не нужно беспокоиться о спящих режимах или настройке Wi-Fi. Платформа NoCAN также имеет некоторые замечательные функции, такие как программирование узлов по шине CAN.

Платформа NoCAN использует Raspberry Pi, поэтому все, что можно делать, будет доступно. Мы собираемся воспользоваться этим, установив стек TICK. Это позволит нам использовать InfluxDB для хранения измерений. Это база данных на основе таймсерий, специально созданная для такого рода вещей. Он также поставляется с Chronograf для создания информационных панелей и отображения всех данных, которые мы собираемся получить. Буквы T и K обозначают Telegraf и Kapacitor. Telegraf находится между отправляемыми вами данными и базой данных Influx. Kapacitor - это двигатель событий. Когда что-то происходит, он может отправить вам уведомление различными способами. И поскольку он мне нравится больше, чем Chronograf, я установлю Grafana для дашбордов.

Шаг 1. Подготовка Raspberry Pi

Перейдите на страницу загрузки Rasbian и загрузите образ с рабочим столом и рекомендуемым программным обеспечением, а затем запишите его на SD-карту.

После того, как образ будет на вашей SD-карте, у вас должно быть два тома, корневой и загрузочный. Откройте терминал при загрузке и введите:

коснитесь ssh

Это включит SSH.

Затем введите:

нано wpa_supplicant.conf

И скопируйте / вставьте следующее после того, как вы изменили его для своего округа и настроек Wi-Fi:

страна = США

ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev update_config = 1 network = {ssid = "NETWORK-NAME" psk = "NETWORK-PASSWORD"}

Коды стран берутся отсюда.

Включить SPI:

echo "dtparam = spi = on" >> config.txt

Вставьте SD-карту в Raspberry Pi, немного подождите и введите:

ssh [email protected]

Вы должны быть в приглашении для входа в систему. Пароль - малиновый.

Шаг 2: Настройка NoCAN

Omzlo предоставляет подробное руководство по установке. Но я решил упростить себе задачу и немного узнать о сценариях на Bash. Итак, запустите Raspberry Pi и подключите к нему SSH или последовательный терминал.

Я узнал, что на создание хорошего сценария Bash уходит столько же времени на разработку, сколько на то, что вы пытаетесь установить. Есть 1000 способов сделать что-то, некоторые проще понять или выполнить, чем другие. В конце концов, я мало что сделал. Если вы выполните:

wget https://ufire.co/nocan.sh && chmod + x nocan.sh && sudo./nocan.sh

В терминале вашего Raspberry Pi он загрузит и выполнит скрипт.

Затем это:

  1. Загружает демон Omzlo NoCAN и устанавливает его в / usr / bin для облегчения доступа, создает папку ~ /.nocand и записывает очень простой файл конфигурации с паролем, установленным на «пароль». Вам, вероятно, следует изменить его на что-то другое, это в ~ /.nocand / config.
  2. Скачивает клиент Omzlo NoCAN, копирует его в / usr / bin и создает файл базовой конфигурации с тем же паролем. Это ~ /.nocanc.conf.
  3. Устанавливает службу Systemd, которая поддерживает работу демона NoCAN.
  4. Записывает файл Python в ~ /.nocand, nocan_ufire.py. Он будет взаимодействовать с прошивкой узла NoCAN и проводить измерения EC, pH и ОВП, анализировать результаты и добавлять их в базу данных InfluxDB.
  5. Добавляет репозиторий InfluxData в apt и устанавливает стек TICK. И поскольку я предпочитаю его хронографу, он также устанавливает Grafana.
  6. Создает пустую базу данных Influx

Некоторые ошибки, с которыми вы можете столкнуться:

  • Возможно, ваш языковой стандарт не настроен, поэтому запустите dpkg-reconfigure locales.
  • Установка Grafana может зависнуть, поэтому попробуйте еще раз.
  • Демон притока может не запуститься вовремя, чтобы сценарий добавил базу данных, введите

    curl -i -XPOST https:// localhost: 8086 / query --data-urlencode "q = CREATE DATABASE nocan"

  • Этот скрипт работает только как пользователь pi по умолчанию. Вам нужно будет изменить pi на свое имя пользователя, где это необходимо, если вы работаете под другим пользователем.

Последнее, что нужно добавить - это задание cron. Мне не удалось найти очень хороший способ написания этого сценария, поэтому введите crontab -e для редактирования вручную и добавьте «* * * * * python /home/pi/.nocand/nocan_ufire.py».

Как только это все будет сделано, вы можете убедиться, что все настроено и работает должным образом. Графана живет по адресу https:// [Адрес Raspberry Pi]: 3000 /. Вы должны увидеть страницу входа в систему, по умолчанию - admin / admin.

Хронограф можно найти по адресу https:// [Адрес Raspberry Pi]: 8888 /

Шаг 3: Собираем оборудование UFire вместе

Собираем оборудование UFire вместе
Собираем оборудование UFire вместе

Прежде чем мы сможем собрать оборудование, нужно решить одну вещь. Плату uFire ISE можно использовать для измерения как pH, так и ОВП. Оборудование такое же, но программное обеспечение другое. Поскольку оборудование такое же, это означает, что адрес I2C по умолчанию такой же. А датчики обмениваются данными через I2C, поэтому необходимо будет заменить один. Для этого проекта мы собираемся выбрать одну из плат ISE и использовать ее для измерения ОВП. Следуя приведенным здесь инструкциям, измените адрес на 0x3e.

Теперь, когда адрес изменен, собрать оборудование стало легко. Эта настройка основана на более ранней работе, выполняющей в основном то же самое, но с использованием BLE, а не CAN для передачи данных. Вы можете прочитать об этом в Arduino Project Hub. Все сенсорные устройства используют систему подключения Qwiic, поэтому просто соедините все вместе в цепочку, есть только один способ вставить провода Qwiic в Qwiic. Вам понадобится один провод Qwiic-Male для подключения одного из датчиков к узлу CANZERO. Провода соответствуют друг другу и имеют цветовую маркировку. Подключите черный цвет к GND узла, красный к контакту + 3,3 В или + 5 В, синий к контакту SDA, который является D11, и желтый к контакту SCL на D12.

В этом проекте предполагается, что информация о температуре будет поступать от датчика EC, поэтому обязательно прикрепите датчик температуры к плате EC. Однако все платы имеют возможность измерять температуру. Не забудьте прикрепить датчики EC, pH и ORP к соответствующим датчикам. Они легко подключаются с помощью разъемов BNC. Если у вас есть вольер, было бы неплохо разместить все это внутри, особенно с учетом того, что в нем будет задействована вода.

Шаг 4. Аппаратное обеспечение NoCAN

Оборудование NoCAN
Оборудование NoCAN

Сборка оборудования NoCAN также проста. Подключите PiMaster к Raspberry Pi и найдите для него подходящий источник питания.

Следуйте инструкциям Omzlo по изготовлению кабелей для вашего проекта.

Разверните свой узел и найдите место для PiMaster.

Шаг 5: запрограммируйте узел CANZERO

Запрограммируйте узел CANZERO
Запрограммируйте узел CANZERO

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

Для этого вам понадобится установленная Arduino IDE, PiMaster в вашей сети и ваш узел, подключенный к шине CAN. Вам также понадобится программа под названием nocanc, установленная на вашем компьютере разработчика. Все это описано на странице установки Omzlo.

Посетите GitHub и скопируйте код в новый скетч Arduino IDE. Измените плату на Omzlo CANZERO и выберите узел в меню «Порт». Затем просто нажмите «Загрузить», как обычно. Если все пойдет по плану, у вас должен быть запрограммированный узел, готовый выполнить некоторые измерения.

Шаг 6. Как все это взаимосвязано?

Как все это связано?
Как все это связано?

Теперь, когда все программное и аппаратное обеспечение настроено, давайте поговорим о том, как все это на самом деле будет работать. И продемонстрируем мои навыки работы с GIMP …

В итоге:

  1. Узел CANZERO подключен к PiMaster и где-то развернут
  2. Каждую минуту на PiMaster запускается задание Cron. Он выполнит скрипт Python.
  3. Скрипт python отправит команду узлу, сообщая ему о проведении измерения или другом действии.
  4. Узел выполнит то, что было командой, и вернет результат в формате JSON.
  5. Скрипт python получит этот результат, проанализирует его и обновит с его помощью InfluxDB.

Последний шаг - посмотреть, как данные собираются в красивых диаграммах.

Шаг 7. Настройка Chronograf или Grafana

Настройка хронографа или графаны
Настройка хронографа или графаны

Последнее, что нужно сделать, это настроить несколько графиков в Chronograf или Grafana.

Вам нужно будет настроить источник данных. Значения по умолчанию для InfluxDB в порядке. Его адрес - https:// localhost: 8086, имя пользователя и пароль отсутствуют.

Оба похожи в том, что они организованы в панели мониторинга, внутри которых есть любое количество диаграмм. У обоих есть область исследования, которая позволяет вам видеть измерения и интерактивно создавать диаграммы. Помните, что имя базы данных - «nocan», и она состоит из нескольких измерений с одним значением.

Как я уже упоминал, я предпочитаю Grafana, потому что она более настраиваема, чем Chronograf. Он также удобен для мобильных устройств, в отличие от Chronograf. Диаграммы легко встраиваются и делятся

Шаг 8: некоторые улучшения

  • Вы можете установить имя хоста вашего Raspberry Pi, чтобы упростить доступ к нему в вашей сети. Вы можете сделать это в raspi-config. Я изменил свой на nocan, поэтому я смог перейти на nocan.local, чтобы получить к нему доступ (не работает на Android).
  • Вы можете установить такую программу, как ngrok, для доступа к Raspberry Pi за пределами вашей сети.
  • Используйте один из методов, которые Kapacitor предоставляет для отправки уведомлений.
  • Конечно, добавить больше датчиков.

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