Buzón con notificación por correo electrónico y panel solar.

La siguiente publicación del blog nos fue enviada por nuestro cliente Helmut Schmidt. Se trata de un buzón que envía notificaciones por correo electrónico cuando se ha depositado un correo. La fuente de alimentación se realizó con pequeños paneles solares y baterías recargables. Diviértase leyendo y experimentando:

El buzón se construyó junto con un grupo de herramientas de senior y hogar de ancianos. La propuesta consistía en equipar a los buzones de una notificación por correo electrónico. Tan pronto como alguien deja una carta o correo, se enviará un correo electrónico a un grupo de voluntarias, las Green Ladies. Después de todo, nadie va a comprobar los buzones diariamente. El resultado fue un buzón con panel solar y un mini ESP8266 D1. El programa utiliza un Deep Sleep hasta que se inserta una carta, o se abre la puerta del buzón.

circuito

Hardware requerido

1

D1 Mini Nodemcu con Módulo WLAN ESP8266-12F

1

LM2596S DC-DC Adaptador de fuente de alimentación Módulo Paso a Paso

1 o 2, dependiendo del brillo ambiental.

Debo Solar 0.5W Mini Panel Solar

1

Diodo de vidrio de vidrio sinterizado de avalancha Ultra-rápido BYV 27/200

1

Batería de Iones de litio, 18650, 3.7 V, 2600 MAH, incluye Toma de carga MicroUSB

1

Alternativamente, batería de Iones de litio, 18650, 3.7 V

3

Alternativamente las baterías de NiMH

1

Soporte de la batería

1

Resistencias 680 kOhm para divisor voltaje

2

Resistencias 10 kOhm para divisor de voltaje

2

Micro interruptor

2

1 μF con capacitores (tantalio)

1

diodos comunes

1 encimera


Preparativos

Descargar Adicional Board Manager Ulr
Archivo> Preferencias:
http://arduino.esp8266.com/stable/package_esp8266com_index.json

Instala los nueve paquetes con el vestido de la tabla.
Herramientas> Placa> Administrador de placas:
ESP8266 por la comunidad ESP8266

Después de la instalación, encontrará todas las placas ESP8266. Seleccione LOLIN (WEMOS) D1 Mini & R2.

En Archivo> Ejemplos para D1 Mini> ESP8266 encontrará el LowPowerDemo con 10 pruebas para módem sleep, light sleep y deep sleep.

En la siguiente publicación, ya se ha descrito en detalle cómo se pueden enviar G-mails a través de ESP8266:
Envío de G-mails a través de ESP8266

En la publicación del blog Envío de G-mails a través de ESP8266 ya se describió en detalle cómo se pueden enviar G-mails a través de ESP8266. Para esto, todavía tiene que descargar su propia librería de github.com. A continuación, puede seleccionar el archivo. zip que acaba de descargar a través de Sketch> Añadir archivo> Abrir. Mediante Archivo> Ejemplos de librerías propias> ESP8266SMTP puede encontrar el programa G-Mail.

Se recomienda especialmente crear su propia cuenta de correo electrónico para enviar los correos electrónicos a su dirección de correo electrónico  personal principal. No utilice su dirección de correo electrónico personal principal  para evitar el bloqueo accidental o la desactivación  temporal de su cuenta. Para experimentar, se recomienda una cuenta de Gmail.com para enviar los correos electrónicos. El correo electrónico del destinatario puede ser su correo electrónico personal.

Para obtener todos los detalles sobre cómo configurar una cuenta de Gmail.com y una dirección de correo electrónico, puede consultar el siguiente enlace.

Conexión entre el panel solar, batería y ESP8266.

Las especificaciones correspondían a una aplicación más económica con uno o dos paneles solares. Las baterías normales de Ni-MH tienen la desventaja de una autodescarga relativamente alta, en torno al 15-25% al mes. Mientras tanto, ya existen mejores baterías de Ni-MH con una autodescarga de sólo el 15% de pérdida en un año, pero a un precio similar al de las de Li-Ion. Dos paneles solares proporcionan más de 5 V y normalmente más de 10 V con una luminosidad normal. Bajo carga, el voltaje generalmente se rompe por debajo del voltaje máximo de carga. Gracias a la función de protección de la propia batería de iones de litio (o con el adaptador de alimentación DC-DC LM2596S), los voltajes de 7 V tampoco representan un problema. Sin embargo, las baterías de Ni-MH se deben cargar hasta un máximo de 1,4 V. Como batería de iones de litio, se seleccionó una toma 18650, 3,7 V, 2600 MAH, con toma de carga MicroUSB incluida. Esto significa que el circuito de protección ya está integrado en la batería. Las primeras pruebas en exteriores demostraron que los paneles solares cargaban suficientemente las baterías de NiMH y de LiIon. Obviamente, el circuito de protección consume más energía a bajas corrientes de carga que la almacenada en las baterías. Una posibilidad sería utilizar una batería de iones de litio sin circuito de protección incorporado, simplemente limitando la corriente al conmutarla con el ESP8266.

