Tabla de contenido:
- Paso 1: descripción general del diseño
- Paso 2: firmware
- Paso 3: prueba del dispositivo
- Paso 4: ¿Qué más puede hacer?
Video: Termómetro USB para interiores / exteriores (o 'Mi primer dispositivo USB'): 4 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
Este es un diseño simple que muestra el periférico USB en los PIC 18F. Hay un montón de ejemplos para los chips 18F4550 de 40 pines en línea, este diseño muestra la versión más pequeña de 18F2550 de 28 pines. La PCB utiliza piezas de montaje en superficie, pero todos los componentes están disponibles en versiones de orificio pasante. Utilizo piezas de montaje en superficie porque es más rápido hacer la placa sin taladrar agujeros. El resultado final es un pequeño periférico USB que mide la temperatura interior / exterior. Los datos están disponibles para la PC a través de un puerto serie virtual. Los sensores de temperatura se utilizan en el ejemplo, pero se pueden agregar otros sensores analógicos. PS Vea un gráfico en vivo de los datos de mi registrador aquí: https://www.syndicit.com/stream/ian/nieuwemarkt/indoor_temperature/? Format = grafico
Paso 1: descripción general del diseño
Componentes PIC requeridos
Este periférico USB se basa en el PIC 18F2550 de 28 pines. Este chip tiene todo lo necesario para una interfaz USB de velocidad completa. Un condensador de 0,1 uf entre la alimentación y la tierra desacopla el PIC de la fuente de alimentación. Un cristal de 20MHz (usado para generar un reloj interno de 48MHz) y dos capacitores de 27pf. Una resistencia de 10K desde la alimentación hasta el pin MCLR. Agregué un diodo equivalente 1n4148 entre la resistencia y la potencia para que los 13 + voltios colocados en MCLR durante la programación no dañen otros componentes en la placa de circuito. Se utiliza un encabezado ICSP (5 pines) para programar y depurar el dispositivo. Material USB necesario Un conector hembra USB tipo "B". Se requieren 220nf-440nf de capacitancia para el regulador de voltaje USB interno. Utilizo dos condensadores de 0,1 uf (los mismos que se utilizan para el desacoplamiento) sin ningún problema. Se utiliza un LED con una resistencia limitadora de corriente de 330 ohmios para mostrar el estado de la conexión USB. Material del sensor requerido Usé el sensor de temperatura del microchip TC1047A como sensor de temperatura interior. Está físicamente soldado a la placa, lo que hace que se caliente unos pocos grados más que la temperatura ambiente. Se utiliza un cabezal para conectar una sonda de temperatura exterior (versión TO-92 de TC1047a). Un condensador adicional de 0,1 uf ayuda a desacoplar un cable largo del resto de la placa. Los niveles de voltaje del USB no son lo suficientemente consistentes para medir y calcular la temperatura con precisión a partir de los sensores analógicos. Se utiliza una referencia de voltaje externa (MCP1525, 2,5 voltios). La referencia de voltaje requiere un condensador en la salida de 1 uf a 10 uf. Sin este condensador, la referencia de voltaje no funcionará.
Paso 2: firmware
El firmware utiliza la clase CDC USB para emular un puerto serie. El dispositivo se mostrará como un puerto de comunicaciones virtual en una PC. El firmware se divide en tres secciones: 1. El controlador USB se encarga de enumerar el dispositivo en una PC y emular un puerto COM. 2. Una rutina de servicio lee alternativamente los valores de temperatura y los convierte a un formato legible. Hacer ambas operaciones a la vez provocó que el dispositivo USB perdiera la conexión con la PC (acaparamiento de tiempo). La conversión de los valores de punto flotante a una cadena en el ciclo de servicio después de la conversión resolvió el problema de conectividad. * 3. Finalmente, una rutina principal recibe los bytes enviados desde la PC y devuelve las medidas solicitadas. Múltiples medidas están separadas por una coma, las líneas terminan con un carácter nulo (hexadecimal 0x00) El firmware de demostración acepta los siguientes comandos: Valor hexadecimal Retorna 0x00 Temperatura interior (sensor integrado) 0x01 Temperatura exterior (encabezado externo) 0x02 Ambas temperaturas (coma separados) La temperatura se calcula en base a la referencia de 2.5 voltios y la desviación y pendiente del Microchip TC1047A. Otros sensores de temperatura pueden tener características diferentes. La hoja de datos TC1047A está disponible aquí: https://ww1.microchip.com/downloads/en/DeviceDoc/21498c.pdf El firmware está escrito en MPLAB con el compilador de demostración PIC C18. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011 Microchip proporciona el firmware USB real. El entorno original está disponible aquí: https://www.microchip.com/stellent/idcplg? IdcService = SS_GET_PAGE & nodeId = 1824 & appnote = en021631 Para editar el firmware: extraiga la estructura de directorio completa de la fuente a su directorio raíz (c: / MCHPFSUSB). A continuación, puede cargar el archivo del espacio de trabajo en MPLAB. * La rutina de flotar a cadena es un acaparador de recursos. Para solucionar el problema de conectividad, se llama a la rutina de servicio USB en varios puntos de la rutina float2string. Esto se solucionaría mejor reparando el periférico USB en caso de interrupción. Usé el truco para que el firmware se mantuviera lo más cerca posible de la versión de referencia.
Paso 3: prueba del dispositivo
Las instrucciones son para Windows, pero el dispositivo se puede conectar a cualquier dispositivo que tenga controladores de emulación de puerto serie CDC.
Programe el dispositivo con el firmware. Todos los bits de configuración deben establecerse correctamente en el firmware. Conecte el dispositivo a un puerto USB. Windows lo detectará y le pedirá que elija un controlador. ASEGÚRESE DE HACER CLIC EN "BUSCAR PARA CONDUCTOR PERSONALIZADO". Navegue hasta la ubicación del archivo.inf incluido con el archivo del proyecto (driver-win2k_winxp). Windows usará este archivo para instalar el dispositivo. * Una nota sobre el controlador CDC: el controlador de emulación de puerto serie CDC se incluye con Windows. El archivo.inf (proporcionado por Microchip) simplemente le dice a Windows que conecte estos controladores al dispositivo. Para saber qué puerto COM se asignó al dispositivo, haga lo siguiente: Vaya al panel de control (inicio-> configuración-> panel de control) Haga doble clic en "sistema" Haga clic en la pestaña "hardware". Haga clic en "administrador de dispositivos" Haga clic en "+" junto a los puertos. Se muestra una lista de puertos COM en el sistema. He visto que el dispositivo se muestra como COM 3 y 4, pero variará según el sistema. Si no es obvio qué puerto es nuevo, intente esto: Desenchufe el dispositivo del puerto USB. Uno de los puertos desaparecerá. Este es el número de puerto COM del dispositivo. Vuelva a conectar el dispositivo, el puerto volverá a aparecer. La pequeña aplicación VB (fuente incluida) se puede utilizar para probar el dispositivo. Ingrese el comando para enviar, haga clic en 'Iniciar'. La respuesta se mostrará en la ventana.
Paso 4: ¿Qué más puede hacer?
Esta placa de demostración es un buen punto de partida para una pequeña estación meteorológica doméstica: agregue un sensor de humedad HIH3160 o reemplace el sensor de temperatura analógico con el sensor de temperatura y humedad en serie de alta precisión Sensiron HT74. medir la presión barométrica. ¿Quiere distribuir estos datos a la web? ¿Incluirlo en su propio sitio web, visualizarlo en Google Earth u obtener actualizaciones en su lengüeta RSS? Vea este instructivo sobre la integración de este dispositivo con el backend web syndicIT.com:
Recomendado:
INCREÍBLE lámpara LED para exteriores con energía solar para bricolaje: 9 pasos
INCREÍBLE lámpara LED para exteriores con energía solar DIY: ¡Hola! ¡En este Instructable puedes aprender cómo construir una lámpara LED de energía solar barata y fácil! ¡Carga una batería durante el día y enciende un LED COB muy brillante por la noche! ¡Solo sigue los pasos! ¡Puedes hacerlo! ¡Es realmente fácil y divertido! Este des
Sistema de jardín automatizado construido en Raspberry Pi para exteriores o interiores - MudPi: 16 pasos (con imágenes)
Sistema de jardín automatizado construido en Raspberry Pi para exteriores o interiores - MudPi: ¿Te gusta la jardinería pero no puedes encontrar el tiempo para mantenerla? ¿Quizás tiene algunas plantas de interior que parecen un poco sedientas o buscan una manera de automatizar su cultivo hidropónico? En este proyecto resolveremos esos problemas y aprenderemos los conceptos básicos de
Iluminación de bricolaje para exteriores: 7 pasos (con imágenes)
Iluminación de jardín de bricolaje para exteriores: He tenido problemas con las empresas de iluminación de jardines desde que compré mi primera casa en 2003. Los transformadores son de baja potencia con interfaces de botones no intuitivos y pantallas baratas donde la potencia parece ser más valiosa que el platino. Naciones Unidas
Accesorio para exteriores resistente a la intemperie para Lifx o Hue: 5 pasos (con imágenes)
Accesorio para exteriores resistente a la intemperie para Lifx o Hue: Quería iluminar mi jardín con mis bombillas Lifx Color 1000, para disfrutar de la noche y para el rave ocasional en el patio trasero. Dada la vulnerabilidad de las bombillas a la humedad y el calor, no pude encontrar ningún accesorio en el mercado que protegiera adecuadamente t
Puerta para mascotas para exteriores de IoT: 6 pasos (con imágenes)
Puerta para mascotas IoT Outdoor: Me inspiré en este instructable para crear una puerta automática para gallinero. No solo quería que la puerta del gallinero tuviera un temporizador, sino que también quería conectar la puerta a Internet para poder controlarla con mi teléfono o mi computadora. Este d