Tabla de contenido:
- Suministros
- Paso 1: Configuración de su RPi
- Paso 2: MCP3008 + TMP36
- Paso 3: base de datos
- Paso 4: HNT11, para los chicos de verdad
- Paso 5: Sensores de gas (solo leyendas)
- Paso 6: Shiftregister, 74HC595AG
- Paso 7: Frontend, una valiosa lección
- Paso 8: el backend
- Paso 9: Hacer el caso
- Paso 10: Evaluación y conclusión
Video: Comprobador de contaminación de clase CPC: 10 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Hola, soy un estudiante de Bélgica y este es mi primer gran proyecto para mi licenciatura. Este Instructable trata sobre cómo hacer un medidor de solución de aire para salas cerradas, ¡especialmente aulas!
Te escucho pensando ¿por qué este proyecto? Bueno, todo empezó cuando fui a la secundaria. Por la tarde, después de un buen almuerzo y un descanso, las lecciones comienzan de nuevo. Pero hay un problema, el profesor se olvidó de abrir la ventana mientras almorzamos, así que hace calor, sudor y no puedes concentrarte porque te estás quedando dormido. Eso es porque hay mucho CO2 en el aire.
Mi proyecto resolverá esto y hará que todos los estudiantes estén más concentrados mientras están en sus lecciones.
Suministros
1 xRaspberry Pi 4 (55 €)
1 x motor paso a paso con conductor (5 €)
2 x baterías 12v 6800 mAh (2x 20 €)
2 x módulo reductor (2x 5 €)
1 x pantalla LCD 16x2 (1,5 €)
Sensores: 1x MQ8, 1x MQ4, 1x MQ7, 1x MQ135, 1x HNT11, 1x TMP36 (1 x 23 €)
Circuitos integrados: 1x MCP3008, 2x 74hc595AG (1x € 2,30, 2x € 0,40)
LED: 2x verdes, 2x rojos, 3x amarillos (se encuentran en algunos hardware antiguos, normalmente 0,01 € cada uno)
Conector para las baterías (2 x 0,35 €)
40 cables de conector f-to-f (1,80 €)
40 cables conectores f-to-m (1,80 €)
Cables conectores de 20 ma m (1,80 €)
2 x PCB para soldar (2x 0,70 €)
Instrumentos:
Soldador (preferiblemente 60 vatios)
Estaño para soldar
Hoja de aluminio 50x 20
Carcasa (utilicé una vieja caja de mini computadora)
Esto podría ser fácilmente algunos MDF o ideas propias.
Paso 1: Configuración de su RPi
Entonces, nuestro corazón, nuestro cerebro y nuestra alma están en este producto. Amenaza bien, porque puede lastimarte de una forma u otra. Estoy usando un RPi 4B 4gb, otros modelos deberían funcionar bien. Podría esperar algo más de retraso en los modelos más antiguos.
Obtuvimos el sistema operativo de nuestra escuela con un software preinstalado como phpMyAdmin.
En primer lugar, asegúrese de que puede conectarse a su Raspberry Pi a través de ssh, lo necesitaremos mucho tiempo.
Entonces, primero debemos habilitar el bus SPI, los pines GPIO y deshabilitar otros buses, no los necesitaremos.
Puede hacer esto en el menú raspi-config. Navegue a Interfaces y habilite GPIO y SPI normalmente. Mientras esté aquí, expanda su almacenamiento yendo a avanzado y luego presione Enter para expandir almacenamiento.
Ahora reinicie. Necesitaremos algunas extensiones para usar VS Code en nuestro pi, para ejecutar nuestro servidor y base de datos.
El proceso de instalación para la extensión de código VS se puede encontrar aquí.
Ahora instalaremos las extensiones para nuestro servidor y base de datos. Use la terminal y escriba 'python install flask, flask-cors, mysql-python-connector, eventlet' espere hasta que finalice.
Ahora podemos empezar con la realización del proyecto.
Paso 2: MCP3008 + TMP36
Entonces tenemos 6 sensores: 4 de gas, 1 de humedad + temperatura y 1 sensor de temperatura. Es una verdadera tarea hacer que todos funcionen. Todos los sensores son sensores analógicos, por lo que necesitamos convertir la señal analógica en una señal digital. Eso es porque el RPi (Rasberry Pi) solo puede "entender" señales digitales. Para obtener más información, haga clic aquí.
Para completar esa tarea, necesitará un MCP3008, ¡esto hará un gran trabajo!
Tiene 16 puertos, contando desde la parte superior (la pequeña burbuja) hacia la izquierda, hacia abajo, hacia el otro lado y hacia arriba. Pin1-8 son las entradas para la señal analógica de nuestros sensores. El pin 9 en el otro lado es un GND que debe estar conectado al GND del circuito completo, de lo contrario, esto no funcionaría. Los pines 10-13 deben conectarse con más cuidado, estos transmitirán datos hacia y desde el RPi. El pin 14 es otro GND y los pines 15 y 16 son los VCC, estos deben estar conectados al lado positivo del circuito.
Este es el diseño para el cableado de thr:
- MCP3008 VDD a 3.3V externo MCP3008 VREF a 3.3V externo
- MCP3008 AGND a GND externo
- MCP3008 DGND a externalGND
- MCP3008 CLK a la clavija 18 de Raspberry Pi
- MCP3008 DOUT al pin 23 de Raspberry Pi
- MCP3008 DIN a clavija 24 de Raspberry Pi
- MCP3008 CS / SHDN al pin 25 de Raspberry Pi
Este también es un buen momento para conectar el GND del RPI al GND externo. Esto hará que la electricidad fluya desde el RPi.
A continuación, le indicamos cómo conectarlo de la manera correcta.
Asegúrese de conectarlo de la manera correcta, de lo contrario, ¡puede provocar un cortocircuito en todo!
El primer fragmento de código aparece aquí.
Puedes copiar mi código de mi proyecto github en models. Analog_Digital.
En la parte inferior de la página, encontrará el código fuente para que funcione.
Pero necesitamos nuestro primer sensor, para poder probarlo.
Necesitamos probar nuestro sensor si funciona. Conecte una fuente de alimentación de 3,3 V o 5 V al lado positivo del TMP36. No olvides conectarlo a GND también, esto es quizás algo estúpido que suceda, pero créeme. Esa es la realidad;). Puede probar con su multímetro la salida del sensor, este es el pin del medio. Con esta sencilla ecuación puedes comprobar la temperatura en ° C. ((milivoltios * voltaje de entrada) -500) / 10 y ¡voilá donne! ¡Chau! Bueno, no jaja, necesitamos el MCP3008. Conecte el pin analógico de su TMP36 al primer pin de entrada del MCP3008. Este es el pin 0.
Puede utilizar el código de ejemplo en la parte inferior para esta clase MCP. O algo que encontrará en línea funcionará bien.
Paso 3: base de datos
Entonces, ahora que podemos leer en nuestro primer sensor, necesitamos registrarlo en una base de datos. Este es el recuerdo de nuestro cerebro. Diseñé esta base de datos para que sea ampliable y fácilmente modificable para futuros cambios.
Entonces, primero debemos pensar qué obtendremos como entradas y si necesitamos registrar cosas específicas, como los estados de ciertos objetos.
Mi respuesta sería: entrada de 6 sensores, así que necesitamos hacer una tabla de sensores, con estos sensores haremos valores. ¿Qué está vinculado a un valor? Para mí es el estado de la ventana, está abierta o cerrada mientras el sensor mide el valor. Pero la ubicación también es un factor para mi valor, así que lo agregaremos. La hora y la fecha de un valor también son importantes, así que lo agregaré.
Para una futura expansión, agregué una tabla de usuarios.
Entonces, ¿cuál es mi idea en cuanto a las tablas: valores de la tabla, dirección de la mesa (vinculada a la habitación), sala de la mesa (vinculada al valor), ventana de la mesa (vinculada al valor), sensor de la tabla (vinculado al valor) y una tabla en la naturaleza para usuarios.
En cuanto a vincular las tablas. Cada valor necesita un sensor, una ventana, un valor para el sensor, una identificación para que podamos hacer que el valor sea único, una marca de tiempo para cuando se hizo el valor y, por último, no necesitamos una habitación, por lo que es opcional pero puede ser adicional.
Así es como se ve ahora. Esto es lo que estoy usando para el resto de mi proyecto.
Paso 4: HNT11, para los chicos de verdad
Entonces, como no se nos permitió usar ningún tipo de biblioteca. Debemos programar todo nosotros mismos.
El HNT11 es un sistema de un solo cable, por lo que esto significa que tiene un GND y VCC como cualquier otro dispositivo electrónico, pero el pin es un pin de entrada y salida. Así que es un poco extraño, pero aprendí mucho de él.
Conecte el VCC al 3.3V externo y el GND al GND externo.
La hoja de datos del DHT11 contiene todo lo necesario para utilizar estos sensores.
Podemos determinar que un bit alto contiene un bit alto y uno bajo. Pero la duración de la parte alta determina el bit de verdad. Si la parte alta se emite durante más de 100 µs (normalmente 127 µs), el bit es alto. Si el bit es más corto que 100 µs (normalmente alrededor de 78 µs), el bit es bajo.
Cuando se activa el HNT11, comenzará a emitir señales. Esto es siempre de 41 bits. Comienza con un poco de inicio, esto no significa nada, así que podemos omitir este. Los primeros 16 bits / 2 bytes son la parte entera y flotante para la humedad. Es lo mismo para los últimos 2 bytes pero ahora es para la temperatura.
Entonces solo necesitamos calcular la duración de cada bit y luego terminamos.
En el código fuente bajo DHT11 encontrará mi método para resolver este problema.
Paso 5: Sensores de gas (solo leyendas)
Así que pensé al comienzo del proyecto que sería una gran idea usar muchos sensores. Piense antes de actuar y compre localmente, ¡esto le ahorrará muchas horas de sueño! Porque puede comenzar antes y esto hará que esté más dispuesto a hacerlo.
Entonces tengo 4 sensores de gas. MQ135, MQ8, MQ4 y un MQ7 todos estos sensores tienen gases específicos que miden mejor. Pero todos estos son diferentes en su configuración.
Así que primero usé la hoja de datos, esto no me hizo querer. Luego busqué ejemplos de código. Lo que encontré fue una biblioteca de Adafruit. Intenté replicarlo lo mejor posible. Funcionó con uno de los cuatro sensores.
Lo dejé descansar un rato y volví a hacerlo.
Lo que hice para que funcione para ese sensor es:
- Usé la hoja de datos para marcar puntos del gas que quería medir. Entonces 1 ro / rs a 400ppm, 1.2 a 600ppm…
- Luego puse todos esos puntos en sobresaliente y extraje la fórmula de la curva. Guardé esto en mi base de datos.
- De la hoja de datos también leí la resistencia normal y la resistencia al aire limpio. Estos valores también se guardaron en la base de datos.
Vertí todo esto en un código, puede encontrar esto como las últimas tres funciones en la clase MCP3008. Pero esto aún no ha terminado, lamentablemente no tuve suficiente tiempo.
Paso 6: Shiftregister, 74HC595AG
Así que este es un IC. Y hace algo especial, con este dispositivo es posible usar menos salidas GPIO para la misma señal de salida. Lo usé para la pantalla LCD (pantalla de cristal líquido) y mis leds. Mostraré la dirección IP en la pantalla LCD para que todos puedan navegar por el sitio.
Los LED se eligen sabiamente 2 rojos, 3 amarillos y 2 verdes. Esto mostrará en cualquier momento la calidad del aire en la habitación.
El Shiftregister es un dispositivo de salida paralelo, por lo que no es posible emitir diferentes señales en un período de tiempo. Esto sería posible si se programa desde el exterior, pero no está respaldado de forma nativa.
¿Cómo utilizar el IC? Bueno, tienes 5 entradas y 9 salidas. 8 salidas lógicas para los 8 pines y luego el noveno pin para enviar los datos sobrantes a otro registro de cambios.
Así que conectamos el pin 16 al VCC externo, el siguiente pin es la primera salida, así que para el LCD lo necesitaremos. El pin 14 es la línea de datos, aquí enviaremos los datos. El pin 13 es el interruptor de encendido, una señal baja habilita el IC, se necesita una señal alta para apagarlo. El pin 12 es el pin donde podemos determinar cuándo se envió un bit, cuando tira de este pin hacia abajo para que de mayor a menor lea el estado de la señal del pin 13 y lo almacene en su memoria de 8 bits. El pin 11 es similar cuando este pin se establece en alto y luego en bajo y envía los 8 bits a su puerto. Y el último pin, el pin 10 es el reinicio maestro, este pin debe permanecer alto o no funcionará. La última conexión es el pin 8 de GND que necesitamos para conectar este al GND externo.
Así que ahora conecta los pines como quieras a la frambuesa pi. La forma en que lo hice fue conectarlos lo más cerca posible entre sí para asegurarme de que sabía dónde estaban.
Cuando obtienes una salida correcta. Puede soldar esto a una PCB con los LED. y resistencias de 220 Ohm. Suelde la salida del IC al led correspondiente. Ahora debería tener algo como esto.
Puede encontrar mi código de prueba aquí en Shiftregister. Cuando trabaje con un 74HC595N, no necesitará el MR, por lo que puede dejarlo desconectado.
La pantalla LCD es prácticamente la misma. Es bastante fácil de usar con el registro de cambios porque la entrada para la pantalla LCD es exactamente la entrada para el registro de cambios.
Para la pantalla LCD hay algún otro código para que funcione, pero es bastante similar al registro de cambios. Puede encontrar el código de prueba aquí en LCD.
Paso 7: Frontend, una valiosa lección
Así que aquí me desviaré, esta es una sección de cómo debe hacerlo. Esto es algo muy muy valioso que aprendí.
¡Haz el frontend antes que el backend!
Lo hice al revés. Hice llamadas inútiles para mi base de datos, paso mucho tiempo en esto.
En la página de destino, necesitaba la temperatura y la humedad actuales y los valores de todos los sensores de gas en un buen gráfico. También necesito mostrar la dirección IP del RPi.
En la página de los sensores necesito la selección de un sensor y el tiempo de selección. Elegí la selección de un día y luego el período de ese día. Esto me lo hizo mucho más fácil porque podía controlarlo más.
En la página final, la página de configuración es posible administrar ciertos valores, como niveles de temperatura y gases peligrosos o peligrosos para la salud. También puede reiniciar el RPi si siente la necesidad de hacerlo.
Entonces, primero hice un diseño para poder comenzar a trabajar fácilmente en la parte de codificación. Progresé gradualmente una cosa a la vez. La tarea fue móvil primero, así que me centraré en eso primero. Luego iré a las pantallas más grandes.
Puedes encontrar mis páginas, css y js en mi Github.
Paso 8: el backend
Esta parte es la parte que mezclé con la interfaz. Cuando hice algo para el frontend, lo hice funcionar en el backend. Entonces no necesitaría revisión más tarde. Esto fue algo que no hice en primer lugar y debido a esto ciertamente perdí 2 semanas de tiempo. ¡Estúpido yo! Pero una lección que aplico a otros proyectos.
Entonces, cuando hagas backend, crea algo que usarás. Pero hágalo a prueba de futuro haciéndolo reutilizable y no codificado de forma rígida. Entonces, cuando necesite los últimos 50 valores de mi DHT11, verificaré si se están haciendo valores. Sí, ¿cómo los pongo en la base de datos? ¿Cómo los saco de la base de datos? ¿Cómo lo muestro? ¿Cuadro, gráfico o simplemente datos simples? Luego hago una nueva ruta con los diferentes parámetros y propiedades como fechas, nombres de sensores específicos o lo que estaré llamando. Quiero decir, llamo a todos los valores de los sensores MQ o llamo a todos los sensores con MQ en su nombre. Luego puse un poco de manejo de errores. Cuando la solicitud de la llamada es el método correcto, solo entonces puede continuar, de lo contrario, obtiene un error agradable.
También aquí se encuentran los subprocesos, estos son piezas de software que le permiten ejecutar código paralelo. Puede ejecutar las llamadas a los sitios web, la función de creación de valor y el led + shiftregister. Estas funciones se ejecutan de forma completamente independiente entre sí.
Así que para los led. Hice un valor mínimo / saludable para el CO2. Este valor provino de múltiples fuentes gubernamentales. El valor saludable para las aulas es inferior a 600 ppm de CO2 por metro cúbico. El valor no saludable es todo lo que esté por encima de 2000 ppm. Entonces los LED hacen el puente. Si el valor del sensor MQ4 es 1400, se calculará automáticamente en qué nivel de peligro se encuentra. 2000 - 600 = 1400 por lo que el rango total es 1400/7 = 200. Entonces, cuando el valor llega a 550, muestra un led verde. 750 muestra 2 leds verdes, 950 1 led amarillo 2 leds verdes. Etcétera.
Cuando el valor sube por encima de la mitad, se abre la ventana. Usé un motor paso a paso debido al alto par y la precisión. Y cuando el valor supera los 2000, se dispara una pequeña alarma. Esto es para alarmar a la gente dentro de la habitación.
También podemos detectar gases de humo así cuando hay un incendio. También registra esto. Cuando supera un cierto valor, la alarma se activa y el LED parpadea.
La pantalla LCD está principalmente ahí para mostrar la dirección IP para que pueda navegar por el sitio.
Puedes encontrar todo + código dentro de mi Githubin the app.py
Paso 9: Hacer el caso
Encontré una pequeña caja de computadora para todos mis componentes.
Corté una hoja de aluminio a medida. Y taladré unos agujeros donde reposaría la sábana. Esto se corresponde con los orificios de la placa base.
Luego miré cómo encajaría todo dentro del estuche. Dispuse todo y comencé a moverme.
Cuando estaba satisfecho con cómo funcionaría, comencé a marcar los orificios que necesitaba para los sensores, RPi, PCB, módulos de potencia y módulo de motor paso a paso. Los orificios son para el separador de la PCB, esto hará algo de espacio para que las partes metálicas no entren en contacto con la hoja de aluminio. También le da un bonito aspecto.
Cogí los cables de cada IC u otro dispositivo y los até. Esto es porque pude ver qué cables son para qué. Coloqué todo muy bien en algunos separadores y usé algunas tuercas y tornillos para mantener todo bien en su lugar.
Para alimentar todo esto usé 2 baterías. Estos proporcionan mucha energía, pero siguen siendo baterías, por lo que se agotarán con el tiempo. Los monté con velcro. Usé velcro porque entonces podría reemplazar o deshacerme fácilmente de las baterías.
El motor paso a paso, la pantalla LCD y los LED saldrán de la parte superior de la carcasa. Así que coloqué cuidadosamente la tapa de la caja en la parte superior, marqué los agujeros y los perforé con un taladro. Para que podamos ver todo fácilmente.
A medida que la carcasa esté terminada, necesitamos cablear todo, aquí puede encontrar el esquema de cableado.
Paso 10: Evaluación y conclusión
Así que este es / fue mi primer proyecto.
Se ve bien, supongo.
Aprendí muchas cosas nuevas, aprendí lo bueno y lo malo de la gestión de proyectos. Realmente fue una lección valiosa. Me apoyé en que no puedes esperar, realmente necesitas seguir dando. Necesita documentar cada movimiento (casi cada movimiento), y que debe hacerlo cuando lo acaba de hacer.
Concéntrese en 1 cosa a la vez. ¿Quieres la temperatura en tu pantalla? Haz esto, esto y aquello. No espere ni intente dejarlo pasar. No servirá de nada. Y te hará perder un tiempo tan precioso.
Además, 4 semanas parecen mucho tiempo. Pero menos es verdad. Esto simplemente no está bien. Tienes solo 4 semanas. Las primeras 2 semanas no tienen tanta presión. Terminando 3 semanas y la 4 semana sin dormir. Así es como no debes hacerlo.
Tal vez fui un poco ambicioso: una carcasa súper pequeña, sin sensores fáciles de usar, baterías … Hazlo mucho más simple y luego hazlo gradualmente más y más difícil, solo así obtendrás un buen prototipo / producto.
Recomendado:
Diseño de oscilador basado en modo actual para amplificadores de potencia de audio de clase D: 6 pasos
Diseño de oscilador basado en modo actual para amplificadores de potencia de audio de clase D: en los últimos años, los amplificadores de potencia de audio de clase D se han convertido en la solución preferida para sistemas de audio portátiles como MP3 y teléfonos móviles debido a su alta eficiencia y bajo consumo de energía. El oscilador es una parte importante de la clase D au
Final de la clase de bricolaje de Otto: 4 pasos
Final de la clase de bricolaje de Otto: Este proyecto fue posible gracias a Otto y Athens Technical College. Para comenzar, primero debe comprar el kit en: https://www.ottodiy.com/store/products/49452 Luego siga los pasos en: https: //wikifactory.com/+OttoDIY/otto-diy
Altavoces de alta fidelidad: una guía para una construcción de primera clase: 8 pasos (con imágenes)
Altavoces de alta fidelidad: una guía para una construcción de primera clase: Decidí escribir este Instructable después de pasar demasiado tiempo tratando de encontrar información completa y de buena calidad para construir gabinetes de altavoces de alta fidelidad que no suponían una gran experiencia o pericia. Hay algunos instructables geniales también
Proyecto modelo de parque de contaminación lumínica: 15 pasos
Proyecto modelo de parque de contaminación lumínica: La contaminación lumínica es un problema grave en muchas ciudades importantes de todo el mundo. La cantidad excesiva de luz en nuestras ciudades puede alterar los patrones migratorios de varios animales, como tortugas y pájaros, y provocar su muerte, estropeando la charcutería
Comprobador de capacidad de batería de iones de litio (comprobador de potencia de litio): 5 pasos
Comprobador de capacidad de batería de iones de litio (comprobador de potencia de litio): =========== ADVERTENCIA & DESCARGO DE RESPONSABILIDAD ========== Las baterías de iones de litio son muy peligrosas si no se manipulan correctamente. NO CARGAR DEMASIADO / QUEMAR / ABRIR los murciélagos de iones de litio Todo lo que haga con esta información es su propio riesgo ====== =====================================