Ви не увійшли.
Слепил в кучу два датчика. ( этот модуль только часть глобального скетча с массой датчиков, ШИМ и условий )
Расхождение по показаниям на 1 единицу по влажности и температуре.
Требует доработки в индикации верхним светодиодом какой из датчиков в данный момент опрашивается.
Цель: Два датчика поставлены один в ванной второй в кухне под мойкой.
Включение ШИМ на вентиляторы в ванной в случае существенного разрыва между показаниями обоих датчиков
( привязка включения вентиляции к конкретному уровню может при повышении влажности на улице дать ложную сработку)
//data(I/O) pin 47, clock(CLK) pin 48 , strobe(STB) pin 49
#include <TM1638.h>
TM1638 module(47, 48, 49);
#include <Wire.h>
#include "DHT.h"
#define DHTTYPE DHT11 // DHT 11
DHT dht1 (3, DHTTYPE);
DHT dht2 (4, DHTTYPE);
#define DHTPIN 3
#define DHTPIN 4
unsigned long last_time;
float h,t;
int hi,ti;
char cadena[20];
void setup()
{
Serial.begin(9600);
dht1.begin();
dht2.begin();
module.setupDisplay(1,0);
module.setDisplayToString("SENSOR ",0,0);
delay(500);
}
void loop()
{
if (millis() -last_time > 5000) {
last_time = millis();
h = dht1.readHumidity();
t = dht1.readTemperature();
}
else
{
h = dht2.readHumidity();
t = dht2.readTemperature();
}
{
hi=h;
ti=t*10;
sprintf(cadena,"H%2d %3d*",hi,ti);
if(ti>-100)
{module.setDisplayToString(cadena,4,0);}
else
{module.setDisplayToString(cadena,2,0);}
Serial.println(cadena);
}
}
Долго рылся в сети на предмет вменяемого скетча на TM1638
(Модуль индикации и управления на TM1638)
нужно было избавится от немерянного количества пинов на 7 сегментник выводящий данные от DHT11 (12 шт)
пока на ( испанском сайте ) не набрел на рабочий скетч.
Кажет одновременно влажность и температуру. Весьма скромен размерами и не мерехтит индикатор.
Сейчас ковыряю скет что бы можно было попеременно снимать данные с двух датчиков
( не влезают в панель управления домом оба TM1638 )
/*
xsetaseta@gmail.com
Juan Galaz
4/SEP/2017
*/
#include <TM1638.h>
//data(I/O) pin 8, clock(CLK) pin 9 , strobe(STB) pin 7
TM1638 module(8, 9, 7);
#include <Wire.h>
//#include <VirtualWire.h>
#include "DHT.h"
#define DHTPIN 3 // what pin we're connected to
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
float h,t;
int hi,ti;
char cadena[20];
void setup()
{
Serial.begin(9600);
dht.begin();
//activa intensidad con nivel 2
module.setupDisplay(1,0);
module.setDisplayToString("SENSOR ",0,0);
delay(500);
}
void loop()
{
h = dht.readHumidity();
t = dht.readTemperature();
if (isnan(t) || isnan(h))
{
Serial.println("Failed to read from DHT");
}
else
{
hi=h;
ti=t*10;
Serial.print("Humedad="); Serial.print(hi);
Serial.print(" Temperatura="); Serial.println(ti);
sprintf(cadena,"H%2d %3d*",hi,ti);
if(ti>-100)
{module.setDisplayToString(cadena,4,0);}
else
{module.setDisplayToString(cadena,2,0);}
Serial.println(cadena);
}
delay(1000);
}