Hola buenas Noches, tardes o días según desde donde me estén leyendo, me gustaría saber si alguien me puede ayudar en echarle un vistazo a mi código y me pueda decir si está bien planteado o que es lo que me está faltando , porque me falla la recepción de la temperatura del Sensor y la lectura del potenciómetro en Android, también del LDR y del Potenciómetro correspondiente, a grandes rasgos lo que pretendo hacer es un sistema de control domótica que consta de controlar la Iluminación de las instancias (sala,cocina,comedor,cuarto1,baño), control de clima (dependiendo de la asignación por medio del potenciómetro la temperatura deseada a la que se debe de prender el clima, esto realizando la comparación de la lectura del sensor DS18B20 >= que la lectura del Potenciómetro) e igualmente como el control del clima también existe el control de encendido de luces exteriores con el sensor LDR que acierta luminosidad se encienden las Luces exteriores, en el sistema asignamos que se guarde los estados de los pines del arduino por seguridad en caso de falla en la energía eléctrica, de antemano les agradezco por la ayuda que me puedan brindar.
NOTA:- todo tipo de comentario constructivo bienvenido para mejora del conocimiento.
Espero alguien con mayor capacidad de programación me pueda verificar el código.
Este es mi código lo coloque en dos partes porque excedió de caracteres y no cupo en un solo mensaje.
Primera parte
//BLUETOOTH
//Alimentación del módulo Bluetooth HC-06 al pin 3 de Arduino
#define PinVccHC06 3
char NOMBRE[10] = " Nombre";
char BPS = '4';// 1=1200 , 2=2400, 3=4800, 4=9600, 5=19200, 6=38400, 7=57600, 8=115200
char PASS[10] = "12345678";
//EEPROM (Guarda el estado de los pines cuando falta la energía)
#include <EEPROM.h>
int device1 = 0;
int device2 = 0;
int device3 = 0;
int device4 = 0;
int device5 = 0;
int cont = 0;
//ILUMINACION (Instancias controladas)
int sala = 7;
int cocina = 8;
int comedor = 9;
int cuarto1 = 10;
int bano = 11;
//DISPLAY LCD 20 X4
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
//SENSOR TEMPERATURA
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 12
OneWire ourWire(ONE_WIRE_BUS);
DallasTemperature sensors(&ourWire);
float temperatura = 0;
float t;
//Potenciómetro(Para Asignar la Temperatura Ideal a la que queremos Encender el Clima)
int pinopot = A0;
int valorpot = 0;
//LDR
int LDR = A1;
float l;
//Potenciómetro(Para Asignar a que cantidad de Lux queremos Encender la Iluminacion Exterior)
int pinopot_lux = A2;
int valorpot_lux = 0;
//VENTILADORES(Clima)
const int VENTILADOR1 = 4;
const int VENTILADOR2 = 5;
const int VENTILADOR3 = 6;
boolean estadoventilador1 = (false);
boolean estadoventilador2 = (false);
boolean estadoventilador3 = (false);
//Mandar datos a Android(LDR y DS18B20)
char dato;
String readString;
void setup ()
{
Serial.flush();
Serial.begin(9600); // velocidad de la comunicacion entre arduino y ordenador
//Iniciar el Bluetooth
pinMode(PinVccHC06, OUTPUT);
//Alimentamos el módulo HC-06 a 5v
digitalWrite(PinVccHC06, LOW);
delay(1000);
//Activa los sensores
//Alimentamos el módulo HC-06 a 5v
digitalWrite(PinVccHC06, HIGH);
delay(1000);
//ILUMINACION
pinMode(sala, OUTPUT);
pinMode(cocina, OUTPUT);
pinMode(comedor, OUTPUT);
pinMode(cuarto1, OUTPUT);
pinMode(bano, OUTPUT);
digitalWrite(sala, LOW);
digitalWrite(cocina, LOW);
digitalWrite(comedor, LOW);
digitalWrite(cuarto1, LOW);
digitalWrite(bano, LOW);
//DISPLAY LCD 20 X 4
lcd.init();
lcd.clear();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("*By mi Nombre* ");
//Temperatura Actual
lcd.setCursor(0, 1);
lcd.print("T Actual: ");
lcd.setCursor(17, 1);
lcd.print("\337C");
//Temperatura en la que se desea se activen los ventiladores asignada por el potenciometro
lcd.setCursor(0, 2);
lcd.print("T Deseada: ");
lcd.setCursor(17, 2);
lcd.print("\337C");
//SENSOR TEMPERATURA
sensors.begin();
//POTENCIOMETRO
pinMode(pinopot, INPUT);
//VENTILADORES(Clima)
pinMode(VENTILADOR1, OUTPUT);
pinMode(VENTILADOR2, OUTPUT);
pinMode(VENTILADOR3, OUTPUT);
}