Lab_interaccio/2012/Sck_test_rev/Sck_test_rev.ino
2025-02-25 21:29:42 +01:00

239 lines
5.7 KiB
C++

#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());
// }
}