Mi pequeño registrador de datos de temperatura sin pretensiones

Equipos de alta tecnología electrónica y de la informática e Internet. Un mejor uso de la electricidad, ayuda con el trabajo y las especificaciones, la selección del equipo. Presentaciones accesorios y planes. Las olas y la contaminación electromagnética.
Avatar de l'utilisateur
Forhorse
experto Econologue
experto Econologue
Publicaciones: 2491
Inscripción: 27/10/09, 08:19
Localización: Perche Ornais
x 364




por Forhorse » 04/04/11, 16:21

kumkat escribió:lo que sería bueno no es vaciar la memoria de las mediciones cuando retira la tarjeta SD, el historial para acceder a los valores por mes, temporadas, años ... minis, maxis, promedios
en este caso es necesario proporcionar una fuente de energía solar que teóricamente permita un uso infinito con el tiempo ;-)


La memoria de medición no se vacía cuando se retira la tarjeta. Estos permanecen siempre que el archivo no se elimine manualmente de la tarjeta.
Sin embargo, no hace falta decir que el sistema no puede grabar si no hay una tarjeta presente.

Entonces, si no, aquí están las últimas mejoras a mi programa. No hice todo lo que quería porque ya he pasado demasiado tiempo en este proyecto y ahora debo pasar a otras cosas (mi regulador de turbina eólica, por ejemplo)

