239 lines
5.7 KiB
Arduino
239 lines
5.7 KiB
Arduino
|
#include <SD.h>
|
||
|
#include <Wire.h>
|
||
|
#include "RTClib.h"
|
||
|
#include "DHT22.h"
|
||
|
//#include "WiFlyHQ_.h"
|
||
|
|
||
|
#define IO0 5 //MICS5525_VENT
|
||
|
#define IO1 13 //MICS2710_VENT
|
||
|
#define IO2 9 //libre
|
||
|
#define IO3 10 //RHT22
|
||
|
|
||
|
#define S0 A4 //MICS_5525
|
||
|
#define S1 A5 //MICS_2710
|
||
|
#define S2 A2 //SENS_5525
|
||
|
#define S3 A3 //SENS_2710
|
||
|
#define S4 A0 //MICRO
|
||
|
#define S5 A1 //LDR
|
||
|
|
||
|
#define AWAKE 4 //Despertar WIFY
|
||
|
#define PANEL A8 //Entrada panel
|
||
|
#define BAT A7 //Entrada bateria
|
||
|
|
||
|
#define DHT22_PIN 10
|
||
|
|
||
|
DHT22 myDHT22(DHT22_PIN);
|
||
|
|
||
|
//File root;
|
||
|
RTC_DS1307 RTC;
|
||
|
//const char mySSID[] = "hangar_nau3";
|
||
|
//const char myPassword[] = "m1cr0fug4s";
|
||
|
|
||
|
//WiFly wifly;
|
||
|
|
||
|
#define MICS_5525 0
|
||
|
#define MICS_2710 1
|
||
|
|
||
|
void fecha ()
|
||
|
{
|
||
|
DateTime now = RTC.now();
|
||
|
Serial.print(now.year(), DEC);
|
||
|
Serial.print('/');
|
||
|
Serial.print(now.month(), DEC);
|
||
|
Serial.print('/');
|
||
|
Serial.print(now.day(), DEC);
|
||
|
Serial.print(' ');
|
||
|
Serial.print(now.hour(), DEC);
|
||
|
Serial.print(':');
|
||
|
Serial.print(now.minute(), DEC);
|
||
|
Serial.print(':');
|
||
|
Serial.print(now.second(), DEC);
|
||
|
//Serial.println();
|
||
|
}
|
||
|
|
||
|
int average(int anaPin)
|
||
|
{
|
||
|
int lecturas = 10;
|
||
|
long total = 0;
|
||
|
long average = 0;
|
||
|
int count = 0;
|
||
|
for(int i=0; i<lecturas; i++)
|
||
|
{
|
||
|
total = total + analogRead(anaPin);
|
||
|
}
|
||
|
|
||
|
average = total / lecturas;
|
||
|
return(average);
|
||
|
|
||
|
}
|
||
|
|
||
|
/*void printDirectory(File dir, int numTabs) {
|
||
|
while(true) {
|
||
|
|
||
|
File entry = dir.openNextFile();
|
||
|
if (! entry) {
|
||
|
// no more files
|
||
|
//Serial.println("**nomorefiles**");
|
||
|
break;
|
||
|
}
|
||
|
for (uint8_t i=0; i<numTabs; i++) {
|
||
|
Serial.print('\t');
|
||
|
}
|
||
|
Serial.print(entry.name());
|
||
|
if (entry.isDirectory()) {
|
||
|
Serial.println("/");
|
||
|
printDirectory(entry, numTabs+1);
|
||
|
} else {
|
||
|
// files have sizes, directories do not
|
||
|
Serial.print("\t\t");
|
||
|
Serial.println(entry.size(), DEC);
|
||
|
}
|
||
|
}
|
||
|
}*/
|
||
|
|
||
|
void setup() {
|
||
|
char buf[32];
|
||
|
Serial.begin(9600);
|
||
|
Serial1.begin(9600);
|
||
|
//while(!Serial);
|
||
|
//wifly.begin(&Serial1);
|
||
|
Wire.begin();
|
||
|
RTC.begin();
|
||
|
pinMode(IO0, OUTPUT); //VH_MICS5525
|
||
|
pinMode(IO1, OUTPUT); //VH_MICS2710
|
||
|
pinMode(IO2, OUTPUT); //libre
|
||
|
pinMode(IO3, OUTPUT); //DHT22
|
||
|
pinMode(AWAKE, OUTPUT);
|
||
|
digitalWrite(IO0, HIGH); //VH_MICS5525
|
||
|
digitalWrite(IO1, LOW); //VH_MICS2710
|
||
|
digitalWrite(IO2, LOW); //libre
|
||
|
digitalWrite(IO3, HIGH); //DHT22
|
||
|
digitalWrite(AWAKE, HIGH);
|
||
|
/* if (!wifly.isAssociated()) {
|
||
|
wifly.setIpProtocol(WIFLY_PROTOCOL_HTTP);
|
||
|
//wifly.setHost(IP, outPort); // Send UDP packet to this server and port
|
||
|
//wifly.setPort(localPort); // listen in this local port
|
||
|
wifly.setSSID(mySSID);
|
||
|
wifly.setPassphrase(myPassword);
|
||
|
//wifly.setKey(myKey); // modo WEP
|
||
|
wifly.enableDHCP();
|
||
|
wifly.join();
|
||
|
}
|
||
|
|
||
|
Serial.print("MAC:");
|
||
|
Serial.println(wifly.getMAC(buf, sizeof(buf)));
|
||
|
Serial.print("IP: ");
|
||
|
Serial.println(wifly.getIP(buf, sizeof(buf)));
|
||
|
Serial.print("Netmask: ");
|
||
|
Serial.println(wifly.getNetmask(buf, sizeof(buf)));
|
||
|
Serial.print("Gateway: ");
|
||
|
Serial.println(wifly.getGateway(buf, sizeof(buf)));
|
||
|
Serial.print("LocalPort: ");
|
||
|
Serial.println(wifly.getPort());
|
||
|
Serial.print("HostPort: ");
|
||
|
Serial.println(wifly.getHostPort());
|
||
|
|
||
|
wifly.setDeviceID("SCK");
|
||
|
Serial.print("DeviceID: ");
|
||
|
Serial.println(wifly.getDeviceID(buf, sizeof(buf)));
|
||
|
|
||
|
Serial.println("SCK ready");*/
|
||
|
|
||
|
pinMode(MOSI, OUTPUT);
|
||
|
pinMode(SCK, OUTPUT);
|
||
|
|
||
|
/*Serial.print("Initializing SD card...");
|
||
|
if (!SD.begin(11)) {
|
||
|
Serial.println("initialization failed!");
|
||
|
return;
|
||
|
}
|
||
|
Serial.println("initialization done.");*/
|
||
|
//RTC.adjust(DateTime(__DATE__, __TIME__));
|
||
|
//Serial.println(__DATE__);
|
||
|
if (! RTC.isrunning()) {
|
||
|
Serial.println("RTC is NOT running!");
|
||
|
// following line sets the RTC to the date & time this sketch was compiled
|
||
|
//RTC.adjust(DateTime(__DATE__, __TIME__));
|
||
|
}
|
||
|
// delay(1000);
|
||
|
// Serial.println("$$$");
|
||
|
// delay(100);
|
||
|
// Serial.println("set sys trigger 0x20");
|
||
|
// delay(100);
|
||
|
/*root = SD.open("/");
|
||
|
|
||
|
printDirectory(root, 0);
|
||
|
|
||
|
Serial.println("done!");*/
|
||
|
|
||
|
//fecha();
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
void loop() {
|
||
|
|
||
|
DHT22_ERROR_t errorCode;
|
||
|
writeMCP(0x2E, 0x00, 250);
|
||
|
writeMCP(0x2E, 0x01, 0);
|
||
|
writeMCP(0x2E, 0x05, 240);
|
||
|
|
||
|
Serial.println(readMCP(0x2E, 0x04), BIN);
|
||
|
//VH_MICS(MICS_5525, 2000); //VH_MICS5525 Inicial
|
||
|
//Serial.print("MICS_5525 = ");
|
||
|
//Serial.print(measure_MICS(MICS_5525, 2000));
|
||
|
//Serial.println(" ppm");
|
||
|
|
||
|
//Serial.print("MICS_2710 = ");
|
||
|
//Serial.print(measure_MICS(MICS_2710, 2000));
|
||
|
//Serial.println(" ppm");
|
||
|
|
||
|
//errorCode = myDHT22.readData();
|
||
|
//
|
||
|
// switch(errorCode)
|
||
|
// {
|
||
|
// case DHT_ERROR_NONE:
|
||
|
// Serial.print("Temperatura ");
|
||
|
// Serial.print(myDHT22.getTemperatureC());
|
||
|
// Serial.println("C ");
|
||
|
// Serial.print("Humedad ");
|
||
|
// Serial.print(myDHT22.getHumidity());
|
||
|
// Serial.println("%");
|
||
|
// break;
|
||
|
// }
|
||
|
//
|
||
|
//fecha();
|
||
|
//Serial.println();
|
||
|
//Serial.print("Panel=");
|
||
|
//int temp = map(average(A8), 409, 819, 0, 100); //Nivel de Panel aproximado (Pendiente de ajuste fino)
|
||
|
//if (temp>0) Serial.print(temp);
|
||
|
//else Serial.print(0);
|
||
|
//Serial.println("%");
|
||
|
//Serial.print("Bat=");
|
||
|
//Serial.print(map(average(A7), 613, 900, 0, 100)); //Bateria aproximado (Pendiente de ajuste fino)
|
||
|
//Serial.println("%");
|
||
|
//Serial.print("LUZ=");
|
||
|
//Serial.print((float)((float)average(S5)/1023)*5000);
|
||
|
//Serial.println("mV");
|
||
|
//Serial.print("AUD=");
|
||
|
//Serial.print(((float)((float)average(S4)/1023)*5000));
|
||
|
//Serial.println("mV ");
|
||
|
//
|
||
|
//Serial.println();
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
//delay(1000);
|
||
|
// if (Serial.available() > 0) {
|
||
|
// byte temp = Serial.read();
|
||
|
// if (temp=='1') digitalWrite(AWAKE, HIGH);
|
||
|
// else digitalWrite(AWAKE, LOW);
|
||
|
// Serial1.write(temp);
|
||
|
// }
|
||
|
// if (Serial1.available() > 0) {
|
||
|
// Serial.write(Serial1.read());
|
||
|
// }
|
||
|
}
|
||
|
|