Тут
Здесь
Система должна:
Полевой измерительный модуль
Управляющий модуль
Центральный сервер
Веб-интерфейс
Arduino NANO
Делает это
LoRa
Делает то
Корпус
Аккумулятор
Полевой измерительный модуль должен:
Процесс запуска
Заливка скетча на Arduino
Откройте "carbon_sensor\firmware\Arduino\sketch_sensors\sketch_mar29a\sketch_mar29a.ino" в Arduino IDE.
Подключите Arduino UNO по USB.
Убедитесь, что в инструментах (Tools) выбран правильный порт и плата.
Убедитесь что переменные currentSensor и presCurentSensor отображают нужные датчики давления и co2.
Нажмите Upload и дождитесь «Done uploading».
Если датчики подключены правильно, при запуске (перезагрузке) Arduino готов к приёму двоичных пакетов.
Запуск Python-программы
Установите зависимости:
pip install pyserial requests
Откройте файл PyCom.py.
Проверьте порт (в скрипте указан 'COM4', подставьте свой).
ВАЖНО!! Количество измерений за один опрос платы задается с помощью переменной sensor_time в коде. Если было выбрано очень большое значение и программа выдала ошибку: Не получили полный пакет, пришло байт: 0, попробуйте увеличить timeout при открытии порта serial.Serial('COM4', 9600, timeout=X).
Если вам не требуется получать отладочные данные в консоль измените значение флага DEBAG на False.
Если вам необходимо откалибровать сенсоры CO2 измените значение переменной CAL_SENSOR на 1, иначе оставте 0.
Количество опросов со стороны питона можно менять заменив цикл while(True): например на for i in range(10):
Запустите:
python PyCom.py
Python при первом запуске:
Откроет порт COM4 со скоростью 9600 бод.
Подождёт ~5 секунд (специфика UNO, которое перезагружается при открытии порта).
Сформирует 7-байтовый пакет (команда, ID, время компьютера в секундах суток, статус).
Отправит его Arduino.
Прочитает 17-байтовый ответ.
Распарсит температуру, давление, CO₂. Выведет в консоль.
Отправит POST-запрос на https://carbon.kvantmaster.ru/rest/v1/enviroment с Bearer-токеном и передаст temperature и co2.