Самодельный датчик влажности
1 min readСодержание страницы
Влажность – это количество водяного пара, присутствующего в воздухе. Это может быть надежным показателем вероятности осадков. Более высокая влажность снижает эффективность потоотделения в охлаждении тела за счет снижения скорости испарения влаги с кожи… но не будем вдаваться в подробности. Итак, зачем вам строить датчик влажности? Что ж. одно из применений этого датчика — контроль внутренней влажности улья. Влажность расплодного гнезда важна для общего состояния пчелиной семьи. Многочисленные исследования показали, что как высокий, так и низкий уровень влажности влияет на здоровье расплода и взрослых пчел. Мониторинг влажности улья может предоставить очень полезную информацию для пчеловодов.
Оборудование
Для начала вам необходимо получить следующие компоненты:
Датчик влажности HIH 5030/31 (эта инструкция будет основана на этом датчике. Существуют также другие датчики для измерения влажности, но они могут не работать с этой инструкцией).
Чтобы просмотреть техническое описание этого датчика, нажмите здесь.
1x резистор 65 кОм
Паяльник и припой или прототип макетной платы
одножильные и семижильные провода
Ножницы и плоскогубцы
Arduino UNO ADC и USB-кабель для подключения к ПК
Как только вы получите все это, вы будете готовы построить схему и подключить ее к Arduino.
Создание схемы и подключение к Arduino
Схема очень прямолинейна, как вы можете видеть на картинке выше.
Красный провод подает на датчик 3,3 Вольта от платы Arduino.
Черный провод заземлен, т.е. 0 вольт.
Синий провод — это выходной сигнал, который варьируется от 0 до 2,5 Вольт.
Программирование Arduino
После того, как вы выполнили все подключения, вы готовы программировать Arduino. Просто скопируйте и вставьте следующий код в Arduino:
#define SENSOR_PORT A0 //define input port
float rhRead,rhsensorPinOut = 0; //declaring variables float RH, rhvoltage;
void func_humidity(void);
void setup() { //execute this instruction only once
Serial.begin(9600);
}
void loop() { //this function repeats forever
rhRead = analogRead(A0); //read analogue inpu signal from port A0
func_humidity();
Serial.print("RELATIVE HUMIDITY: "); //print text
Serial.print(RH); //print variable
Serial.print("%");
Serial.println();
delay(1000); //delay for 1s
}
void func_humidity(void){ //this is where the digital units
rhvoltage = (rhRead/512)*2.5; // are converted into relaive humidity percentage
RH = ((rhvoltage/3.3)-0.1515)/0.00636;
}