Это часть проекта по мониторингу параметров окружающей среды при помощи Arduino, Raspberry PI и датчиков BME280 и MHZ19b.
Датчики BME280 и MHZ19b подключаются к Arduino и служат для измерения температуры, влажности, давления и содержания углекислого газа. Вместо Raspberry PI может использоваться любое устройство с USB-портом для подключения Arduino и возможностью развернуть веб-сервер и БД.
В этом репозитории размещен скетч проекта, загружаемого на Arduino. Репозиторий с Java-сервисом для получения данных с Arduino и сохранения их в БД находится здесь. Репозиторий с сайтом для вывода данных из БД на данный момент является приватным.
Датчик BME280 подключается к UART-пинам и не нуждается в настройке.
Датчик MHZ19b подключается к двум аналоговым пинам, которые передаются в конструктор класса MHZ19b. Используемые пины можно изменить в файле LAWI-ArduinoSensors.ino.
Также в файле LAWI-ArduinoSensors.ino происходит настройка вывода на USB данных с датчиков. Режим вывода определяет параметр передаваемый в конструктор класса printer.
Существует 3 режима вывода:
- String - стандартный вывод используемый в большинстве проектов на Arduino. Вывод происходит в виде строки, выводится список данных и их значений.
- Plotter - вывод для построения графиков в Arduino IDE. Вывод происходит в виде строки, выводятся только значения разбитые пробелами. Это позволяет автоматически строить графики при помощи встроенного в Arduiono IDE плоттера.
- Hash - компактный формат вывода с защитой от искажений. Переменные передаются по байтам в том виде, в котором хранятся в памяти. В начале каждого сообщения находятся стартовые байты (уникальная константа), позволяющие отследить начало передачи очередного сообщения. В конце каждого сообщения находится полиномиальный хеш в степени простого числа от данных из сообщения, что позволяет гарантировать неизменность данных в процессе передачи.
Помимо самих данных с датчиков также передаются биты, показывающие корректность работы датчика в процессе измерений.