Para evitar que se produzca la sobrecarga, el Deep Sleep se interrumpe brevemente para una medición del voltaje por parte del temporizador RTC. Si en los días calurosos el voltaje se acerca al voltaje máximo de carga, el WiFi se activa y el voltaje regresa de nuevo al estándar. La medición se realiza con analogRead (pin_ Voltage) en GPIO A0. El WEMOS D1 Mini ya tiene incorporado un divisor de voltaje de 220 kOhm / 100 kOhm, con una resistencia interna de 320 kOhm. Si se añade otra resistencia de 680 kOhm entre A0 y VIN, el rango de voltaje se amplía de 1 V a (680 + 320) / 320 = 3.1 * 3V = 9.3 V. Por lo tanto, el voltaje que se mide debe multiplicarse por un factor de 9,3.

construcción

Si el voltaje cae cerca del voltaje de fin de descarga, lo primero que hay que hacer es cargar la batería durante un tiempo. El voltaje de descarga final para las batería de iones de litio es de 3,5 V, y de 1,1V para las de Ni-MH. Para garantizar que no haya corriente inversa de la batería al panel solar, el panel solar y el convertidor están conectados a través de un diodo BYV 27/200. La tarea real del ESP8266 la realiza WAKEUP. Se recomienda cargar previamente LowPowerDemo en el ESP8266 para probar todas las posibilidades. Lo mejor es hacer funcionar el ESP8266 con una fuente de alimentación externa y visualizar el consumo de corriente con un medidor. Con runTest6 en Light Sleep, el consumo de energía mínimo es de 0,9 mA, en Deep Sleep sólo 0,15 MA. Sin embargo, el Deep Sleep sólo permite una única señal externa para la activación. El temporizador RTC también se ejecuta en Deep Sleep. Tan pronto como el tiempo de ESP.depSleep (microsegundos) ha expirado, se aplica LOW a D0/GPIO16. Si D0 y RST están conectados, el EPS8266 se reinicia. Para poder evaluar otras señales, se necesitan divisores de voltaje compuestos por una resistencia y un condensador cada uno (véase el circuito).

diagrama de circuito

Los símbolos de los LED detrás del diodo BYV 27/200 representan los módulos solares. El interruptor (que se muestra en las fotos como un módulo de interruptor DIP) desconecta o abre la conexión a la batería.

En cuanto se inserta una carta, se aplica LOW a través del  MicroSwitch D5. Cuando se abre el buzón, LOW está en D7. El reinicio se realiza brevemente a través del condensador. El ESP8266 se pone en marcha y registra las entradas de D5 y D7. La constante de tiempo debe ser lo más corta posible para que el pico ejecute el reset de forma segura, pero la entrada en D5 y D7 sigue siendo LOW. El diodo entre RST y D0 permite programar el ESP8266 también.

D1 Mini Wired

También es importante controlar el estado del WiFi. Si no hay conexión a la red, el intento de conexión se aborta después de wifiTimeout = 60 segundos. El siguiente intento lo realiza el  temporizador después de aproximadamente 71 min. Si continua sin  conexión a la red después de un tiempo más largo, el voltaje cae por debajo del voltaje mínimo y, como se ha descrito anteriormente, se recarga primero la batería. El evento de activación se almacena en EEPROM.

Cálculo del consumo de energía

Sin paneles solares, el consumo en Deep Sleep es de 0,15 mA. Suponiendo que se recibe un correo electrónico por día, el consumo es de aproximadamente 60 mA durante unos 30 segundos. Por día esto representa 0,15 mA * 24 h + 60 mA * 1/60/ 2 h = 4,1 mAh. Con una batería de iones de litio de 2600 mAh, el D1 mini podría funcionar de forma continua durante 2600 * 70% / 4,1 h = 440 días. Incluso con el brillo de la habitación, los dos paneles solares proporcionan aproximadamente 0,5 mA, lo que representa cerca de 0,5 mA * 12 h = 6 mAh. Esto debería cubrir completamente el consumo de energía. En el exterior, el rendimiento de los paneles solares sería significativamente mejor. Para más seguridad, el estado de carga de la batería se muestra con cada correo electrónico. Al enviar, se generan picos de hasta 200 mA. Después de enviar un correo electrónico (con 3 baterías NiMH), se midió el mismo voltaje después de 3 horas que antes del correo electrónico. Las mediciones del voltaje de carga y descarga a través de un amperímetro se deben realizar con precaución. Especialmente en el punto de inversión (aproximadamente U = 0 e I = 0) con un dispositivo de medición electrónico, la lectura depende de su resistencia interna. Por lo tanto, si se producen valores inusuales, el remedio es configurar el rango de medición a 10 A, con pasos de 10 mA.

