Метеодатчик (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 мм

Ресурсы