Оглавление:
- Шаг 1. Подготовка Raspberry Pi
- Шаг 2: Настройка NoCAN
- Шаг 3: Собираем оборудование UFire вместе
- Шаг 4. Аппаратное обеспечение NoCAN
- Шаг 5: запрограммируйте узел CANZERO
- Шаг 6. Как все это взаимосвязано?
- Шаг 7. Настройка Chronograf или Grafana
- Шаг 8: некоторые улучшения
Видео: Хранение и графическое отображение данных EC / pH / ORP с помощью TICK Stack и платформы NoCAN: 8 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Здесь будет рассказано, как использовать платформу 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, немного подождите и введите:
Вы должны быть в приглашении для входа в систему. Пароль - малиновый.
Шаг 2: Настройка NoCAN
Omzlo предоставляет подробное руководство по установке. Но я решил упростить себе задачу и немного узнать о сценариях на Bash. Итак, запустите Raspberry Pi и подключите к нему SSH или последовательный терминал.
Я узнал, что на создание хорошего сценария Bash уходит столько же времени на разработку, сколько на то, что вы пытаетесь установить. Есть 1000 способов сделать что-то, некоторые проще понять или выполнить, чем другие. В конце концов, я мало что сделал. Если вы выполните:
wget https://ufire.co/nocan.sh && chmod + x nocan.sh && sudo./nocan.sh
В терминале вашего Raspberry Pi он загрузит и выполнит скрипт.
Затем это:
- Загружает демон Omzlo NoCAN и устанавливает его в / usr / bin для облегчения доступа, создает папку ~ /.nocand и записывает очень простой файл конфигурации с паролем, установленным на «пароль». Вам, вероятно, следует изменить его на что-то другое, это в ~ /.nocand / config.
- Скачивает клиент Omzlo NoCAN, копирует его в / usr / bin и создает файл базовой конфигурации с тем же паролем. Это ~ /.nocanc.conf.
- Устанавливает службу Systemd, которая поддерживает работу демона NoCAN.
- Записывает файл Python в ~ /.nocand, nocan_ufire.py. Он будет взаимодействовать с прошивкой узла NoCAN и проводить измерения EC, pH и ОВП, анализировать результаты и добавлять их в базу данных InfluxDB.
- Добавляет репозиторий InfluxData в apt и устанавливает стек TICK. И поскольку я предпочитаю его хронографу, он также устанавливает Grafana.
- Создает пустую базу данных 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 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 также проста. Подключите PiMaster к Raspberry Pi и найдите для него подходящий источник питания.
Следуйте инструкциям Omzlo по изготовлению кабелей для вашего проекта.
Разверните свой узел и найдите место для PiMaster.
Шаг 5: запрограммируйте узел CANZERO
Одна из замечательных особенностей этой настройки - вы можете получить доступ к узлам даже после их развертывания. Они программируются по проводу CAN, так что вы можете перепрограммировать их в любое время.
Для этого вам понадобится установленная Arduino IDE, PiMaster в вашей сети и ваш узел, подключенный к шине CAN. Вам также понадобится программа под названием nocanc, установленная на вашем компьютере разработчика. Все это описано на странице установки Omzlo.
Посетите GitHub и скопируйте код в новый скетч Arduino IDE. Измените плату на Omzlo CANZERO и выберите узел в меню «Порт». Затем просто нажмите «Загрузить», как обычно. Если все пойдет по плану, у вас должен быть запрограммированный узел, готовый выполнить некоторые измерения.
Шаг 6. Как все это взаимосвязано?
Теперь, когда все программное и аппаратное обеспечение настроено, давайте поговорим о том, как все это на самом деле будет работать. И продемонстрируем мои навыки работы с GIMP …
В итоге:
- Узел CANZERO подключен к PiMaster и где-то развернут
- Каждую минуту на PiMaster запускается задание Cron. Он выполнит скрипт Python.
- Скрипт python отправит команду узлу, сообщая ему о проведении измерения или другом действии.
- Узел выполнит то, что было командой, и вернет результат в формате JSON.
- Скрипт 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 предоставляет для отправки уведомлений.
- Конечно, добавить больше датчиков.
Рекомендуемые:
Как сделать отслеживание данных о коронавирусе COVID 19 в реальном времени с помощью ESP8266, отображение электронной бумаги: 7 шагов
Как сделать трекер данных о коронавирусе COVID 19 в реальном времени с ESP8266, дисплей электронной бумаги: 1
Чтение и отображение данных датчика освещенности и температуры с помощью Raspberry Pi: 5 шагов
Чтение и отображение данных датчика освещенности и температуры с помощью Raspberry Pi: в этом руководстве вы узнаете, как считывать данные датчика освещенности и температуры с помощью Raspberry Pi и аналого-цифрового преобразователя ADS1115 и строить график с помощью matplotlib. Начнем с необходимых материалов
Извлечение и отображение данных с любого веб-сайта через Wi-Fi (индикатор северного сияния) с помощью NodeMcu: 6 шагов
Извлечение и отображение данных с любого веб-сайта через Wi-Fi (индикатор северного сияния) с помощью NodeMcu: Моя мотивация: я видел МНОГО инструкций по настройке / использованию NodeMCU (построенного на модуле ESP8266) для создания проектов IoT (Интернет вещей) . Однако очень немногие из этих руководств содержали все детали / код / диаграммы для очень новичков
Мониторинг температуры и влажности DHT с помощью ESP8266 и платформы AskSensors IoT: 8 шагов
Мониторинг температуры и влажности DHT с использованием ESP8266 и платформы AskSensors IoT: в предыдущих инструкциях я представил пошаговое руководство по началу работы с ESP8266 nodeMCU и платформой AskSensors IoT. В этом руководстве я подключаю датчик DHT11 к узлу MCU. DHT11 обычно используется для измерения температуры и влажности
Отображение температуры и влажности и сбор данных с помощью Arduino и обработка: 13 шагов (с изображениями)
Отображение температуры и влажности и сбор данных с помощью Arduino и обработки: Введение: это проект, в котором используется плата Arduino, датчик (DHT11), компьютер с Windows и программа обработки (загружаемая бесплатно) для отображения данных температуры и влажности в цифровом и форма гистограммы, отображение времени и даты и запуск подсчета времени