Batidor

Todas las baterías presentan ventajas y desventajas. Una batería LiFePO4 tiene un voltaje de 3,3 V y, por lo tanto, sería adecuada, pero también requiere un circuito de protección seguro, ya que no debe cargarse por más de 3,65 V. Las baterías de NiMH tienen la desventaja de una mayor autodescarga. Las LSD NIMH (de baja autodescarga) son las mejores. El uso de baterías de LiIon depende del brillo ambiental. No se ofrece ninguna garantía para las baterías de iones de litio sin circuito de protección. Como alternativa, también se probó un NodeMCU-32S. El consumo de energía fue de 9,8 mA durante "Deep Sleep". Se puede decir que el NodeMCU-32S estaban más en Light Sleep que en Deep Sleep. El puerto USB del NodeMCU-32S no se desactiva durante el Deep Sleep. El consumo de corriente por debajo de 20 μA es posible con DFRobot FireBeetle ESP32 IoT y DFRobot FireBeetle ESP-12F (ESP8266) IoT.

Conclusión

Todavía están pendientes las pruebas a largo plazo del buzón con notificación por correo electrónico y panel solar. El gran problema es conservar la fuente de alimentación permanente. Los paneles solares no siempre suministran suficiente voltaje y la corriente almacenada en las baterías puede no ser suficiente. El cambio de ESP32 a ESP8266 ha ayudado poco por el menor consumo de energía. Pero también era importante mostrar cómo utilizar tres entradas a pesar del Deep Sleep.

Buzón

Sugerencia de un sensor de clima de código abierto:
https://www.ltspiceusers.ch/threads/opensource-wettersensor-werdegang.392/

Documentación de la librería ESP8266WIFI :
https://arduino-esp8266.readthedocs.io/en/latest/libraries.html

Se adjunta el programa completo con notas o descárguelo aquí:

