Tabla de contenido:
- Paso 1: Sensores de suelo
- Paso 2: sensor animal
- Paso 3: controlador de la bomba de agua
- Paso 4: Sensor de lluvia
- Paso 5: Sirena animal
- Paso 6: Sistema principal
- Paso 7: el sistema web
Video: Sistema de jardín inalámbrico: 7 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Este proyecto se basa en Arduino y utiliza "módulos" para ayudarlo a regar sus plantas y obtener la temperatura, el suelo y la lluvia.
El sistema es inalámbrico a través de 2, 4 GHz y usa módulos NRF24L01 para enviar y recibir datos. ¡Déjame explicarte un poco cómo funciona, PD! Disculpe si el inglés no es 100% correcto, soy de Suecia.
Utilizo este sistema para controlar mis plantas, pero tengo diferentes plantas y necesitaba registrarlas de manera diferente, así que construí un sistema de registro basado en zonas.
Los sensores de suelo que leen la humedad y la temperatura del suelo (funcionan con batería) verifican cada hora y pasan los datos a la máquina base que tiene una conexión wifi. Los datos se cargan en un servidor en mi casa y se conecta a una página web.
Si el suelo necesita agua, activará la bomba correcta dependiendo de qué sensor de suelo haya verificado. Pero si llueve no regará. Y si hace mucho calor, regará un poco más.
Digamos que tiene una tierra de papa, una para tabaco y otra para tomate, entonces puede tener 3 zonas con 3 sensores diferentes y 3 bombas.
También hay sensores pir que verifican los movimientos, y si están activados en la página web una sirena fuerte comenzará a asustar al animal o la persona que camina cerca de mis plantas.
Espero que entiendas un poco. Ahora comencemos a hacer sensores som.
Mi página de GitHub donde descargas todo:
Paso 1: Sensores de suelo
Cada sensor tiene un número único que se agrega a la página web. Entonces, cuando el sensor de suelo está transmitiendo, los datos de ese sensor de suelo se agregarán a la zona correcta. Si el sensor no está registrado, no se enviarán datos.
Para esta construcción necesitas:
- 1x chip Atmega328P-PU
- 1x módulo nRF24L01
- 1x condensador de 100 uf
- 1x transistor NPN BC547
- Condensadores de 2x 22 pF
- 1x cristal de 16.000 MHz
- 1x sensor de humedad del suelo
- 1x sensor de temperatura DS18B20
- 1x LED RGB (yo uso el ánodo común)
- 3 resistencias de 270 ohmios
- 1x resistencia de 4, 7 K ohmios
- Batería (yo uso batería Li-Po 3.7v)
- Y si se usa li-po, un módulo cargador para batería.
Para mantener los sensores funcionando durante mucho tiempo, no use ninguna placa Arduino prefabricada, se vaciarán la batería rápidamente. En su lugar, utilice el chip Atmega328P.
Conecta todo como se muestra en mi hoja eléctrica. (Ver imagen o archivo PDF) Se recomienda agregar también un interruptor de encendido, para que pueda cortar la energía durante la carga.
Al cargar el código, no olvide definir el sensor para darles un número de identificación único, el código está disponible en mi página de GitHub.
Para mantener vivos los sensores de suelo durante mucho tiempo, utilizo un transistor NPN para encenderlos, solo cuando comienza la lectura. Para que no estén activados todo el tiempo, cada sensor tiene un número de identificación de 45XX a 5000 (esto se puede cambiar) por lo que cada sensor debe tener números únicos, todo lo que necesita hacer es definir en el código.
Los sensores se dormirán para ahorrar batería.
Paso 2: sensor animal
El Animal Sensor es un sensor pir simple. Siente el calor de animales o humanos. Si el sensor detecta movimiento. Enviarán a la estación base.
Pero no se activará ninguna alarma, para ello, en la página tienes que activarla, o si tienes configurado un temporizador se activará automáticamente en esa hora.
Si la base recibe una señal de movimiento del sensor Animal, la pasará al sensor Siren y (espero) asustará al animal. Mi sirena está en 119 db.
El sensor pir funciona con batería y lo he colocado en una caja de sensor pir vieja de una alarma vieja. El cable que sale del sensor de animales es solo para cargar la batería.
Para este sensor necesitas:
- Chip ATMEGA328P-PU
- 1 x cristal de 16 000 MHz
- Condensador de 2 x 22 pF
- 1 x módulo de sensor Pir
- 1 x condensador de 100 uF
- 1 x módulo NRF24L01
- 1 x Led (no uso ningún led RGB aquí)
- 1 x resistencia de 220 ohmios
- Si va a funcionar con una batería, la necesita (yo uso Li-Po)
- Un módulo cargador de batería si tiene una batería de recarga.
- Algún tipo de interruptor de encendido.
Conecta todo como ves en la hoja eléctrica. Verifique que pueda alimentar su sensor pir con su batería (algunos necesitan 5v para funcionar).
Obtenga el código de mi GitHub y defina el sensor de bruja que va a usar (por ejemplo: SENS1, SENS2, etc.) para que obtengan números únicos.
El chip ATMEGA solo se activará cuando se registre el movimiento. Dado que el módulo del sensor pir tiene un temporizador incorporado para el retraso, no hay nada para eso en el código, así que ajuste el potenciómetro en el sensor pir para el retraso en el que estará despierto.
Eso es todo por el sensor animal, seguimos adelante.
Paso 3: controlador de la bomba de agua
El controlador de la bomba de agua es para encender una bomba o válvula de agua para regar sus campos. Para este sistema no necesita una batería, necesita energía para hacer funcionar su bomba. Uso un módulo AC 230 a DC 5 v para ejecutar un Arduino Nano. También tengo tipos de bomba, una que usa una válvula de agua que funciona con 12 v, por lo que tengo un módulo AC 230 a DC 12v para la placa de relés.
El otro es 230 AC en el relé, por lo que puedo alimentar una bomba de 230 V AC.
El sistema es bastante simple, cada controlador de bomba tiene números de identificación únicos, así que digamos que el campo de papa está seco y el sensor está configurado para riego automático, luego mi bomba que es para el campo de papa se agrega a ese sensor, por lo que el sensor de suelo le está diciendo al sistema base que el riego debe comenzar, por lo que el sistema base envía una señal a esa bomba para que se active.
Puede establecer cuánto tiempo debe ejecutarse en la página web (por ejemplo, 5 minutos) sin que los sensores solo verifiquen cada hora. Además, cuando la bomba se detenga, almacenará la hora en el sistema para que el sistema automático no inicie la bomba demasiado pronto. (También es posible configurarlo en la página web).
También puede, a través de la página web, deshabilitar el riego durante la noche o el día configurando horarios especiales. Y también configure temporizadores para que cada bomba comience a regar. Y si llueve no regarán.
Espero que entiendas:)
Para este proyecto necesitas:
- 1 x Arduino Nano
- 1 x módulo NRF24L01
- 1 x condensador de 100 uF
- 1 LED RGB (yo uso ánodo común)
- 3 resistencias de 270 ohmios
- 1 x tablero de relés
Conecta todo como la hoja eléctrica (ver archivo pdf o imagen) Descarga el código de GitHub y no olvides definir el número de sensor.
Y ahora que tiene un controlador de bomba, el sistema puede manejar más de uno.
Paso 4: Sensor de lluvia
El sensor de lluvia se utiliza para detectar lluvia. No necesitas más de uno. Pero es posible agregar más. Este sensor de lluvia funciona con batería y verifica cada 30 minutos si llueve. También tiene un número único para identificarse.
El sensor de lluvia utiliza pines analógicos y digitales. El pin digital es para verificar si llueve, (el digital solo muestra sí o no) y tienes que configurar la olla en el módulo del sensor de lluvia cuando esté bien para advertir sobre "lloviendo" (el nivel de agua en el sensor que indica lloviendo.)
El pin analógico se utiliza para informar en porcentaje qué tan húmedo está en el sensor.
Si el pin digital detecta que está lloviendo, el sensor lo enviará al sistema base. Y el sistema base no regará las plantas mientras esté "lloviendo". El sensor también envía qué tan húmedo está y el estado de la batería.
Solo alimentamos el sensor de lluvia cuando es el momento de leer a través del transistor que lo habilita a través de un pin digital.
Para este sensor necesitas:
- Chip ATMEGA328P-PU
- 1x cristal de 16 000 MHz
- Condensador de 2x 22 pF
- 1x módulo de sensor de lluvia
- 1x condensador de 100 uF
- 1x módulo NRF24L01
- 1x RGB Led (utilicé ánodo común, es VCC en lugar de GND)
- 3 resistencias de 270 ohmios
- 1x transistor NPN BC547
- 1x batería (yo uso Li-Po)
- 1x módulo de cargador de Li-Po (si se utiliza una batería de Li-Po)
Conecta todo como ves en la hoja eléctrica (en pdf o en la imagen, luego sube el código al chip ATMEGA como puedes encontrar en mi página de GitHub en Sensor de lluvia No olvides definir el sensor para obtener el número de identificación correcto.
Y ahora tendrás un sensor de lluvia que funciona cada 30 minutos. Puedes cambiar el tiempo en este si quieres menos o más.
En la función counterHandler () puede configurar el tiempo de activación del chip. Calcula así: Los chips se despiertan cada 8 segundos y cada vez aumentará un valor. Por lo tanto, durante 30 minutos obtendrá 225 veces antes de que deba realizar acciones.. Entonces hay 1800 segundos en media hora. Entonces, divídalo por 8 (1800/8) obtendrá 225. Eso significa que no revisará el sensor hasta que funcione 225 veces y eso será aproximadamente 30 minutos. También haces lo mismo con el sensor de suelo.
Paso 5: Sirena animal
La sirena de animales es simple cuando el sensor de animales detecta movimiento, la sirena se activará. Uso una sirena real, así que incluso puedo asustar a la gente con ella. Pero también puedes usar sirenas que solo escuchan los animales.
Utilizo un Arduino nano en este proyecto y lo enciendo con 12v. La sirena también es de 12 v, por lo que en lugar de un relé usaré un transistor 2N2222A para habilitar la sirena. Si usa un relé cuando tiene la misma tierra, puede dañar su Arduino. Entonces es por eso que uso un transistor en su lugar para habilitar la sirena.
Pero si su sirena y Arduino no usan la misma tierra, puede usar un relé en su lugar. Omita el transistor y la resistencia de 2.2K, y use una placa de relés en su lugar. Y también cambie en el código Arduino cuando se activa cambie de ALTO a BAJO y cuando esté inactivo cambie de BAJO a ALTO och la lectura digital para el pin 10, porque el relé usa BAJO para activarse y el transistor usa ALTO, por lo que debe cambiar esto.
Para esta construcción necesitas:
- 1x Arduino nano
- 1 resistencia de 2,2 K (omitir si se usa una placa de relé)
- 1x transistor 2N2222
- 1x sirena
- Resistencia de 3x 270 ohmios
- 1x RGB Led (uso ánodo común, VCC en lugar de GND)
- Módulo 1X NRF24L01
- 1x condensador de 100 uF
Conecta todo como ves en la hoja eléctrica en PDF o en la imagen. Sube el código al Arduino que encuentras en mi página de GitHub en Animal Siren No olvides definir el sensor para el número de identificación correcto.
Y ahora tienes una sirena que funciona.
Paso 6: Sistema principal
El sistema principal es el más importante de todos los módulos. Sin él no puedes usar este sistema. El sistema principal está conectado a internet con el módulo ESP-01 y estamos usando pines Arduino Megas Serial1 para conectarlo. El RX en Mega a TX en ESP pero necesitamos pasar por dos resistencias para bajar el voltaje a 3.3. Y el TX en Mega a RX en ESP.
Configurar el módulo ESP
Para usar el ESP, primero debe establecer la velocidad en baudios en 9600, es lo que he usado en este proyecto y he descubierto que el ESP funciona mejor. Fuera de la caja, se estableció en una velocidad de 115200 baudios, puedes probarlo, pero el mío no era tan estable. Para hacerlo necesitas un Arduino (Mega funciona bien) y necesitas conectar el TX de ESP (a través de las resistencias como ves en la hoja) al Serial TX (no Serial1 si usas Mega) y RX en ESP a Arduino Serial RX.
Cargue el boceto parpadeante (o cualquier boceto que no use serial) y abra el monitor serial y establezca la velocidad en baudios en 115200 y NR & CR en líneas
En la línea de comando, escriba AT y presione enter. Debería obtener una respuesta que diga OK, por lo que ahora sabemos que el ESP está funcionando. (Si no hay problema de conexión o módulo ESP-01 defectuoso)
Ahora en la línea de comando escriba AT + UART_DEF = 9600, 8, 1, 0, 0 y presione enter.
Responderá con un OK y esto significa que hemos establecido la velocidad en baudios en 9600. Reinicie el ESP con el siguiente comando: AT + RST y presione enter. Cambie la velocidad en baudios en el monitor serial a 9600 e ingrese AT y presione enter. Si vuelve a estar bien, el ESP está configurado para 9600 y puede usarlo para el proyecto.
El módulo de tarjeta SD
Quiero que sea fácil cambiar la configuración de WIFI para el sistema, en caso de que se cambie una nueva contraseña o nombre de wifi. Por eso necesitamos el módulo de tarjeta SD. Dentro de la tarjeta SD creamos un archivo de texto con el nombre config.txt y estamos usando JSON para leer, por lo que necesitamos un formato JSON. Entonces, el archivo de texto debe tener el siguiente texto:
}
Cambie el texto con las letras GRANDES para corregirlo para su red wifi.
Sin embargo, estamos usando NRF24L01 que usa SPI y el lector de tarjetas SD también usa SPI, necesitamos usar la biblioteca SDFat para que podamos usar SoftwareSPI (podemos agregar el lector de tarjetas SD en cualquier pin)
Sensor DHT
Este sistema se coloca en el exterior y tiene un sensor DHT para que podamos comprobar la humedad y la temperatura del aire. Se usa para riego adicional en días calurosos.
Para esta construcción necesitas:
- 1x Arduino Mega
- 1x módulo NRF24L01
- 1x módulo ESP-01
- 1x módulo de tarjeta micro SD SPI
- 1x sensor DHT-22
- 1x RGB Led (utilicé ánodo común, VCC en lugar de GND)
- 3 resistencias de 270 ohmios
- 1x resistencia de 22 K ohmios
- 2x resistencia de 10 K ohmios
Tenga en cuenta que si no consigue que su módulo ESP-01 sea estable, intente alimentarlo desde una fuente de alimentación externa de 3.3v.
Conecta todo como ves en la hoja eléctrica en el archivo PDF o en la imagen.
Sube el código a tu Arduino Mega y no te olvides de revisar todo el código en busca de comentarios, porque necesitas configurar el host en el servidor en varios lugares (no es la mejor solución que conozco).
Ahora su sistema Base está listo para usar. No necesita cambiar las variables en el código para los pecados de humedad del suelo, puede hacerlo directamente desde la página web.
Paso 7: el sistema web
Para utilizar el sistema también necesita un servidor web. Utilizo una frambuesa pi con Apache, PHP, Mysql, Gettext. El sistema web es multilingüe, por lo que puedes hacerlo fácilmente en tu idioma. Viene con sueco e inglés (el inglés puede tener un inglés incorrecto, mi traducción no es 100%). Por lo tanto, debe tener Gettext instalado para su servidor, y también las configuraciones regionales.
Te muestro algunas capturas de pantalla del sistema.
Viene con un sistema de inicio de sesión simple y el inicio de sesión principal es: administrador como usuario y agua como contraseña.
Para usarlo, debe configurar tres trabajos cron (los encontrará en la carpeta cronjob)
El archivo timer.php debe ejecutarse cada segundo. Esto contiene toda la automatización para el sistema de agujeros. El nombre de archivo temperature.php se usa para decirle al sistema que lea la temperatura del aire y la registre. Por lo tanto, debe configurar un trabajo cron sobre la frecuencia con la que lo ejecutará. Lo tengo cada 5 minutos. Luego, el archivo llamado dagstatistik.php solo debería ejecutarse una vez antes de la medianoche (como 23:30, 11:30 PM). Toma los valores informados por los sensores durante el día y los guarda para las estadísticas semanales y mensuales.
Tenga en cuenta que este sistema almacena la temperatura en grados Celsius, pero puede cambiarla a Fahrenheit.
En el archivo db.php, configura la conexión de la base de datos mysql para el sistema.
Primero, agregue los sensores al sistema. Y luego crea zonas y agrega sensores a las zonas.
Si tiene alguna pregunta o encuentra errores en el sistema, infórmelos en la página de GitHub. Puede usar el sistema web y no está autorizado a venderlo.
Si tiene problemas con las configuraciones regionales para gettext, recuerde que si usa raspberry como servidor, a menudo se denominan en_US. UTF-8, por lo que debe realizar esos cambios en el archivo i18n_setup.php y en la carpeta de configuración regional. De lo contrario, se quedará atascado con el idioma sueco.
Lo descargas en la página de GitHub.
Recomendado:
Termómetro luminoso - Luz de jardín vitaminada (eNANO De Jardin): 6 pasos
Termómetro luminoso - Luz de jardín vitaminada (eNANO De Jardin): Luz de jardín vitaminada con arduino NANO y un sensor de temperatura BMP180.Nuestra humilde luz de jardín tendrá un poder secreto: podrá indicar la temperatura exterior mediante un código de colores y parpadeando. Su funcionamiento es el siguiente: I
Robot Arduino inalámbrico con módulo inalámbrico HC12: 7 pasos
Robot Arduino inalámbrico con módulo inalámbrico HC12: Hola chicos, bienvenidos. En mi publicación anterior, expliqué qué es un circuito de puente H, IC de controlador de motor L293D, IC de controlador de motor L293D a cuestas para conducir controladores de motor de alta corriente y cómo puede diseñar y hacer su propia placa de controlador de motor L293D
Punto de acceso inalámbrico de 50 metros de alcance con adaptador inalámbrico USB TP Link WN7200ND en Raspbian Stretch: 6 pasos
Punto de acceso inalámbrico de 50 metros de alcance con adaptador inalámbrico USB TP Link WN7200ND en Raspbian Stretch: Raspberry Pi es excelente para crear puntos de acceso inalámbricos seguros, pero no tiene un buen alcance, utilicé un adaptador inalámbrico USB TP Link WN7200ND para extenderlo. Quiero compartir cómo hacerlo¿Por qué quiero usar una raspberry pi en lugar de un enrutador? T
Hackear un timbre inalámbrico en un interruptor de alarma inalámbrico o interruptor de encendido / apagado: 4 pasos
Hackear un timbre inalámbrico en un interruptor de alarma inalámbrico o interruptor de encendido / apagado: Recientemente construí un sistema de alarma y lo instalé en mi casa. Usé interruptores magnéticos en las puertas y los cableé a través del ático. Las ventanas eran otra historia y cablearlas no era una opción. Necesitaba una solución inalámbrica y esta es
Convierta el enrutador inalámbrico en un extensor inalámbrico 2x punto de acceso: 5 pasos
Convierta el enrutador inalámbrico en un punto de acceso de extensor inalámbrico 2x: Tenía una conexión inalámbrica a Internet deficiente en mi casa debido a una RSJ (viga de soporte de metal en el techo) y quería aumentar la señal o agregar un extensor adicional para el resto de la casa. Había visto extensores por alrededor de £ 50 en un electro