Метеодатчик для компьютера

Проекты на Arduino Uno и Slot Shield

Метеодатчик легко подключить к компьютеру и вывести показания температуры и влажности в SerialPort.

Для этого понадобится Arduino Uno и цифровой метеосенсор.

Что потребуется

Полный сет компонентов проекта. В сет входят:

Видеоинструкция

Как собрать

Установите Troyka Slot Shield на Arduino Uno

Подключите метеодатчик к пинам I²C разъёма A.

Вставьте Quad Display в разъёмы E и F. Пин CS подключите к 10 пину Arduino.

Скетч

Прошейте контроллер скетчем через Arduino IDE.

weather-station-pc.ino
// библиотека для работы I²C
#include <Wire.h>
// библиотека для работы с метеосенсором
#include <TroykaMeteoSensor.h>
 
// создаём объект для работы с метеосенсором
TroykaMeteoSensor meteoSensor;
// создаем объект класса long для хранения счетчика
unsigned long respite_Meteo = 0;
 
void setup() {
  // открываем последовательный порт
  Serial.begin(9600);
 
  // инициализируем метеосенсор
  meteoSensor.begin();
}
 
void loop() {
  // запускаем бесконечный счетчик. Его содержимое будет обрабатываться каждые 1000 миллисекунд
  if (millis() - respite_Meteo > 1000) {
    // считываем данные с датчика
    int stateSensor = meteoSensor.read();
    // проверяем состояние данных
    switch (stateSensor) {
      case SHT_OK:
        // выводим показания температуры для плоттера по последовательному соединению
        Serial.print(meteoSensor.getTemperatureC());
        break;
      // выводим сообщение в Монитор порта, если ошибка данных или сенсор не подключён
      case SHT_ERROR_DATA:
        Serial.println("Data error or sensor not connected");
        break;
      // выводим сообщение в Монитор порта, если ошибка контрольной суммы
      case SHT_ERROR_CHECKSUM:
        Serial.println("Checksum error");
        break;
    }
    Serial.print('\t');
    switch (stateSensor) {
      case SHT_OK:
         // выводим показания влажности для плоттера по последовательному соединению
        Serial.println(meteoSensor.getHumidity());
        break;
      // выводим сообщение в Монитор порта, если ошибка данных или сенсор не подключён
      case SHT_ERROR_DATA:
        Serial.println("Data error or sensor not connected");
        break;
      // выводим сообщение в Монитор порта, если ошибка контрольной суммы
      case SHT_ERROR_CHECKSUM:
        Serial.println("Checksum error");
        break;
    }
    respite_Meteo = millis();
  }
}

Часто задаваемые вопросы

Где скачать необходимые библиотеки и как их установить?