( https://forktestlab.com/m-t-a-h )
Получите показания температуры и влажности, которые будут использоваться в автоматизированном стенде.
- Структура. Диаграмма подключения. Подключение к ПК для нашей будущей стойки нам не нужно, чтобы лабораторные показатели точности. Датчик с интерфейсом I2C HTU21D может использоваться для мониторинга температуры и влажности. Он показывает влажность с точностью около 2% и температуры с точностью около 0,3%. HTU21D – хороший и дешевый датчик.
Следующий шаг: Мы берем вилку и подключаем ПК/подключаем через Ethernet или WiFi. Подключите датчик, как показано на рисунке.
Чтобы прочитать данные, нам нужно знать адрес и команды чтения I2C.
• Адрес I2C 0x40. • Команда чтения температуры 0xe3 • Влажность чтения команды 0xe5
Браузер поисковой панель управления Нам нужно установить последовательность запроса HTTP для вилки с определенной строкой запроса. Команды в вилке основаны на принципе »или просто« ключ ». Каждый запрос в браузере получит ответ от FORK. Вы также можете комбинировать запросы, используя и символ.
Начните с i2c Укажите значение команды i_mode i2c
В конце концов мы получим i2c
- Прочитайте температуру в формате ASCII_HEX. Для этого мы будем использовать две команды. Первый G_REQ_RES_FORT – указать формат запроса и ответа в значение ASCII_HEX. Вторая команда I_I2C_WRITE_READ – генерировать последовательность I2C к перезапуску. Значение – состоит из нескольких байтов.
Результат будет представлен в виде последовательности байтов, на которые ответил датчик.
Вот просьба мы получили
http://192.168.0.205/control?g_req_res_form=ascii_hex&i_i2c_write_read=40010003E3
В ответ на этот запрос мы получили ASCII_HEX, 69FC69
Давайте читаем данные влажности. Указал формат данных и создал последовательность для использования I2C. Как с температурой данных, но только команда для датчика изменилась.
http://192.168.0.205/control?g_req_res_form=ascii_hex&i_i2c_write_read=40010003E5
Пример ответа ASCII Hex, 2ade29we получил ответ от датчика.
Теперь нам нужно выделить данные о температуре и влажности, которые нам нужны. Для температуры и влажности пакет располагается таким же образом и не зависит от байтов данных.
Нам также понадобятся формулы для перевода данных. К сожалению, в таблице данных в формулах есть ошибка с мощностью двух, поэтому я напишу здесь исправленные формулы. Для температуры Stemp – датчик данных, n – количество битов показаний для влажности в целом в результате мы получили следующие показания датчика
Температура: 25,89 ℃ Относительная влажность: 78%
HTML JavaScript Page Control Действия в предыдущем абзаце довольно утомительно, и у нас нет весь день. Кроме того, я хотел бы иметь некоторый интерфейс в этом случае. Поэтому мы сделаем HTML-страницу и автоматическое распределение на JavaScript. Вот что у нас есть. Мы включаем I2C на выходе интерфейса, ударяя кнопку «INIT I2C». И кнопка «Чтение температуры и RH», чтобы отправить команду, чтобы мы могли немедленно получить показания температуры и влажности. Мы также можем загрузить страницу на вилку и спросить прямо оттуда. Для этого вам нужно будет изменить одну строку в код.
var url_path ‘ http://192.168.0.205/ к var url_path ‘/’;
И загрузите файл, используя файловый менеджер.
http://192.168.0.205/file_manager
Теперь, чтобы запустить наш интерфейс, нам нужно пойти в
http://192.168.0.205/user_example_i2c.html
Управление через сценарий Python Давайте сделаем то же самое сейчас, но, используя Python. Во-первых, мы подключаем/подключаем модуль Fork и создайте устройство цели
От forkapi.fork Импортировать вилков (‘192.168.0.205’)
Тогда нам также нужно инициализировать I2C на входе интерфейса
dev1.I2CEnable()
Затем дайте команду нашему датчику и получите ответ
addr = 0x4 data = b'\xE3 res = dev1.I2CWriteRead(addr,3,data)
Как и прежде, проведем ряд преобразований, которые мы получаем показания температуры и влажности. Результат отображается на консоли.
Оригинал: “https://dev.to/forktestlab/measuring-temperature-and-humidity-4ak1”