Solidaridad tecnológica frente al coronavirus


Ante las crisis  graves  que han ocurrido a lo largo de la historia    se han  ido  repitiendo  una y otra vez que se  consigue aflorar   lo mejor ( y también  lo peor ) del ser humano ,   y desgraciadamente ahora  estamos ante una nueva  desastrosa situación del coronavirus  como pandemia global,  que ha conseguido que profesionales, makers, aficionados   , personas de diferentes ámbitos  ,  así como   empresas,organizaciones, etc   estén trabajando  la mayoría de forma altruista  en mitigar  los efectos de la carencia de material sanitario   mediante  técnicas  modernas como la impresión 3d, corte cnc , electronica embebida ,etc 

En esta linea , que  se ha hecho eco toda la prensa, la mayoria de los s esfuerzos se centran  es   lograr un respirador artificial barato open source   que sea  utilizable  durante   esta grave situación pues este dispositivo se ha convertido en una pieza clave en las UCI básicamente porque se prevee que no va  a haber suficientes suponiéndo  un enorme  reto para los médicos de todo  donde desgraciadamente ante la ausencia de estos en algunos países se ven en los dilemas morales de decidir a quien colocárselo.

Estos respiradores caseros  son muy importantes  en esta pandemia,  pero   hay muchos mas frentes abiertos   en esta comunidad  de solidaridad  tecnológica pues    hay otros grupos  para construir gafas de protección , mascarillas , pinzas desechables , piezas de repuesto para material sanitario, maquinas dispensadores de gel , etc , todos ellos   dispositivos   o herramientas  que podemos  fabricar gracias a la impresión 3D o técnicas modernas como el CNC

Este es el foro que pretende  centralizar toda la ayuda   https://foro.coronavirusmakers.org/     , el hashtag de Twitter #CheapVentilators para conocer los equipos de otros países y a la cuenta @AIRE_Covid19 donde publicarán toda la información del proyecto español.

También  hay un sitio web: https://coronavirusmakers.org/index.php/es/  con  información general filtrada

Asimismo es posible contactar via Telegram  en las diferentes grupos de trabajo que se han asignado , siendo el grupo principal de Telegram https://t.me/coronavirus_makers

Respiradores  artificiales

El funcionamiento de los respiradores artificiales modernos está condicionado por una sensorización muy   compleja  que permite ajustar la mezcla aire-oxígeno, generar alarmas , etc.   función que obviamente no se va a poder solucionar  con una solución “sencilla” que sea open  source pues se busca  dispositivos que puedan fabricarse rápido y de forma distribuida usando,  impresión 3D , corte CNC , etc   y electronica convencional  para construir algo  que   pueda  ayudar la falta de respiradores comerciales

Actualmente en el foro  respecto a los respiradores  hay  tres líneas de trabajo:

    • Estudiar la línea de suministro de las máquinas de respiración, comprobando si de verdad hay una rotura de stock y eliminar los cuellos de botella que pudieran aparecer . 
    • Adaptación de máquinas actuales para ser utilizadas como respiradores; por ejemplo, las máquina CPAP o BIPAP , usadas contra la apnea del sueño que utilizan miles de personas todas las noches .
    •  Crear máquinas de respiración artificial basándose en   maquinas mas “simples” ,por ejemplo el balón de tipo Jackson Rees   dotándoles  de una “inteligencia” que les permita funcionar de forma autónoma. En ese sentido  se estaba trabajando sobre dos  modelos , uno  iniciado por el Mit   en el 2010 y  otro por la Universidad Rice en Houston. Muy resumidamente se basan subyacentemente en usar diseños clásicos probados   eliminando la necesidad de  tener a un sanitario dedicado exclusivamente a esa tarea pues es un desperdicio de recursos si podemos tener una máquina capaz de hacer ese trabajo sin cansarse y de una forma eficiente  y autónoma.