Recuerde ingresar a sus datos de cuenta W-LAN y correo electrónico (de la línea 36 y 90)
 // Mini_SolarPanel 5V y la batería se conecta a través de Ultrafast Avalanche Sintered Vidrio DIODE BYV 27/200 //
 
 // Autor:
 // Dr. Helmut Schmidt <GRUEENEENGEL17@gmail.com>
 
 #include
 #include
 #inClude
 
 // liion_akku
 // const int cargar voltage_max = 5500; // El voltaje de carga ideal para baterías de iones de litio es de alrededor de 4.2 voltios. Batería de león protegida de la sobretensión.
 // const int cargar voltage_min = 3500; // voltaje de descarga
 
 // para nimh_akkus
 byte N_akkus = 3;
 contaminar En t Cargando tensión_max = N_akkus * 1400;  // Voltaje de carga máx. 1.4 V para NIMH_AKKU
 contaminar En t Cargando tension_min = N_akkus * 1100;  // voltaje de descarga = 3.3 v Mínimo bajo carga
 
 
 En t tensión;
 contaminar En t Pin_ Voltage = A0;
 
 byte flag_post = falso, flag_lustración = falso,
 
 uint16_t Outtale_Email = 0;
 uint16_t Email = 0;
 uint32_t se acabó el tiempo = 60E3;  // 60 segundos de tiempo de espera en la conexión WiFi
 
 // para w a k e u p //
 #define push button_leung 13 // d7 / gpio13
 #define tarster_post 14// d5 / gpio14
 #define wake_up_pin 0 // wak_up_timer está conectado a D0 / GPIO16 en ESP8266 >> D0 causa un reinicio
 
 // para WiFi //
 // Ingrese su configuración de WiFi a continuación
 contaminar Char * Ap_sid = "Nombre de red wifi";                // Nombre de red wifi
 contaminar Char * Ap_pass = "Contraseña de red wifi";            // Contraseña de red wifi
 
 
 vacío configurar() {
   mono(Wake_up_pin, Input_pullup);
   mono(Taston_Lection, Input_pullup);
   mono(Taston_Post, Input_pullup);
 
   SI (lectura digital(Taston_Lection) == Bajo) flag_lustración = cierto;    // botón empujado
   SI (lectura digital(Taston_Post) == Bajo) flag_post = cierto;
 
 // s p a n n u n g s k o n t r o l e
 // La resistencia en interiores en Wemos D1 Mini es de 320 kohm con un divisor de voltaje de 680kohm / 320 kohm en caso de
 // El material está convirtiendo el factor 3.1 * 3 = 9.3. Voltaje en mvolt.
   tensión = análoga(Pin_ Voltage) * 9.3;
 /////////////////////////www.hrägnänd
 // voltaje = 4000;
 
   // Datos de la EEPROM
   Eeprom.Empezar(512);
   Outtale_Email = Eeprom.leyendo(0); Email = Eeprom.leyendo(4);
 
   SI (flag_post == falso && flag_lustración == falso && tensión < Cargando tensión_max && Outtale_Email == 0)  ESP.sueño profundo(0xffffffff);   // continuar durmiendo
 
 // No active WiFi en Post y Subvoltage
   SI (tensión < Cargando tension_min) {
     SI (flag_post == cierto) {                // deepsleep o h n e wifi
       Outtale_Email++;
       Eeprom.escritura(0, Outtale_Email);  Eeprom.cometer();
       De serie.Empezar(115200);  De serie.Prender("SoutorStale_Email" + Cuerda (Outtale_Email)); // solo para pruebas
    }
     ESP.sueño profundo(0xffffffff);               // convertir
  }
 
   Eeprom.Empezar(512);
   De serie.Empezar(115200);
   De serie.Prender();                                    
   De serie.Prender("Voltage =" + Cuerda(tensión) + "MVOLT");
   De serie.Prender("Puesta en marcha");
 
   Wifi.persistente(falso);    // NO guarde la conexión cada vez que guarde el desgaste en el flash
   Wifi.Moda(Wifi_sta);
   Wifi.SetOutPutPower(10);   // Reducir la potencia de salida de RF, aumente si no se conecta
   Wifi.Empezar(Ap_sid, Ap_pass);
   De serie.impresión(F("Conectando a WiFi"));            
   De serie.Prender(Ap_sid);
 
   En t wifitime = milis() + se acabó el tiempo;          // o 60 seg.
   Tiempo (Wifi.estado() != Wl_connected && wifitime > milis()) {
     De serie.impresión(".") ;                      
     demora (1000);
  }
   SI (Wifi.estado() == Wl_connected) {
     Smtp.setmail("Más ancho@gmail.com")
    .configurar la clave("Contraseña")
    .Sujeto("Sujeto")
    .fijar("De")
    .setforgmail();                        // simplemente establece el puerto a 465 y SetServer ("smtp.gmail.com");
 
     SI (flag_post == cierto || Outtale_Email > 0) {
       Email++;  Eeprom.escritura(4, Email); Outtale_Email = 0; Eeprom.escritura(0, Outtale_Email);
       Smtp.Transmisión("Dr.H.schmidt@online.de", Cuerda(tensión) + "MVOLT \ R" + Cuerda(Email) + "Una lista de deseos ha entrado en el buzón en la estación 2");
    }
     Demás SI (flag_lustración == cierto ) {
       Smtp.Transmisión("Dr.H.schmidt@online.de", Cuerda(tensión) + "MVOLT \ R BAELBOX se leered en la estación 2");
       Outtale_Email = 0; Eeprom.escritura(0, Outtale_Email); Eeprom.escritura(4, 0);
    }
     Demás SI (tensión > Cargando tensión_max) {
       Smtp.Transmisión("Dr.H.schmidt@online.de", "Voltaje de sobrevoltaje =" + Cuerda(tensión) + "MVOLT Email =" + Cuerda(Email) + "Email pendiente =" + Cuerda(Outtale_Email));      // comenta posiblemente
       Eeprom.cometer();
       ESP.sueño profundo(0x10000000) ;      /// Todos los 10 segundos para la degradación de la sobretensión
    }
 //////// solo para probar el temporizador
        Demás SI (cierto) {
           Smtp.Transmisión("Dr.H.schmidt@online.de", "Correo electrónico =" + Cuerda(Email) + "Email pendiente =" + Cuerda(Outtale_Email) +  "Voltage =" + Cuerda(tensión) + "MVOLT");      // comenta posiblemente
        }  
 //////// Test Fin
  }
 
   Eeprom.cometer();
   ESP.sueño profundo(0xffffffff); // Microsegundos Número de microsegundos para dormir. El valor máximo es 4294967295US o ~ 71 minutos.
   // ¡Quiere nunca llegar aquí!
 }
 
 vacío círculo() {   // ¡Quiere nunca llegar aquí!
 }
 
 ////////// para el uso correcto, comenta todos los comandos de impresión en serie /////////////
Gracias al Sr. Schmidt por su contribución.
Precipitador electrostático - 8266Casa inteligenteFuente de alimentación

2 comentarios

Andreas Wolter

Andreas Wolter

@Winfried Gräf: der Beitrag (samt Schaltung) wurde noch einmal aktualisiert. Danke für den Hinweis.

Winfried Gräf

Winfried Gräf

Stimmt der Schaltplan ? Schalter ?

Deja un comentario

Todos los comentarios son moderados antes de ser publicados

Artículos de blog

  1. Ahora instalamos el esp32 a través de la administración.
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. Transporte Aéreo - programación de ESP mediante redes locales inalámbricas