Lab_interaccio/2012/Sck_test/Sck_test.ino

234 lines
5.4 KiB
Arduino
Raw Permalink Normal View History

2025-02-25 21:29:42 +01:00
#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, LOW); //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;
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());
// }
}