diff --git a/README.md b/README.md index e33eeae5e715d3b75d48bdef496d53759b3e2b06..b7de5e6a71b28a6d7a7ed52e2499ac58eba19d14 100644 --- a/README.md +++ b/README.md @@ -1,118 +1,53 @@ -# Medidor UV-C -## Requerimientos funcionales -### Para prototipo 0 - - medir radiación - - reportar radiación instantanea - - reportar tiempo faltante para terminar desinfección - - señalización visual y sonora de fin desinfección - - detectar presencia de bandeja con máscaras - - No controla el encendido de los tubos. - - Interfaz con el usuario: - - switch para indicar presencia de bandeja con máscaras - - leb blanco que enciende y apaga y buzzer para indicar fin de tiempo de desinfección - - si se usa display 7 segmentos: - - en una parte muestra información indicando si no hay bandeja o la cuenta regresiva - - en otra parte se muestra la radiación instantanea - - si se usa un diplay tipo matriz de puntos - - en una fila muestra información indicando si no hay bandeja o la cuenta regresiva - - en otra fila se muestra la radiación instantanea - - -## Diagrama flujo prototipo 0 -``` -0. POWER_UP - Mide radiación - - Disp_power: <potencia_medida> - Disp_remain: <apagado> - -> Bandeja no presente: 1 - -1. NO_LOAD_PRESENT - Mide radiación (mW/cm2) - - Disp_power: <potencia_medida> - Disp_remain: <apagado> - - -> Insertan bandeja: 2 - -2. DOSE_CALCULATION - Tiempo dosis (s) = Dosis_objetivo (mJ/cm2) / radiación medida (mW/cm2) - - Disp_power: <potencia_medida> - Disp_remain: <apagado> - - -> Pasa a 3 - -3. DOSE_APPLY - Cuenta regresiva de tiempo transcurrido - - Disp_power: <potencia_medida> - Disp_remain: <cuenta_regresiva> - - -> Sacan bandeja : 1 - -> Cuenta llega a 0 : 4 - -4. DOSE_END - Alarma sonora y visual. - - Disp_power: <potencia_medida> - Disp_remain: <alterna entre 0000 y 8888> - - -> Sacan bandeja: 1 -``` - - -### Para versión con leds -- Rele para encender luces solo cuando hay máscaras - - -## Protocolo de calibración - -## Digrama de bloques - - -## Hardware -### Caja - -### Plataforma - Prime prototipo: ESP-WROOM-32 con WiFi - Para producción: Arduino mini - -### Sensor UV -#### Sensores que existen en Uruguay. - -Interfaz analógico: ML8511 **No hay stock** -https://www.robotec.com.uy/productos/S168 - -Interfaz digital: VEML6075 **No hay stock** -https://www.robotec.com.uy/productos/S281 - -#### Opciones a nivel mundial - -#### Módulos -Modulo analógico con sensor GUVA-S12SD (UV-A y UV-B) (USD 6.5) -https://www.digikey.com/product-detail/en/adafruit-industries-llc/1918/1528-1468-ND/5761250 - -#### Sensores -SMD (8.78) -https://www.digikey.com/product-detail/en/genicom-co-ltd/GUVC-S10GD/2096-GUVC-S10GDCT-ND/10475469 - -Amplificador para sensores: (USD 0.29) -https://www.digikey.com/product-detail/en/microchip-technology/MCP6241T-E-OT/MCP6241T-E-OTCT-ND/1979750 - -### Display - -### Sensores de bandeja - -Magneticos para evitar roturas mecánicas. - -https://articulo.mercadolibre.com.uy/MLU-444040526-sensores-magneticos-para-puertas-ventanas-o-portones-_JM?quantity=1#position=2&type=item&tracking_id=e96d47ce-e028-47d7-acd5-4289fe7948e9 - -## Otros proyectos - -HYJEIA WIRELESS DOSIMETER: -https://hackerfarm.jp/projects/hyjeia-an-open-source-decontamination-system/hyjeia-wireless-dosimeter/ - -NUKEMETER -https://hackerfarm.jp/2020/03/nukemeter/ +# Control de cámara de desinfección con UV-C +## Introducción +En el marco de la pandemia COVID-19 la Universidad de la República abordó diferentes proyectos, uno de ellos fue la construcción de una cámara de desinfección de máscaras N95 mediante radiación UV. + +En este repositorio se encuentra la documentación y fuentes del equipo electrónico encargado de medir la radiación dentro de la cámara y controlar el encendido de las fuentes de radiación UVC. Este equipo es el encargado de supervizar la presencia de la bandeja con máscaras y el estado de las puertas para operar el equipo en forma segura. Presenta al usuario una interfaz consistente en un botón, el cual permite iniciar un ciclo de desinfección o apagar sirena de aviso al finar el ciclo y leds bicolor, display y un buzzer que brindan información operativa. + + + +## Organización repositorio +URL para clonar repositorio: https://gitlab.fing.edu.uy/desinfeccion_uv/medidor_uv.git + +El respositorio se encuentra organizado en las siguientes carpetas: + - **circuit** + - circuit.md: Archivo markdown con notas especÃficas sobre electrónica. + - sensor_uv: + - archivos KiCad con esquemático y placa + - bom: Lista de materiales con código Digikey de los componentes + - print_out: PDF con esquemático, layout de placa y placa para imprimir en plapel transfer para fabicación artesanal. + - uv_meter: + - archivos KiCad con esquemático y placa + - bom: Lista de materiales con código Digikey de los componentes + - print_out: PDF con esquemático, layout de placa y placa para imprimir en plapel transfer para fabicación artesanal. + - **compras** + - facturas de las compras realizadas + - **design** + - design.md: Archivo markdown con notas especÃficas sobre decisiones de diseño. + - diagramas: diagramas de bloques y conexionado de componentes. + - recursos: + - fotos: fotos de diferentes componenntes y etapas de armado + - prototipo_mecanico: planos y fotos de referencia de parte mecánica + - **hojas_datos** + - Hojas de datos de los componentes más relevantes + - **releases** + - Archivos zip con contenido de release de este repositorio en momentos relevantes. + - **sw** + - sw.md: Archivo markdown con notas especÃficas sobre software. + - uv_meter_arduino: sw que implementa funcionalidades necesarias para la operación del equipo. + - uv_meter_setup_arduino: sw que implementa funcionalidades necesarias para la puesta en marcha durante montaje del equipo. + +## Releases +### 2020-07-13 +Release inicial de documentación y fuentes. Cierre de etapa de prototipado con 2 equipos funcionando. Uno de ellos con sensor UVC y display de 2 lineas, el otro sin sensor UVC y display 7 segmentos. + +Versión de electrónica uv meter: 1.2 +Versión de electrónica uv sensor: 1.2 +Versión de sw: 1.0 + +Problemas conocidos: +- al grabar ciclos de funcionamiento y tiempo encendido en eeprom, el programa puede fallar. Se deshabilita para esta versión. + +Futuras mejoras: +- incorporar en el sw funcionalidades de monitores de caida abrupta de radiación durante funcionamiento (falla en tubos) +- una vez estabilizado el diseño electrónico, pasar todo a componentes SMD para reducir tamaño y utilizar un solo conector para todas las señales y alimentación. \ No newline at end of file diff --git a/circuit/circuit.md b/circuit/circuit.md new file mode 100644 index 0000000000000000000000000000000000000000..25372b8a0e859a22cec457098c942cd22e68131d --- /dev/null +++ b/circuit/circuit.md @@ -0,0 +1,16 @@ +# Control de cámara de desinfección con UV-C +# Electrónica + +El diseño esta realizado utilizando el software KiCad y para estas primeras versiones se optó por utilizar componentes de fácil acceso en plaza en Uruguay (salvo sensor UVC y op.amp. para condicionamiento de señal). + +En las sub-carpetas se encuentran los esquemáticos, circuitos impresos y lista de materiales. Se incluyen códigos del proveedor en Uruguay Eneka e internacional DigiKey. + +## uv_meter +Es la placa que contiene el microcontrolador Arduino, acondicionamiento de señales de sensores, buzzer, relé para manejo de alumentación de fuente UVC y display. + +En la versión inicial se utilizó un display 7 segmentos de 8 dÃgitos, pero luego se optó por el uso de un display que permite 2 filas de texto y se controla mediante I2C. + + + +## uv_sensor +Es la placa que contiene el sensor UV-C. Entra a uno de los canales ADC del microcontrolador Arduino. \ No newline at end of file diff --git a/design/design.md b/design/design.md new file mode 100644 index 0000000000000000000000000000000000000000..e4e47ab68c3e84fbfe659fabf58c4b60ded1c475 --- /dev/null +++ b/design/design.md @@ -0,0 +1,35 @@ +# Control de cámara de desinfección con UV-C +# Notas diseño + +## Requerimientos funcionales +### Para prototipo 1 + - medir radiación + - reportar radiación instantanea + - reportar tiempo faltante para terminar desinfección + - señalización visual y sonora de fin desinfección + - detectar presencia de bandeja con máscaras + - controla el encendido de los tubos. + + Interfaz con el usuario: + - switch para indicar inicio de operación y reconocimiento de mensajes de error. + - led bicolor (rojo y verde) para indicar etapa en la que esta el equipo y alertar de errores. + - buzzer: sirenas para dar realimentación sonora de errores, posición correcta de bandeja, fin de desinfección. + - display de 2 filas para reporta radiación, tiempo faltante, errores y mensajes operativos. + + +## Decisiones de diseño + + +## Diagrama general y de conexiones + + + + + +## Otros proyectos + +HYJEIA WIRELESS DOSIMETER: +https://hackerfarm.jp/projects/hyjeia-an-open-source-decontamination-system/hyjeia-wireless-dosimeter/ + +NUKEMETER +https://hackerfarm.jp/2020/03/nukemeter/ diff --git a/sw/sw.md b/sw/sw.md new file mode 100644 index 0000000000000000000000000000000000000000..df825062293fe3e223036e8ce64b95a9cb2116ad --- /dev/null +++ b/sw/sw.md @@ -0,0 +1,41 @@ +# Control de cámara de desinfección con UV-C +# Software +El software se estructura en 2 partes, uv_meter_setup_arduino y uv_meter_arduino. + +**uv_meter_setup_arduino** es utilizado durante el montaje y permite probar los diferentes sensores, leds, buzzer y rele de control de alimentación de fuente UVC. Además es utilizado para inicializar los valores en memoria EEPROM que son utilizados por la aplicación principal uv_meter_arduino. + +**uv_meter_arduino** es el sw que controla la operativa en funcionamiento normal del equipo. + +## uv_meter_setup_arduino +Una vez cargado el firmware, se debe abrir una terminal de comunicación serie a 115200bps. + +Comandos + - ayuda : h + - leer valores eeprom : e + - sensor uvc presente : u,presencia + - guardar lectura ADC : p,lectura_raw_adc + - tiempo de encendido : t,minutos + - ciclos de encendido : c,ciclos + - calibracion scale : g,scale + - calibracion offset : o,offset + - lectura medida UVC : m + - led verde : v,estado (1 encendido. 0 apagado) + - led rojo : r,estado (1 encendido. 0 apagado) + - buzzer : b,estado (1 encendido. 0 apagado) + - relay : a,estado (1 cerrado. 0 abierto) + - estado sensores : s + +## uv_meter_arduino +El flujo de funcionamiento puede verse en el documento: flujo_programa.pdf +Luego de un reset, el sw envia por el puerto serie el contenido de la eeprom y la versión de sw. + +## Datos en eeprom +|dato|dirección|tipo dato |Observacion | +|----|---------|----------|------------| +|ADD_UVC_SENSOR_PRESENT | 0 | Entero |1 is sensor present, 0 if not present| +|ADD_ADC_RAW_DEF | 4 | Flotante | default lectura ADC | +|ADD_ADC_RAW | 8 | Flotante | ultima lectura ADC | +|ADD_ON_TIME | 12 | Flotante | minutos fuente UVC encendida | +|ADD_ON_CYCLE | 16 | Flotante | cliclos UVC encendida | +|ADD_CAL_G | 20 | Flotante | escala ADC a potencia | +|ADD_CAL_O | 24 | Flotante | offset ADC a potencia | diff --git a/sw/uv_meter_arduino/flujo_programa_v1.0.pdf b/sw/uv_meter_arduino/flujo_programa.pdf similarity index 100% rename from sw/uv_meter_arduino/flujo_programa_v1.0.pdf rename to sw/uv_meter_arduino/flujo_programa.pdf