Este próximo proyecto se trata de la construcción y programación del módulo de control de una incubadora con el objetivo de recuperar la gallina canaria.
Este contará con una placa Arduino Wemos 1, un motor, dos reles, un sensor DHT, un RTC y un módulo wifi/bluetooth DS3132.
Usamos el siguiente código para programar la incubadora
#include <DHT_U.h>
#include <NTPClient.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <WiFiServer.h>
#include <WiFiUdp.h>
#include <Time.h>
#include <Wire.h>
#include <SerialESP8266wifi.h>
#include <RTClib.h>
#define RESPIN 3
#define DHTPIN 2
#define DHTTYPE DHT22
#define rele1 4
#define rele2 6
RTC_DS3231 rtc;
char* ssid= «ArduinoNet»;
char* password= «»;
//No password
float timenow;
int motor;
int RES;
float Tmin;
float Tmax;
float Tnow;
DHT dht(DHTPIN, DHTTYPE);
//3.5rpm
WiFiUDP ntpUDP;
NTPClient timeClient (ntpUDP,»west-europe.pool.ntp.org«, 0,1000);
void setup() {
Serial.begin (115200);
WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED){
Serial.print(«no esta conectado»);
}
timeClient.begin();
Tmin = 27;
Tmax = 39;
pinMode(rele2,OUTPUT);
pinMode(rele1,OUTPUT);
pinMode(DHTPIN ,INPUT);
pinMode(RESPIN ,OUTPUT);
Serial.begin(9600);
dht.begin();
if (!rtc.begin()) {
Serial.println(F(«No se encontró un sensor»));
while (1);
}
}
void loop() {
DateTime now = rtc.now();
timeClient.update();
if(timenow == timenow+ 21600000){
timenow = millis();
digitalWrite(rele2,LOW);//tené que girar 8571ms
delay(8571);
digitalWrite(rele2,HIGH);
}
Tnow = dht.readTemperature();
if (Tnow < Tmin ){
digitalWrite(RESPIN,HIGH);
digitalWrite(rele1,LOW);
}
if (Tnow > Tmax){
digitalWrite(RESPIN, LOW);
digitalWrite(rele1,HIGH);
}
delay (1000);
}