Для чего нужен ОрбиКрафт
Подсистемы конструктора
Инструкции по работе с ОрбиКрафт
Уроки
Лабораторная оснастка
Знакомство с Arduino
Полезная нагрузка на базе Arduino
Обратная связь
Новости
Для чего нужен ОрбиКрафт
Подсистемы конструктора
Инструкции по работе с ОрбиКрафт
Уроки
Лабораторная оснастка
Знакомство с Arduino
Полезная нагрузка на базе Arduino
Обратная связь
Новости
Внутри корпуса на стороне датчиков находятся датчик влажности и датчик температуры NTC (термистор). С другой стороны имеется небольшая печатная плата с 8-разрядной микросхемой в корпусе SOIC-14. Эта микросхема измеряет и обрабатывает аналоговый сигнал с сохраненными калибровочными коэффициентами, выполняет аналого-цифровое преобразование и выдает цифровой сигнал с данными о температуре и влажности.
Чувствительный к влажности компонент, который используется, разумеется, для измерения влажности, имеет два электрода с влагоудерживающей подложкой (обычно соль или проводящий пластиковый полимер), зажатой между ними. По мере поглощения водяного пара подложка высвобождает ионы, что, в свою очередь, увеличивает проводимость между электродами. Изменение сопротивления между двумя электродами пропорционально относительной влажности. Более высокая относительная влажность уменьшает сопротивление между электродами, в то время как более низкая относительная влажность увеличивает это сопротивление.
Кроме того, в этих датчиках для измерения температуры имеется датчик температуры NTC (термистор). Термистор – это терморезистор – резистор, который меняет свое сопротивление в зависимости от температуры. Технически все резисторы являются термисторами – их сопротивление слегка изменяется в зависимости от температуры, но обычно это изменение очень мало и его трудно измерить.
Термисторы сделаны так, чтобы их сопротивление резко изменялось при изменении температуры, и изменение на один градус может составлять 100 Ом или более! Термин «NTC» означает «Negative Temperature Coefficient» (отрицательный температурный коэффициент), что означает, что с ростом температуры сопротивление уменьшается.
Напишем программу для считывания показаний температуры и влажности с датчика. Объявляем датчик, указываем куда подключен out. Считываем информацию с датчика и выводим в монитор порта. Добавим конечно же дополнительную информацию - слова - что же мы выводим в монитор порта и укажем единицы измерения температуры и влажности.
#include <dht11.h> //подключаем библиотеку #define dht11pin 2 //создаем переменную для пина датчика dht11 DHT; //объявляем датчик температуры и влажности void setup(){ pinMode(dht11pin, INPUT); //настраиваем пин датчика как вход Serial.begin(9600); //настраиваем работу с монитором порта } void loop(){ DHT.read(dht11pin); //считываем показания датчика //выводим в монитор порта показания температуры Serial.print("Temperature = "); Serial.print(DHT.temperature); Serial.print(" C"); //выводим в монитор порта показания влажности Serial.print(", Humidity = "); Serial.print(DHT.humidity); Serial.println(" %"); delay(1000); //ждем 1 секунду }
#include <SimpleDHT.h> //подключаем библиотеку SimpleDHT11 dht11(2); //объявляем датчик температуры и влажности void setup() { Serial.begin(9600); //настраиваем работу с монитором порта } void loop() { byte temperature = 0; //создаем переменные типа byte для хранения показаний датчика byte humidity = 0; dht11.read(&temperature, &humidity, NULL); //считываем показания датчика Serial.print("Temperature = "); //выводим в монитор порта показания температуры Serial.print(temperature); Serial.print(" C, "); Serial.print("Humidity = "); //выводим в монитор порта показания влажности Serial.print(humidity); Serial.println(" %"); delay(1000); //ждем 1 секунду }
#include "DHT.h" //подключаем библиотеку #define DHTpin 2 //переменная для пина датчика #define DHTtype DHT11 //переменная для типа датчика DHT dht(DHTpin, DHTtype); //инициализируем датчик void setup() { Serial.begin(9600); //настраиваем работу с монитором порта dht.begin(); //запускаем работу датчика } void loop() { float hum = dht.readHumidity(); //считываем показания влажности float temp = dht.readTemperature(); //считываем показания температуры в градусах Цельсия float tempF = dht.readTemperature(true); //считываем показания температуры в градусах Фаренгейта Serial.print("Temperature: "); //выводим в монитор порта все три вида показаний датчика Serial.print(temp); Serial.print(" C, "); Serial.print(tempF); Serial.print(" F; "); Serial.print("Humidity: "); Serial.print(hum); Serial.println(" %;"); delay(1000); //ждем 1 секунду }
#include "DHT.h" //подключаем библиотеку #define DHTpin 2 //переменная для пина датчика #define DHTtype DHT11 //переменная для типа датчика DHT dht(DHTpin, DHTtype); //инициализируем датчик //создаем переменные для каждого из пинов RGB светодиода int redLed = 11; int greenLed = 10; int blueLed = 9; //создаем переменные для значения яркости каждого из цветов RGB светодиода int red; int green; int blue; void setup() { Serial.begin(9600); //настраиваем работу с монитором порта dht.begin(); //запускаем работу датчика pinMode(redLed, OUTPUT); //настраиваем пины RGB светодиода как выходы pinMode(greenLed, OUTPUT); pinMode(blueLed, OUTPUT); } void loop() { //считываем показания влажности float hum = dht.readHumidity(); //считываем показания температуры в градусах Цельсия float temp = dht.readTemperature(); //считываем показания температуры в градусах Фаренгейта float tempF = dht.readTemperature(true); //выводим в монитор порта все три вида показаний датчика Serial.print("Temperature: "); Serial.print(temp); Serial.print(" C, "); Serial.print(tempF); Serial.print(" F; "); Serial.print("Humidity: "); Serial.print(hum); Serial.println(" %;"); delay(1000); //если температура меньше 25 градусов //цвет RGB светодиода - зеленый if(temp<25){ setRGB(0, 255, 0); } //если температура от 25 до 30 градусов //цвет RGB светодиода - желтый else if(temp>=25 && temp<30){ setRGB(255, 255, 0); } //иначе цвет RGB светодиода красный else{ setRGB(255, 0, 0); } } //Подпрограмма, которая устанавливает цвет свечения RGB светодиода //Данная функция имеет 3 параметра //r - яркость свечения красного цвета //g - яркость свечения зеленого цвета //b - яркость свечения синего цвета void setRGB(int r,int g,int b){ analogWrite(redLed,r); analogWrite(greenLed,g); analogWrite(blueLed,b); }
1. Соберите схему с датчиком DHT11 и сервомотором. Создайте программу, которая будет поворачивать вал сервомотора на 90 градусов (открывать окно в теплицу) при превышении температуры значения в 35 градусов, и возвращать вал сервомотора в исходное положение при изменении температуры ниже 33 градусов.
2. Соберите схему с датчиком DHT11 и сервомотором. Создайте программу, которая будет включать реле управляющее «подогревом» при изменении температуры ниже 10 градусов, и отключении при изменении выше 12 градусов. При повышении температуры выше 28 градусов должно срабатывать реле, включающее «кондиционер», и отключатся, когда температура ниже 26 градусов.