Diferencia entre revisiones de «Proyectos:Archivo/Estacion de Muestreo de Sensores EMMA»

De Hacklab La Paz - r00thouse
 
(No se muestran 7 ediciones intermedias de otro usuario)
Línea 15: Línea 15:
= Diagrama esquemático =
= Diagrama esquemático =


[[File:EMMA_schematic.png|none|EMMA_schematic.png]]
== atmega32 DIP ==


'''Obs.-''' Sólo para probar el módulo de targeta SD.
[[File:EMMA_m32_dip.png]]
 
'''Obs.-''' Los componentes fijos están definidos, (RTC, adpatador de memoria SD, conexión serial). Esta versión plantea que se puedan conectar varios sensores y deja pines libres para ser usados por otros dispositivos.
Es necesario escribir drivers para nuevos dispositivos usando los pines libres mostrados arriba como terminales libres.


= Hardware usado =
= Hardware usado =
[[Archivo:EMMA sch.png]]


== Microcontroladores ==
== Microcontroladores ==
Línea 27: Línea 28:
=== ATMEGA32  ===
=== ATMEGA32  ===


[http://www.atmel.com/Images/2503S.pdf "Atmega32
http://www.atmel.com/Images/2503S.pdf
datasheet"] Microcontrolador 8 bits 32 KiB flash.
 
Microcontrolador 8 bits 32 KiB flash.


== RTC ==
== RTC ==
Línea 34: Línea 36:
=== DS3231 ===
=== DS3231 ===


[http://datasheets.maximintegrated.com/en/ds/DS3231.pdf "Datasheet"]
http://datasheets.maximintegrated.com/en/ds/DS3231.pdf


Se usa este reloj en tiempo real para tener registro del tiempo.
Se usa este reloj en tiempo real para tener registro del tiempo.


== Sensores ==
== Sensores ==
=== dht11 ===
{|
|
http://www.robotshop.com/media/files/pdf/dht11.pdf (Sensor de temperatura y humedad realtiva)
|
[[Archivo:Dht11.jpeg]]
|}
=== si7021 (falta probar driver) ===
https://www.silabs.com/Support%20Documents%2fTechnicalDocs%2fSi7021-A20.pdf (Sensor de temperatura y humedad relativa, de alta precisión)


== Módulos de memoria ==
== Módulos de memoria ==
Línea 47: Línea 62:


== Módulos de comunicación ==
== Módulos de comunicación ==
No se ha utilizado ningún módulo, la comunicación y configuración de la placa es enteramente por interfaz serial, sin embargo algunas opciones de comunicación con la placa pueden ser:


Opciones:
Opciones:
Línea 97: Línea 114:
para borrar todo archivo binario
para borrar todo archivo binario
   make clean
   make clean
Asi cada que se modifique el programa al hace ''make all'' este se  
Asi cada que se modifique el programa al hacer ''make all'' este se  
volverá a construir y los binarios (ejecutables para el microcontrolador) a actualizar.
volverá a construir y los binarios (ejecutables para el microcontrolador) a actualizar.


Línea 128: Línea 145:


= Diseño del PCB =
= Diseño del PCB =
Una versión inicial del diseño para PCB.
Para imprimir en proporciones reales se recomienda abrir con gimp y enviar a imprimir. La resolución de la imagen es de 400 dpi (el tamaño original de la placa es 25% el tamaño de la imagen)
[[file:EMAE m32 dip bot.png|frameless|720px]]
----
lado de los componentes y puentes, listo para impimirse (volcado horizontalmente)
[[file:EMAE m32 dip top.png|frameless|720px]]
El diseño pcb y el esquemático está en https://notabug.org/strysg/EMMA/src/master/Docu/circuit/EMMA_m32_dip/EMMA_m32_dip.pcb y puede ser editado con [http://www.geda-project.org/ geda].


= TODO list =
= TODO list =
* Agregar sensores al sistema
* Implementar la interfaz para configurar el logeo via puerto serial
* Analizar agregación de módulo ethernet.
* Realizar pruebas


= Observaciones =
= Observaciones =


= Referencias =
* Crear carpeta independiente para sensores en src/ para tener el códgo más ordenado, para eso hay que modificar el Makefile para hacer la construcción recursivamente o usar Makefiles independientes para cada nueva carpeta de código fuente

Revisión actual - 16:32 21 ene 2024

Una estación de muestreo automática para registrar fenómenos físicos. El objetivo es construir y diseñar un dispositivo fiable, de bajo costo, fácil manejo e instalación y escalable para diversos sensores e interfaces de comunicación.

Diagrama de bloques

EMMA bloques.png

Diagrama de bloques inicial

Descripción del diagrama

Diagrama esquemático

atmega32 DIP

EMMA m32 dip.png

Obs.- Los componentes fijos están definidos, (RTC, adpatador de memoria SD, conexión serial). Esta versión plantea que se puedan conectar varios sensores y deja pines libres para ser usados por otros dispositivos. Es necesario escribir drivers para nuevos dispositivos usando los pines libres mostrados arriba como terminales libres.

Hardware usado

Microcontroladores

ATMEGA32

http://www.atmel.com/Images/2503S.pdf

Microcontrolador 8 bits 32 KiB flash.

RTC

DS3231

http://datasheets.maximintegrated.com/en/ds/DS3231.pdf

Se usa este reloj en tiempo real para tener registro del tiempo.

Sensores

dht11

http://www.robotshop.com/media/files/pdf/dht11.pdf (Sensor de temperatura y humedad realtiva)

Dht11.jpeg

si7021 (falta probar driver)

https://www.silabs.com/Support%20Documents%2fTechnicalDocs%2fSi7021-A20.pdf (Sensor de temperatura y humedad relativa, de alta precisión)

Módulos de memoria

  • Memoria SD controlada por SPI, actualmente se usa uno como este:

http://www.ebay.com/itm/2PCS-SD-Card-Module-Slot-Socket-Reader-For-Arduino-ARM-MCU-Read-And-Write-/170895501953?pt=LH_DefaultDomain_0&hash=item27ca2a6a81

Módulos de comunicación

No se ha utilizado ningún módulo, la comunicación y configuración de la placa es enteramente por interfaz serial, sin embargo algunas opciones de comunicación con la placa pueden ser:

Opciones:

  • Transmisor y receptor 433Mhz (barato pero propenso a errores de

comunicación) link.- http://rurandom.org/justintime/index.php?title=Cheapest_ever_433_Mhz_transceiver_for_PCs

  • Transmisor y receptor NRF24L01 2.4Ghz (controlado por SPI, fiable y

de buen alcance) link.- http://www.geeetech.com/wiki/index.php/2.4Ghz_nRF24L01_RF_Transceiver_Module

  • HopeRF12/69 Creo que la mejor relacion calidad-precio. ~4 USD, dicen que hasta 500m con ~30Kb/s http://www.hoperf.com/

Circuitos analógicos usados

Desarrollo del software

Ya puedes clonar el desarrollo de este proyecto en

git@notabug.org:strysg/emma.git

El link:

https://notabug.org/strysg/EMMA

Qué se necesita

  • El compilador para AVR llamado avr-toolchain y se compone de:
    • avr-libc
    • binutils-avr
    • avrdude
    • avr-gcc
  • La herramienta gnumake

Algo más de info sobre estas herremientas http://chwnku.tuxfamily.org/cont/HerrSoft.html

Construir el programa

Una vez descargado el proyecto hay que hacer:

En el directorio del principal del proyecto:

 cd src/Build

como se tiene instalada la herramienta gnumake basta con:

 make all

para borrar todo archivo binario

 make clean

Asi cada que se modifique el programa al hacer make all este se volverá a construir y los binarios (ejecutables para el microcontrolador) a actualizar.

Grabar el programa en el microcontrolador

Con AVRDUDE

Guia rapida http://chwnku.tuxfamily.org/cont/HerrSoft.html#AVRDUDESS

Adicionalmente se puede grabar el programa una vez se tenga instalado avrdude y un grabador para avr como http://chwnku.tuxfamily.org/cont/HerrHard.html#GrabUSBASP


  1. cd hasta el directorio src/Build del directorio principal donde esta el proyecto
  2. ejecutar el comando:
sudo avrdude -c usbasp -p m32 -u -U flash:w:main.hex

Usando make

El Makefile en la carpeta src/Build contiene una regla para programar le atmega32 usando el grabador USBasp

  1. cd hasta el directorio src/Build del directorio principal donde esta el proyecto
  2. ejecutar el comando:
sudo make program_usbasp

Diseño del PCB

Una versión inicial del diseño para PCB.

Para imprimir en proporciones reales se recomienda abrir con gimp y enviar a imprimir. La resolución de la imagen es de 400 dpi (el tamaño original de la placa es 25% el tamaño de la imagen)

EMAE m32 dip bot.png


lado de los componentes y puentes, listo para impimirse (volcado horizontalmente) EMAE m32 dip top.png

El diseño pcb y el esquemático está en https://notabug.org/strysg/EMMA/src/master/Docu/circuit/EMMA_m32_dip/EMMA_m32_dip.pcb y puede ser editado con geda.

TODO list

  • Agregar sensores al sistema
  • Implementar la interfaz para configurar el logeo via puerto serial
  • Analizar agregación de módulo ethernet.
  • Realizar pruebas

Observaciones

  • Crear carpeta independiente para sensores en src/ para tener el códgo más ordenado, para eso hay que modificar el Makefile para hacer la construcción recursivamente o usar Makefiles independientes para cada nueva carpeta de código fuente