Требуется создать нейкий стенд сбора данных.
Имеется Arduino Mega 2560, Реле SRD-05VDC-SLC, ASC712 , датчик dht11
Вот что получилось.
Не получается сделать автоматические отключение кнопки при достижении определенного % Влажности или температуры.
А Так же вывод данных в таблицу с периодичностью 5 мин и возможностью сохранения данных в EXEL.
Код: Выделить всё
#include "DHT.h" //библиотека для работы с DHT
#define DHTPIN 3 //Обозначаем номер пина, к которому подключен датчик DHT11
#define Relay 5 //Обозначаем номер пина, к которому подключен реле
DHT dht(DHTPIN, DHT11); //инициируем датчик DHT
#define PIN_OUT A0
#include <TroykaCurrent.h> // подключение библиотеки
ACS712 dataI(PIN_OUT);
// создание объекта
int cmd=0;
void setup() {
pinMode (Relay, OUTPUT); //Инициализируем режим работы порта в режиме выхода
dht.begin();
Serial.begin (9600);
digitalWrite(Relay, HIGH);// выклбчаем реле (высокий сигнал)
}
void loop() {
if (Serial.available ()){
cmd=Serial.read();
if (cmd==48){
digitalWrite(Relay, LOW);
}
if (cmd==49){
digitalWrite(Relay, HIGH);
}
delay(100);
}
float h = dht.readHumidity(); //Считываем влажность в переменную "h"
float t = dht.readTemperature(); //Считываем температуру в переменную "t"
float a = dataI.readCurrentAC();
if (isnan(t) || isnan(h) || isnan(a)) { //если неправильно считалась информация {
Serial.println ("Ошибка при считывании информации"); //выводим надпись в программе
} else { //иначе
Serial.print (""); //выводим надпись Humidity
Serial.print (h); //выводим значение переменной влажности
Serial.print (" %\t"); //выводим надпись %\t
Serial.print (""); //выводим надпись в программе
Serial.print (t); //выводим переменную температуры
Serial.print (" \C"); //выводим надпись *C
Serial.print(" ");
Serial.print(a);
Serial.println("");}// вывод показаний в последовательный порт
delay(2000);