Obviamente por su bajo precio  y alto potencia  se están  abordando  diseños que utilizan material médico desechable y ampliamente disponibles para liberar manos de médicos y/o enfermeros en situación de emergencia.

En este caso, en lugar de asistir el facultativo con un  sistema respiratorio manual tipo de bolsa, se busca generar un sistema mecánico que le permita liberarlo de esta tarea para atender a otros enfermos en la misma sala. Estos modelos no disponen por el momento de los parámetros avanzados de los respiradores modernos. Se está explorando esta posibilidad, pero requerirá mucho más tiempo.

En todo  caso queda clara la dificultad de tratar unos pulmones con Covid-19, que requieren de una gran complejidad pero gracias a las aportaciones de personal sanitario  explican que ante problemas de  respiradores avanzando los respiradores pueden ser sencillos los primeros días pues estos pacientes son muy fáciles de ventilar en general.

Por tantos estos diseños que están surgiendo,  pueden ser muy buenos para los primeros días aunque no tengan  sofisticación y permitan respiraciones espontáneas:es decir ventilación controlada por presión, a una frecuencia respiratoria entre 12-30 y con posibilidad de PEEP hasta 20 con monitorización del volumen corriente y volumen minuto. Eso ayudaría en las primeros días  (que son los peores )  con la esperanzar de que mas adelante  se buscaría alternativa con respiradores actuales sofisticados , ya que  llegado el momento no habrá para todos en las fases iniciales y algo  tan relativamente sencillo como los antiguos ventiladores con estas  nueva mejora  podría salvar vidas

Mascarillas caseras

Dados los problemas para conseguir mascarillas hay muchas opciones para fabricarlas nosotros mismos   siendo la mas famosa la  Mascarilla DIY con Goma EVA como filtro

En un grupo de Facebook un chico de Eslovenia se creó un diseño de una mascarilla para usar como filtro un filtro HEPA ( por ejemplo los usados en aspiradoras convencionales )  y de hecho este diseño ,dada la situación, como son dificiles de conseguir, desde Taipei dijeron que han usado goma EVA como filtro, asi que se he rediseñado y los he subido a Thingverse.

La goma EVA hay que cortarla en cuadrados de 77 x 77 mm para la de hombre y de 68 x 68 para mujer. Recomiendan que para que ajuste mejor a la cara, que se caliente un poco  el plástico en el microondas para amoldarla.

Ademas antes de usarla se debería limpiar todos sus componentes con alcohol isopropilico.

Hay dos tamaños para mujer y para hombre y los  ficheros estan disponibles en  https://www.thingiverse.com/thing:4223817

 

Ese diseño no es único , pues  en thinginverse  podemos encontrar muchos  mas , pero en este lo llamativo de este ultimo ,  es lo sencillo del filtro

 

 

Gafas de Protección

Se busca  intentar suplir una posible  carencia de gafas de protección para uso hospitalario  

Hay muchos disponibles  y otros nuevos que están apareciendo  usando materiales sencillos como pantallas ( por ejemplo  con encuadernadores de papelería)

Válvulas

Unos makers italianos han impreso en 3D una válvula que se les había averiado en un hospital de Milán (hemos pedido a uno de los Fablabs de Milan, para saber si tienen el STL): https://www.3dprintingmedia.network/covid-19-3d-printed-valve-for-reanimation-device/

 

 

Mas ideas

Hay muchísimos mas ejemplos de dispositivos   y diseños que nos pueden ayudar en el día a día   a sobrellevar esta grave pandemia , desde soportes para pomos de puertas, abridores de puerta con el  pie,  dispensadores automáticos de productos de desinfección   y un largo etcétera

Para inspirarnos basta buscar “coronavirus” en el repositorio thingiverse.com

 

Amigo lector , si tiene  alguna idea o sugerencia siéntase  libre de compartirla con esta comunidad  y por supuesto si tiene ganas de colaborar participe   en el foro en español del coronavirus  !MUCHO ANIMO QUE JUNTOS LO VAMOS A SUPERAR!

 

 

 

