En este tutorial encenderemos un foco a través de los servicios en la nube de Ubidots, además tendrá un sistema, para detectar si el foco si ha quemado y nos enviará una alerta, por medio de un SMS, advirtiendo que el foco no ha encendido. Se incluye el código fuente y el circuito.
Visita https://ubidots.com/ para obtener mas información de los servicios de Ubidots, registrate y prueba los servicios en la nube durante 30 días gratis.
Código fuente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
// * Incluimos las siguientes librerías #include <Ethernet.h> #include <SPI.h> #include <UbidotsEthernet.h> // Parámetros para el servidor de Ubidots.*/ char const * TOKEN = "BBFF-k3bid88HLUIzAbEXYKIZqrgATC0qM9"; // Token asignado por Ubidots char const * DEVICE_LABEL = "arduino-ethernet"; //Asignar la etiqueta única del dispositivo char const * VARIABLE_LABEL_PIN8 = "pin"; // Asigna una etiqueta de variable única para recibir los datos char const * VARIABLE_LABEL_PHOTO = "photo"; // Asigna una etiqueta de variable única para enviar los datos del fotoresistor int fotoResistor = A0; int sensorLuz=0; int luz=8; /* Dirección MAC para el módulo ethernet */ byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; Ubidots client(TOKEN); void setup() { Serial.begin(9600);//velocidad del puerto serial pinMode(luz, OUTPUT); Serial.print(F("Inicializando conexión ethernet...")); if (!Ethernet.begin(mac)) { Serial.println(F("ops hubo un problema")); } else { Serial.println(Ethernet.localIP());//Nos muestra la dircción ip local } // Esperamos un tiempo para el módulo arranque delay(2000); Serial.println(F("PLaca ethernet lista!!!")); } void loop() { Ethernet.maintain(); float valor = client.getValue(DEVICE_LABEL, VARIABLE_LABEL_PIN8);// * Obtenemos el último valor de una variable * / /* Mostramos el valor obtenido */ Serial.print("El valor recibido es: "); Serial.println(valor); //Se evalua el valor enviado desde ubidots if(valor==1){ digitalWrite(luz, HIGH); delay(2000); fotoR(); } if(valor==0){ digitalWrite(luz, LOW); } delay(1000); } void fotoR(){ //delay(1000); //Leemos el fotoresitor sensorLuz =analogRead(fotoResistor); Serial.print("Valor Foto Resisitor: "); Serial.println(sensorLuz); if(sensorLuz>50){ //Enviamos el valor del sensor del foto resistor client.add(VARIABLE_LABEL_PHOTO, sensorLuz); client.sendAll(); } } |
Circuito
Materiales
Módulo Fotorresistencia
Este módulo contiene una fotorresistencia, la cual es una resistencia variable dependiente de la cantidad de luz en su entorno. En la oscuridad, su resistencia es muy alta, a veces hasta 1 MΩ, pero cuando el sensor LDR se expone a la luz, la resistencia se reduce drásticamente, incluso a unos pocos ohm, dependiendo de la intensidad de la luz.
El sensor LDR es ampliamente utilizado en cámaras, lámparas de jardín y calle, detectores, relojes, luces automáticas y un sinfín de aplicaciones interesantes. Los valores de su resistencia, sensibilidad, coeficiente de temperatura y su curva de voltaje-corriente dependen directamente de la cantidad de luz que recibe el sensor.
Módulo relay
El manejo de un módulo relee o relay es muy sencillo y nos permite controlar el encendido y apagado de cualquier aparato que se conecte a una fuente de alimentación eléctrica externa. El relee hace de interruptor y se activa y desactiva mediante una entra de datos. Gracias a esto podemos controlar el encendido de cualquier aparato
Escudo ethernet
Nuestro escudo ethernet será necesario, para subir datos a ubidots.com y también para recibirlos.
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas
SUSCRIBETE A NUESTROS BOLETINES, RECIBE EN TU CORREO LAS NOTICIAS MÁS DESTACADAS, SÓLO INGRESANDO TU CORREO ELECTRÓNICO
VIDEOS RECOMENDADO
2 comentarios en “Encendiendo un foco con detector de falla con placa ethernet, arduino y ubidots”