Метеодатчик (Troyka-модуль)
Метеосенсор поможет определить температуру и влажность в комнате, климатической теплице или парнике.
Видеообзор
Общие сведения
Метеосенсор не требуют калибровки и позволяет получать на выходе цифровые данные по шине I²C/TWI. Малый ток потребления позволяет использовать сенсор с батарейным питанием и дистанционным сбором информации.
Пример для Arduino
В качестве примера выведем в Serial-порт текущее значение температуры и влажности.
Схема устройства
Подключите метеосенсор к Arduino Uno к пинам шины I²C — SDA
и SCL
.
Для быстрой сборки используйте Troyka Shield. С Troyka Slot Shield провода не понадобятся вовсе.
Код программы
Прошейте Arduino скетчем приведённым ниже. Для запуска примера скачайте и установите библиотеку TroykaMeteoSensor.
- meteoSensor.ino
// библиотека для работы с метеосенсором #include <TroykaMeteoSensor.h> // создаём объект для работы с датчиком TroykaMeteoSensor meteoSensor; void setup() { // открываем последовательный порт Serial.begin(115200); // ждём открытия порта while(!Serial) { } // печатаем сообщение об успешной инициализации Serial-порта Serial.println("Serial init OK"); // начало работы с датчиком meteoSensor.begin(); Serial.println("Meteo Sensor init OK"); // ждём одну секунду delay(1000); } void loop() { // считываем данные с датчика int stateSensor = meteoSensor.read(); // проверяем состояние данных switch (stateSensor) { case SHT_OK: // выводим показания влажности и температуры Serial.println("Data sensor is OK"); Serial.print("Temperature = "); Serial.print(meteoSensor.getTemperatureC()); Serial.println(" C \t"); Serial.print("Temperature = "); Serial.print(meteoSensor.getTemperatureK()); Serial.println(" K \t"); Serial.print("Temperature = "); Serial.print(meteoSensor.getTemperatureF()); Serial.println(" F \t"); Serial.print("Humidity = "); Serial.print(meteoSensor.getHumidity()); Serial.println(" %\r\n"); break; // ошибка данных или сенсор не подключён case SHT_ERROR_DATA: Serial.println("Data error or sensor not connected"); break; // ошибка контрольной суммы case SHT_ERROR_CHECKSUM: Serial.println("Checksum error"); break; } // ждём одну секунду delay(1000); }
Пример для Espruino
Выведем данные температуры и влажности в консоль Espruino Web IDE.
Схема устройства
Подключите метеосенсор к Iskra JS к пинам шины I²C — SDA
и SCL
.
Для быстрой сборки используйте Troyka Shield. С Troyka Slot Shield провода не понадобятся вовсе. Прошейте платформу ниже приведённым скриптом.
Код программы
- meteoSensor.js
PrimaryI2C.setup({sda: SDA, scl: SCL, bitrate: 100000}); // для адреса 0x44 var meteoSensor = require('@amperka/meteo-sensor').connect(); // для адреса 0x45 /*var meteoSensor = require('@amperka/meteo-sensor').connect({ address: 0x45 }); */ setInterval(() => { meteoSensor.read(function(err, data) { if (err) { console.log(err); } else { console.log("Temp is: " + data.tempC + " C, " + data.tempF + " F, "+ data.tempK + " K, " + "Hum is: " + data.humidity + " %"); } }); }, 1000);
Пример для WiFi Slot
Вычислим показания температуры и влажности через платформу WiFi Slot.
Схема устройства
Подключите метеосенсор к платформе WiFi Slot к пинам шины I²C — SDA
и SCL
. Для этого установите датчик в соответствующий слот.
Код программы
Платформа WiFi Slot программируется двумя способами:
Соответственно после настройки платформы выберите код из примера Arduino или код для JavaScript.
Пример для Raspberry Pi
Вычислим данные с метеосенсора с помощью одноплатника Raspberry Pi.
Схема устройства
Подключите метеосенсор к пинам шины I²C — SDA
и SCL
на Raspberry Pi.
Для избежания макеток и проводов используйте плату расширения Troyka Cap.
Элементы платы
Чип температуры и влажности
Модуль выполнен на высокоточном сенсоре температуры и влажности SHT31 от компании Sensirion.
В функционал чипа входит схема обработки и усиления сигнала, блок памяти калибровки, АЦП и схема сброса по питанию.
Troyka-контакты
На сенсоре выведено две пары Troyka-контактов.
Нижняя группа
- Питание (V) — соедините с рабочим напряжением микроконтроллера.
- Земля (G) — Соедините с пином
GND
микроконтроллера.
Верхняя группа
- Сигнальный (D) — пин данных шины I²C. Подключите к
SDA
пину микроконтроллера. - Сигнальный (C) — пин тактирования шины I²C. Подключите к
SCL
пину микроконтроллера.
Смена адреса модуля
Иногда в проекте необходимо использовать несколько температурных сенсоров. Для смена адреса капните каплей припоя на отведённую контактную площадку на обратной стороне модуля. После чего адрес сенсора сменится с 0x44
на 0x45
.
Принципиальная и монтажная схемы
Характеристики
- Чип: SHT31
- Напряжение питания: 3.3–5 В
- Интерфейс: I²C
- Адрес модуля: 0x44 (по умолчанию) / 0x45
- Параметры температуры:
- Диапазон измерения: −40…+125 °С
- Разрешение: 0,01 °С
- Погрешность: ±0.2 °С
- Параметры влажности:
- Диапазон измерения: 0–100 %RH
- Разрешение: 0,01 %RH
- Погрешность: ±2 %RH
- Габариты: 25,4×25,4 мм