Sencilla alarma basada en un foco con detector de proximidad


Hoy en día hay soluciones muy económicas  debido a su gran escala comercial  que son   susceptibles de ser mejoradas para complementar con notoriedad  sus prestaciones y  !sin coste alguno!.En el ejemplo de hoy actualizado a un modelo mas moderno del fabricante Meikee vamos  a  ver como de hecho una modesta  lámpara con sensor de movimiento para uso en exteriores  ideal (almacén, garaje, clóset, etc …,con un bajo consumo de sólo 10 vatios ( aunque existen  de muchas  potencias  más elevadas ) ,y  900 lúmenes de luz  garantizados   puede usarse   además de su cometido principal de encenderse  cuando el sensor detecta movimiento  en el exterior , que  también envíe   una alarma hacia el interior, para  que tengamos constancia  si no nos  hemos percatados por la activación de la luminaria   de que puede que haya personas , animales o cosas merodeando por el exterior  .

En esta simple  modificación  pues mantendremos el  diseño moderno y compacto de la luminaria ,  ya que vamos a hacer una sencilla modificación   que apenas ocupa más espacio ( únicamente necesitaremos  añadir una regleta )  y que además no inhabilita su protección  impermeable (IP66), una característica fundamental para aquellos que desean montar esta luminaria en el exterior.

Respecto al interior de  la luminaria , esta se aleja de las convencionales halógenas al   incorporar uno de los últimos 30 chips súper brillantes de LED  que reemplazan a los  anteriores, ofreciendo una iluminación más brillante (900 LM, blanco frío de 6000 Kelvin ) ,  con un gran ahorro en la factura de la luz y una gran durabilidad (los LED tienen una vida media de 50000 horas).

El foco del fabricante Meikee   integra un sensor PIR   y la electronica necesaria para activar la luminaria  , la cual por cierto va integrada en el propio receptor del PIR(es decir en la cajita  mas pequeña que alberga el propio sensor)

En este modelo , se puede ajustar la iluminación utilizando los 3 botones de configuración de la parte de atrás del propio modulo del PIR 

Los ajuste son los siguientes:

  • HORA ;sirve  para establecer la duración de la iluminación (6-360 s);
  • SENS; sirve para ajustar el rango de detección (1-12m);
  • LUX :ajuste la foto-sensibilidad (día y noche)

 

Aparte de ajustar  el valor  SENS   a la distancia que precisemos , un ajuste especialmente interesante es el ajuste LUX pues no puede permitir que el foco  ( y  por tanto la alarma ) no se active de día ,pudiéndose accionar automáticamente solo de noche  , que es cuando la mayoría de las ocasiones los dueños de lo ajeno merodean por los exteriores de los inmuebles

Con la doble función de iluminación sorpresiva ( que el producto  ya lo contempla ) y la alarma sonora ( que vamos añadir tanto interior como exterior ) la idea   que se  busca con esta mejora es   una  detección anticipada que localizar los intentos de intrusión y antes de que el intruso haya conseguido entrar : así, decidimos antes a los intrusos y, ademas  tenemos un señal audible de que ha sucedido , señal que por cierto podemos contemplar con otros sistemas como cámaras, alarmas remotas , etc.

Bien veamos la mejora  de este foco con sensor que podemos comprar por unos 15€

 

 

La idea  de este post  es mejorar  un asequible  foco del fabricante  Meikee  para poder usarlo para activar otras cargas ( no solo la de la propia luminaria) , para lo cual tendremos que abrirlo con cuidad  para capturar la señal de salida y devolverlo al exterior . Desgraciadamente  manipulaciones del producto nos  hará  perdera la garantia , pero por el precio que tiene creemos merece la pena puesto que nos puede ser muy útil desde el interior  saber si se ha activado el foco  o por ejemplo para enviar a una central de alarma

Hackeando el foco

 

Antes de desmontar el foco,  probaremos el foco dado que cualquier cambio de esta en su configuración nos hará perder la garantía, asi que  es nuestra última oportunidad para  probar de que funciona perfectamente este.

Una vez  comprobado su funcionamiento , si estamos decididos a mejorar el foco, desmontamos  los 4 tornillos de la parte posterior ( puede que esten bastante duros para asegurar la estanqueidad).

 

 

Ahora quitaremos los dos tornillos del reflector , sacaremos con cuidado el cristal protector  y luego accederemos  a la electronica , con mucho cuidado de no tocar los leds SMD  

En otros  modelos  haay dos bloques  ,   diferentes : el chip compuesto por leds  SMD  ( en el centro )    y el convertidor ac/dc para este ( a la derecha), pero en este modelo del  fabricante  Meikee  van integrados la matriz de leds  y el propio convertidor en una unica placa alimentandose todo el conjunto con la tension de la red de ca

 

 

 

En la imagen   se observan claramente  tres conexiones que van al módulo PIR : 

  • Cable marrón; uno de los polos de la red para dar alimentación permanente al módulo PIR
  • Cable azul : otro de los polos de la red  para dar alimentación permanente al módulo PIR
  • Cable rojo ; el cable de detección del PIR   que permite alimentar a la placa   

 

Hemos visto que nuestro objetivo es cable rojo  de salida del módulo de  PIR   que permite alimentar a la placa  leds  de la luminaria  que  nos permite obtener la salida del relé interno del modulo PIR ,así que intentaremos capturar este hilo  para lo cual descubriremos el protector plástico del empalme 

 

 

Es muy poco ortodoxo , pero como no queremos que el módulo pierda la estanqueidad , y normalmente  para luces exteriores las instalación no suelen contar con este tipo  de  cableado, utilizaremos el cable amarillo de masa del cable de salida pus  más adelante si nos interesase podriamos exteriormente fijarle un tornillo al chasis y volverlo a conectar

 

 

 

Ahora solo nos queda  usar una ficha de empalme  o bien directamente retorcer ambos cables (es decir el cable amarillo de la manguera exterior con  el cable rojo procedente de la salida del modulo PIR h)

 

 

Ahora ya cerraremos con cuidado la luminaria  : primero el reflector  y luego la junta de estanqueidad  , el cristal  y finalmente la tapa . Ahora ya podemos conectar la c. a.  al extremo de la manguera del foco  , pero con la  importante diferencia que en el  cable amarillo ya no conectaremos la masa  sino por ejemplo un zumbador o  un testigo  que  alojaremos  en el interior de la vivienda para tener constancia  visual    o sonora   de que el foco luz se ha encendido por movimiento de objetos extraños próximos al PIR

 

 

 Por cierto ,si se pregunta  donde conectar el otro extremo del zumbador o luz auxiliar este irá conectado al cable marrón de la manguera .Asimismo , como se puede apreciar ,se complementa con un interruptor para anular el zumbador en caso de que sea demasiado molesto  .

Tambien se recomienda usar otro interruptor a la entrada de ca si este va estar conectado permanentemente a la red de ca, aunque podemos prescindir de este  con el ajuste de noche pues  podemos permitir que solo se active por la noche.

 

 

Hay muchas opciones de uso para esta salida de CA , el cual por cierto no debemos cargar con mucha potencia pues corremos el riesgo de estropear los contactos del relé interno del modulo PIR

Algunos ejemplos de lo que podemos hacer con esta salida “extra”;

  • Un  relé  de potencia con bobinado de  220v de CA para conectar cargas mayores
  • Un segundo relé de 220V pero para utilizar los contactos para alarmas
  • Un  zumbador de 220V ( los hay por 2€ en Amazon)
  • Un timbre convencional
  • etc

Bueno ,como hemos visto   quizás sean una idea un tanto atrevida , que no todo el mundo esté dispuesto a realizar,  pero desde luego !la posibilidad está ahí   ! y eso sin casi ningún coste adicional !¿se le ocurre  alguna mejora adicional ? si es así no dude en compartirla con toda la comunidad ..!!GRACIAS!!

 

Por cierto este es el link de acceso directo del citado foco con detector de presencia

 

 

Estación meteorológica conectada


Hay algunas otras estaciones meteorológicas basadas en NodeMcu o ESP8266 publicadas en la web, pero sin embargo,casi ninguna incluyen algunos sensores  de los que vamos a ver , y sobre todo,   se programan en un lenguaje más difícil: LUA.
En este proyecto de Ingenerare, los datos recuperados  por varios sensores , se envían a través de  wifi a la plataforma  Thingspeak, para posteriormente poder  visualizar su valores en el canal de Thingspeak o en un sitio web personal.

Este canal transmitirá los siguientes datos a un canal Thingspeak:

  • Temperatura  gracias a  un DHT11 / 22.
  • Temperatura por medio de un BMP180.
  • La humedad  gracias a un DHT11 / 22.
  • La presión atmosférica   por medio de un BMP180.
  • Temperatura del punto de rocío DHT11 / 22.
  • Altitud por medio de un BMP180.
  • La intensidad de la luz gracias  a un LDR.
  • El valor lluvia.

Los componentes  usados en este  proyecto son los siguientes:

caja.PNG

El corazón del sistema es una  placa  NodeMcu , la cual de hecho, es un Arduino  conmenos puertos analogicos  pero con un escudo wifi el cualpuede reconocerse por la placa de metal en la parte superior de la misma.  Este escudo puede ser comprado y utilizado como una controladora individual para su uso con un  Arduino para darle conectividad (de hecho incluso existe una versión conocida como la V1 esp8266 que sólo tiene 2 pines digitales,pero en versiones posteriores disponemos de mas pines digitales).

La gran ventaja de la placa  NodeMcu es que la placa  se puede programar en el entorno Arduino (el IDE  normal de Arduino). Además, la placa  incluye un convertidor de 5 voltios y así se puede conectar de forma segura mediante USB al ordenador sin tener que comprar un módulo conversor Dv-DC  de 3,3 voltios.

Si usted necesita  comprar una placa  NodeMcu se puede comprar la versión 0.9 o la versión 1.0: la única diferencia que sé es que la versión 0.9 es más ancha que la versión 1.0. ( de hecho no puede utilizar la versión 0.9 en una placa de prototipos standard  ).

Hay  gran cantidad de tutoriales en Internet donde explican como  programar esta placa  junta con el software de LUA, pero al ser  básicamente un Arduino con un escudo  wifi, también se puede usar el software Arduino IDE siguiendo estos pasos:

  • Ir   a “Archivo”
  • Haga clic en “Oreferencias”
  • Agregue el siguiente enlace en el campo “URL de la placa adicional ‘:http: //arduino.esp8266.com/stable/package_esp8266c 
  • Después de esto puede reiniciar el software y debe ser capaz de seleccionar la junta en el gestor de tabla (V1.0 o v0.9).

ThingSpeak

En esta ocasión se va a enviar   nuestros medidas a la veterana  plataforma Thingspeak  que ofrece varias opciones para la interacción con sus datos como Thingtweet, Thinghttp etc.

Lo primero que tenemos que hacer es crearnos una cuenta en thingspeak , para ello  simplemente vaya a thingspeak.com y cree  una cuenta ,donde  solo será necesario rellenar en al menos la primera y segunda en la configuración de campo.

Si se conecta un sensor de temperatura y humedad, como se describe mas adelante, rellenar “temperatura” en el campo 1, ‘humedad’ en el campo 2 y el “punto de rocío” en el campo 3. Si desea conectar otros sensores tales como el sensor de BMP, sensor de lluvia, LDR, sólo tiene que hacer lo mismo para el resto de los campos.

En este formulario puede encontrar  una clave API key  que habrá que mencionar en su código para  Arduino bajo la ‘clave de API’  , pues esta clave es necesaria para conectar el Arduino al canal Thingspeak recién creado.

thingspeak.PNG

Sensor DHTXX

DHT11 y  DHT22 son dos modelos de una misma familia de sensores, que permiten realizar la medición simultánea de temperatura y humedad usando ademas un único  hilo para comunicar los datos vía serie, para lo cual  ambos  disponen de un procesador interno que realiza el proceso de medición, proporcionando la medición mediante una señal digital, por lo que resulta muy sencillo obtener la medición desde un microprocesador como Arduino o ESP8266.

Ambos son similares ( DHT11 presenta una carcasa azul  , mientras que el sensor DHT22  es blanco)  compartiendo además los mismos pines  disponiendo de  4 patillas, de las cuales usaremos sólo 3: Vcc, Output y GND.  Como peculiaridad ,la  salida la conectaremos a una entrada digital  , pero necesitaremos poner una resistencia de 10K entre Vcc y el Pin Output.

El  DHT11  puede medir temperaturas entre 0 a 50, con una precisión de 2ºC, humedad entre 20 a 80%, con precisión del 5% y con una a frecuencia de muestreo de 1 muestras por segundo (1 Hz)

En clara superioridad  con el dHT11 , el modelo DHT22 tiene unas características mucho más profesionales.
  • Medición de temperatura entre -40 a 125, con una precisión de 0.5ºC
  • Medición de humedad entre 0 a 100%, con precisión del 2-5%.
  • Frecuencia de muestreo de 2 muestras por segundo (2 Hz)

Destacar que este tipo de  sensores de temperatura  ( y, aún más, los sensores de humedad) , son sensores con elevada inercia y tiempos de respuesta elevados. Es decir, al “lentos” para reflejar los cambios en la medición.

Conectar el DHT11   o el DHT22  a  un Arduino o ESP82366  es sencillo, simplemente alimentamos desde Arduino al sensor a través de los pines GND y Vcc del mismo. Por otro lado, conectamos la salida Output a una entrada digital de Arduino como por ejemplo el pin D4   (No necesitaremos poner una resistencia de 10K entre Vcc y el Pin Output al llevarla ya  integrada la placa ).

El sensor de BMP

El sensor de BMP180  mide la de la temperatura y la presión del aire. Sí, ya tenemos un sensor de temperatura añadido en el paso anterior, pero no un sensor de presión de aire. Conectar la clavija de alimentación a la línea de 3,2 voltios de la NodeMCU y el conector de tierra en el pin GND de la NodeMCU. El SCL tiene que estar conectado a D1 y la SDA a D2.

Sensor de lluvia y sensor de luz

El sensor utiliza materiales de doble cara FR-04 de alta calidad, donde el área extensa es de 5.0 * 4.0CM, y la superficie niquelada, eficaz contra la oxidación, la conductividad, el funcionamiento superior y las áreas de la vida.

El sensor de lluvia no requiere ninguna  otra placa cuando queremos leer el valor analógico.Si queremos leer valores  binarios  en cambio podemos utilizar la placa adicional  que ofrece  una  conexión a los pines digitales . Gracias a un potenciómetro   que contiene  esta placa , se puede establecer el valor  de umbral con que se dispara pues el  formato de salida  puede ser  de conmutación digital (0 y 1) gracias a  un comparador de amplio voltaje LM393 (y salida de tensión analógica AO).

También en este proyecto se ha añadido un LDR , por lo que podemos  tener dos lecturas analógicas. Esta es una parte difícil pues el NodeMCU sólo tiene un pin analógico , pero podemos resolver este problema mediante la multiplexación de los pines analógicos de modo que con la ayuda de dos diodos y dos pines GPIO , podemos suministrar energía a ambos sensores en secuencia para tomar la lectura de ambos ( eso sí tendrá que controlar esta secuencia desde el  propio programa)

canlaes.PNG

Como se puede ver el sensor de lluvia está activada por el pin D7  (GPIO13)  yel LDR es alimentado por el   pin D8  (GPIO15).

Este es el trozo de código que permite la lectura de ambas señales analógicas:

int sensorPin = A0; // selecciona  el pi, t the input pin for the potentiometer
int enable1 = 10; // activar lectura  sensor A
int enable2 = 11; // acvtivar lectura sensor B

int sensorValue1 = 0; // variable to store the value coming from sensor A
int sensorValue2 = 0; // variable to store the value coming from sensor B

void setup() {
Serial.begin(9600);
// declare the enable and ledPin as an OUTPUT:
pinMode(enable1, OUTPUT);
pinMode(enable2, OUTPUT);
}

void loop() {
// read the value from sensor A:
digitalWrite(enable1, HIGH);
sensorValue1 = analogRead(sensorPin);
Serial.println(sensorValue1);
digitalWrite(enable1, LOW);

delay(100);

// read the value from sensor A:
digitalWrite(enable2, HIGH);
sensorValue2 = analogRead(sensorPin);
Serial.println(sensorValue2);
digitalWrite(enable2, LOW);
Serial.println(“—————————————-“);
delay(1000);
}

Las conexión  de todos los sensores  queda pues como en la figura siguiente:

esquema

Finalmente una vez montado el circuito  solo nos queda  programar el ESP por ejemplo usando el código de más abajo.

No debemos olvidar  de cambiar el apikey con el de su cuenta de thingspeak, pues si no se hace NO  se podrán enviar datos a su canal

Es asimismo importante añadir el nombre SSID  de su red Wi-FI (esto es simplemente el nombre que aparece cuando se hace clic en la esquina derecha de Bottum a filtrar) así como añadir la contraseña de esta red wifi.

Si ha cargado el boceto se puede comprobar en el monitor serie cómo funciona. Basta con abrir el monitor pulsando CNTR + M.

*
This sketch is a combination of two other sketches:
1.
Plot DTH11 data on thingspeak.com using an ESP8266
April 11 2015
Author: Jeroen Beemster
Website: http://www.arduinesp.com
2.
Example sketch: adafruit BMP 085
Sensor api BMP180
*/
//library DHT22
#include

//library esp
#include

//library bmp180
#include
#include
#include

// replace with your channel’s thingspeak API key,
String apiKey = “”; //fill in the api key from thingspeak
const char* ssid = “”; //fill in your wifi name
const char* password = “”; //fill in your wifi password

const char* server = “api.thingspeak.com”;
#define DHTPIN 2 // what pin we’re connected to

DHT dht(DHTPIN, DHT22,15);
WiFiClient client;

int sensorPin = A0; // input for LDR and rain sensor
int enable1 = 15; // enable reading LDR
int enable2 = 13; // enable reading Rain sensor
int sensorValue1 = 0; // variable to store the value coming from sensor LDR
int sensorValue2 = 0; // variable to store the value coming from sensor Rain sensor
//————————–setup————————-
void setup() {

// declare the enable and ledPin as an OUTPUT:
pinMode(enable1, OUTPUT);
pinMode(enable2, OUTPUT);
Serial.begin(115200);
delay(10);

dht.begin();

WiFi.begin(ssid, password);

Serial.println();
Serial.println();
Serial.print(“Connecting to “);
Serial.println(ssid);
Serial.print(“……….”);
Serial.println();
WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);

}
Serial.println(“WiFi connected”);
Serial.println();

}
void loop() {
//————————–DHT22/DHT11————————-

float h = dht.readHumidity();
float t = dht.readTemperature();

if (isnan(h) || isnan(t)) {
Serial.println(“Failed to read from DHT sensor!”);
return;
}
Serial.print(“Temperature: “);
Serial.print(t);
Serial.print(” degrees Celcius “);
Serial.println();

Serial.print(“Humidity: “);
Serial.print(h);
Serial.print(“%”);
Serial.println();

//— extra—- you can measure dew point with the temperature and the humidity

double gamma = log(h/100) + ((17.62t) / (243.5+t));
double dp = 243.5
gamma / (17.62-gamma);

Serial.print(“Dew point: “);
Serial.print(dp);
Serial.print(” degrees Celcius “);
Serial.println();

//————————–BMP180————————

if(!bmp.begin()) {
Serial.print(“Failed to read from BMP sensor!!”);
while(1);
}

sensors_event_t event;
bmp.getEvent(&event);

Serial.print(“Pressure: “);
Serial.print(event.pressure);
Serial.println(” hPa”);

float temperature;
bmp.getTemperature(&temperature);
Serial.print(“Temperature: “);
Serial.print(temperature);
Serial.println(” degrees Celcius “);

//— extra—-you can measure the altitude with the temperature and the air pressure

float seaLevelPressure = 1015;
Serial.print(“Altitude: “);
Serial.print(bmp.pressureToAltitude(seaLevelPressure,event.pressure));
Serial.println(” m”);

//————————–LDR————————-

digitalWrite(enable1, HIGH);
sensorValue1 = analogRead(sensorPin);
sensorValue1 = constrain(sensorValue1, 300, 850);
sensorValue1 = map(sensorValue1, 300, 850, 0, 1023);
Serial.print(“Light intensity: “);
Serial.println(sensorValue1);
digitalWrite(enable1, LOW);
delay(100);

//————————–Rain Sensor————————-

digitalWrite(enable2, HIGH);

delay(500);
sensorValue2 = analogRead(sensorPin);
sensorValue2 = constrain(sensorValue2, 150, 440);
sensorValue2 = map(sensorValue2, 150, 440, 1023, 0);

Serial.print(“Rain value: “);
Serial.println(sensorValue2);
Serial.println();
delay(100);

digitalWrite(enable2, LOW);

//————————–thingspeak————————-

if (client.connect(server,80)) { // “184.106.153.149” or api.thingspeak.com
String postStr = apiKey;
postStr +=”&field1=”;
postStr += String(t);
postStr +=”&field2=”;
postStr += String(h);
postStr +=”&field3=”;
postStr += String(dp);
postStr +=”&field4=”;
postStr += String(event.pressure);
postStr +=”&field5=”;
postStr += String(temperature);
postStr +=”&field6=”;
postStr += String(sensorValue1);
postStr +=”&field7=”;
postStr += String(sensorValue2);
postStr +=”&field8=”;
postStr += String(bmp.pressureToAltitude(seaLevelPressure,event.pressure));
postStr += “\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n”;

client.print(“POST /update HTTP/1.1\n”);
client.print(“Host: api.thingspeak.com\n”);
client.print(“Connection: close\n”);
client.print(“X-THINGSPEAKAPIKEY: “+apiKey+”\n”);
client.print(“Content-Type: application/x-www-form-urlencoded\n”);
client.print(“Content-Length: “);
client.print(postStr.length());
client.print(“\n\n\n\n\n\n\n\n”);
client.print(postStr);

}
client.stop();
// thingspeak needs minimum 15 sec delay between updates
delay(20000);
}

Weather_station_for_instructables.inoWeather_station_for_instructables.ino

Todo el conjunto se puede meter en un pequeña caja .  El sensor de DHT y el sensor de BMP pueden posicionarse en el lado de la caja cubriendo los dos sensores con un poco de múltiplex para que la lluvia no pudo influir en las lecturas
Asimimos Thingspeak tiene un montón de opciones de plugin. Uno de ellos es que es posible hacer que los medidores  los publique en su página web de thingspeak   en la pestaña ‘vista privada’ de Thingspeak. Se pueden  vincular los medidores de su sitio web privado  mediante el uso de un iframe que tiene que estar conectado a Thingspeak para poder ver los medidores.

Fuente   aqui