Aquí encontrará un archivo zip que contiene dos archivos:
http://www.stable-boy.net/uploads/LOG18B20.zip
el archivo LOG18B20.hex es el programa compilado que se puede flashear directamente en el PIC
El archivo LOG18B20.bas es el archivo que contiene las fuentes del programa, escrito en BASIC para el compilador Proton +
Es legible con cualquier editor de texto (por ejemplo, el bloc de notas) solo para tener una idea de lo que hace el programa, pero para usarlo realmente necesitará el compilador Proton +, el complemento Library Manager y la biblioteca SD_File_System (todo está disponible en el sitio del editor: http://www.protonbasic.co.uk/)
El compilador Proton + generalmente se vende por alrededor de € 230, por lo que no hace falta decir que no es un software que solo compra para hacer un registrador de temperatura. : Cheesy:
Por otro lado lo recomiendo encarecidamente a todos aquellos que quieran iniciarse "en serio" en la realización de la edición y redacción de programas para PIC y que no tengan ninguna afinidad particular con otro idioma (los que conocen C lo harán recurrirá, por ejemplo, a otros compiladores)

En cuanto a mi datalogger más concretamente, aquí hay algunas explicaciones:
El corazón del ensamblaje es, por lo tanto, un PIC18F258 en el que se lleva a cabo el programa dado anteriormente.
PGD, PGC, GND, VDD y VPP son la interfaz "ICSP" que se utiliza para programar o reprogramar el PIC directamente en el circuito, no es esencial sino más práctico. Para ser adaptado según su programador (yo uso un PicKit2)
Debe estar asociado con un cuarzo o un resonador cerámico a 12Mhz

La pantalla (esencial para poder configurar la hora) es del tipo alfanumérico con 2 líneas de 20 caracteres con el controlador clásico HD44780 o equivalente (KS0066 ...)

El DS18B20 es un sensor de temperatura en un bus de "1 cable". Este tipo de componente se calibra en fábrica y, por lo tanto, no requiere ningún ajuste para proporcionar una temperatura correcta.
El rango de medición va de -55 ° C a + 125 ° C (que es totalmente compatible con mi ensamblaje)

El DS1307 es un reloj de tiempo real (RTC) en el bus I2C que se utiliza para contar la hora y la fecha incluso cuando el ensamblaje no está energizado.
Debe estar asociado a un cuarzo "relojero" de 32.768 kHz y una pila de litio de 3 V (como CR2012).
Este modelo integra una NVRAM que no se usa en este ensamblaje, por lo tanto, se puede reemplazar por un equivalente (M41T00 por ejemplo)

El regulador LM3480 (VR1 en el diagrama) es un regulador de "baja caída" de 3.3V. Transforma los 5V del resto del conjunto en 3.3V esenciales para alimentar la tarjeta SD (suministrarla directamente con 5V la destruiría inmediatamente) Cualquier equivalente es adecuado, no es crítico (propongo el TPS73033 pero hay muchos otros)
R1, R2, R3, R4, R5, R6 y R7 constituyen un "traductor de nivel" entre el PIC en 5V y la tarjeta SD en 3.3V
Hay componentes específicos para esto, pero un puente resistivo también funciona muy bien.
Atención al cableado de la tarjeta SD, lado de conexión visto, conector en la parte superior, el pin más a la izquierda (lado biselado) no es el 1 sino el 9, el pin 1 es solo el segundo desde la izquierda ( un historial de compatibilidad con MMC)
El soporte de la tarjeta SD se puede comprar fácilmente (por ejemplo, referencia 685-0779 en rs-individuales), pero también se puede recuperar en un dispositivo HS (el que uso para mis pruebas proviene de un frente de auto- radio en carretera)

S1 y S2 son dos botones que se utilizan para ajustar la hora y la fecha, o para iniciar / detener la grabación.
El LED indica que la grabación está en progreso y que la tarjeta SD no debe extraerse.

El conjunto funciona con 5V, podemos "reciclar" un cargador de teléfono móvil, por ejemplo, muchos cargadores ahora son estándar "USB" y por lo tanto proporcionan 5V
El consumo es de alrededor de 20 mA, que es relativamente bajo, pero aún demasiado grande para funcionar con una batería durante más de unas pocas decenas de horas.
En modo independiente, se puede considerar una batería pequeña y un panel solar.
Para suministrarlo desde otro voltaje, un simple regulador LM7805 es suficiente.

Con respecto al funcionamiento de la asamblea ahora:
Cuando se enciende la alimentación, la hora se lee en el RTC, si es la primera vez que se enciende o si no había batería de respaldo, un menú para configurar la hora y la fecha s cartel
Si hay una tarjeta SD, se crea un archivo de grabación con el nombre LOGFMMDD.csv (donde MM representa el mes y DD la fecha) y la grabación comienza inmediatamente sin intervención.
De lo contrario, se muestra un mensaje que invita a insertar una tarjeta.
El LED se ilumina; indicando que la tarjeta no debe ser retirada.
En la pantalla, la hora y la fecha actuales se muestran en la línea superior, mientras que en la línea inferior se indica la temperatura y una animación que indica la grabación.

Para finalizar la grabación, quitar la tarjeta o apagar la edición; debes presionar el botón "+" (S1 en el diagrama)
el LED se apaga y en la segunda línea se muestra "archivo cerrado" durante unos segundos.
Puede reanudar la grabación presionando "+" nuevamente
Si retira la tarjeta sin detener la grabación, el archivo puede estar dañado (especialmente el último valor) y por lo tanto ilegible.
No es sistemático pero es un riesgo (los caprichos de TI ...)
Detener la grabación, retirar la tarjeta, leerla con una PC, volver a colocarla y comenzar a grabar de nuevo es posible pero no es compatible.
Esta manipulación corre el riesgo de que el programa se "bloquee" y, si funciona, a veces el programa tardará varios minutos en reanudar la escritura en la tarjeta.
En general, antes de extraer o cambiar una tarjeta de memoria, es preferible apagar el montaje para reiniciar la secuencia de inicialización cada vez que se inserta una tarjeta.

La temperatura se adquiere como máximo cada 750 ms, es decir, más de un segundo, pero el sistema solo tiene en cuenta una medición por segundo.
Luego promedia más de 1 minuto (es decir, 60 mediciones) y lo guarda en la tarjeta con la fecha y la hora en el siguiente formato
"HH: MM: SS; XX, X"
con 1 registro por línea
A medianoche, el archivo se cierra y se guarda, y se crea uno nuevo automáticamente con la nueva fecha. La grabación continúa automáticamente hasta que la tarjeta está llena.
Por lo tanto, el sistema realiza un máximo de 1440 registros por día, el archivo es de 23Kb por día (es decir, 161Kb por semana, 713Kb por mes y 8.3Mb por año ... por lo tanto, una tarjeta de 1GB puede grabar teóricamente durante 116 años)

El archivo (.csv) puede abrirse directamente en Excel y, con unos pocos clics, puede hacer una curva a partir de los datos directamente utilizables.

Para configurar la hora, simplemente presione el botón "configurar". Durante todo el procedimiento de configuración del tiempo, no se realiza la grabación de datos (incluso si el LED permanece encendido)
El cursor parpadea sobre el valor que se está modificando. Comenzamos con el año, luego el mes, luego la fecha, luego la hora para terminar con los minutos. El botón "+" se utiliza para aumentar el valor, validar y pasar al siguiente con "Establecer"
Los minutos deben configurarse un minuto más que el reloj de referencia. Una vez que los minutos han sido validados por Set, el display indica "'Set' para validar" esperamos que el reloj de referencia esté en 59 segundos y validamos, entonces los dos relojes están perfectamente sincronizados.

En el caso de una falla de energía, la grabación se detiene naturalmente, pero se reanuda automáticamente cuando vuelve el voltaje.
Puede ser útil, por ejemplo, para controlar un congelador. Podemos, por ejemplo, visualizar la temperatura en el retorno de la corriente y, por lo tanto, saber si se ha descongelado o no, y saber al mismo tiempo la duración del corte al marcar la diferencia entre el momento de la última grabación y el tiempo durante el retorno. actual.

La memoria PIC está lejos de estar saturada, el 32% de la RAM y el 66% de la memoria del programa permanecen disponibles, lo que deja mucho espacio para mejorar esta grabadora: gestión de varias sondas u otros tipos de sensores, Cálculo más complejo de mediciones, etc.

Por mi parte, detengo allí el desarrollo de este dispositivo (por el momento) pero posiblemente podría agregar funciones solicitadas para alguien que hubiera llevado a cabo este ensamblaje.
También puedo, a pedido, compilar el archivo para un PIC de otra referencia que sería compatible con este proyecto (el 18F258 no es una obligación)

Bueno, quizás pronto para otros hacks

: Cheesy:
0 x

 


  • temas similares
    Respuestas
    vistas
    último mensaje

Volver a "La electricidad, la electrónica y la alta tecnología, Internet, bricolaje, iluminación, materiales, y el nuevo"

¿Quién está en línea?

Usuarios navegando por este forum : No hay usuarios registrados e invitados 231