Инструменты пользователя

Инструменты сайта


arduino_s_08

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
arduino_s_08 [2020/04/23 19:29]
golikov создано
arduino_s_08 [2020/05/27 15:55]
golikov
Строка 15: Строка 15:
  
 {{:​tinkercad_83.png?​400|}} {{:​tinkercad_83.png?​400|}}
 +
 +===== 8.2 Устройство и принцип работы =====
 +==== 8.2.1 Подключение датчика DHT11 ====
 +
 +{{:​tinkercad_84.png?​400|}}
 +
 +==== 8.2.2 Работа с библиотекой dht11-master ====
 +
 +Напишем программу для считывания показаний температуры и влажности с датчика.
 +Объявляем датчик,​ указываем куда подключен out. Считываем информацию с датчика и выводим в монитор порта. Добавим конечно же дополнительную информацию - слова - что же мы выводим в монитор порта и укажем единицы измерения температуры и влажности.
 +
 +<code c>
 +#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 секунду
 +}
 +</​code>​
 +
 +==== 8.2.2 Работа с библиотекой SimpleDHT ====
 +
 +<code c>
 +#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 секунду
 +}
 +</​code>​
 +
 +==== 8.2.3 Работа с библиотекой DHT sensor library====
 +
 +<code c>
 +#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 секунду
 +}
 +</​code>​
 +
 +==== 8.2.4 Работа с библиотекой DHT sensor library====
 +<code c>
 +#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);​
 +}
 +
 +
 +</​code>​
 +
 +=====Задания=====
 +
 +1. Соберите схему с датчиком DHT11 и сервомотором. Создайте программу,​ которая будет поворачивать вал сервомотора на 90 градусов (открывать окно в теплицу) при превышении температуры значения в 35 градусов,​ и возвращать вал сервомотора в исходное положение при изменении температуры ниже 33 градусов.
 +
 +2. Соберите схему с датчиком DHT11 и сервомотором. Создайте программу,​ которая будет включать реле управляющее "​подогревом"​ при изменении температуры ниже 10 градусов,​ и отключении при изменении выше 12 градусов. При повышении температуры выше 28 градусов должно срабатывать реле, включающее "​кондиционер",​ и отключатся,​ когда температура ниже 26 градусов.
 +
  
  
  
arduino_s_08.txt · Последние изменения: 2020/05/27 15:55 — golikov

Инструменты страницы