Метеосенсор поможет определить температуру и влажность в комнате, климатической теплице или парнике.
Метеосенсор не требуют калибровки и позволяет получать на выходе цифровые данные по шине I²C/TWI. Малый ток потребления позволяет использовать сенсор с батарейным питанием и дистанционным сбором информации.
В качестве примера выведем в Serial-порт текущее значение температуры и влажности.
Подключите метеосенсор к Arduino Uno к пинам шины I²C — SDA
и SCL
.
Для быстрой сборки используйте Troyka Shield. С Troyka Slot Shield провода не понадобятся вовсе.
Прошейте Arduino скетчем приведённым ниже. Для запуска примера скачайте и установите библиотеку TroykaMeteoSensor.
// библиотека для работы с метеосенсором #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 Web IDE.
Подключите метеосенсор к Iskra JS к пинам шины I²C — SDA
и SCL
.
Для быстрой сборки используйте Troyka Shield. С Troyka Slot Shield провода не понадобятся вовсе. Прошейте платформу ниже приведённым скриптом.
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 к пинам шины I²C — SDA
и SCL
. Для этого установите датчик в соответствующий слот.
Платформа WiFi Slot программируется двумя способами:
Соответственно после настройки платформы выберите код из примера Arduino или код для JavaScript.
Вычислим данные с метеосенсора с помощью одноплатника Raspberry Pi.
Подключите метеосенсор к пинам шины I²C — SDA
и SCL
на Raspberry Pi.
Для избежания макеток и проводов используйте плату расширения Troyka Cap.
Модуль выполнен на высокоточном сенсоре температуры и влажности SHT31 от компании Sensirion.
В функционал чипа входит схема обработки и усиления сигнала, блок памяти калибровки, АЦП и схема сброса по питанию.
На сенсоре выведено две пары Troyka-контактов.
Нижняя группа
GND
микроконтроллера.Верхняя группа
SDA
пину микроконтроллера.SCL
пину микроконтроллера.
Иногда в проекте необходимо использовать несколько температурных сенсоров. Для смена адреса капните каплей припоя на отведённую контактную площадку на обратной стороне модуля. После чего адрес сенсора сменится с 0x44
на 0x45
.