Diferencia entre revisiones de «Proyectos:Archivo/Estacion de Muestreo de Sensores EMMA»
m (Looper trasladó la página EMMA a Proyectos:Archivo/Estacion de Muestreo de Sensores EMMA) |
|||
(No se muestran 15 ediciones intermedias de 2 usuarios) | |||
Línea 13: | Línea 13: | ||
== Descripción del diagrama == | == Descripción del diagrama == | ||
= | = Diagrama esquemático = | ||
== | == atmega32 DIP == | ||
[[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 = | ||
== 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 == | == 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 == | |||
* 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 == | == 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 85: | Línea 75: | ||
http://www.geeetech.com/wiki/index.php/2.4Ghz_nRF24L01_RF_Transceiver_Module | 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 == | == Circuitos analógicos usados == | ||
Línea 91: | Línea 81: | ||
= Desarrollo del software = | = Desarrollo del software = | ||
Ya puedes clonar el desarrollo de este proyecto en | |||
<pre> | <pre> | ||
git@ | git@notabug.org:strysg/emma.git | ||
</pre> | </pre> | ||
El link: | |||
https://notabug.org/strysg/EMMA | |||
== Qué se necesita == | == Qué se necesita == | ||
Línea 110: | Línea 101: | ||
* La herramienta '''gnumake''' | * La herramienta '''gnumake''' | ||
Algo más de info sobre estas herremientas http://chwnku.tuxfamily.org/cont/HerrSoft.html | Algo más de info sobre estas herremientas | ||
http://chwnku.tuxfamily.org/cont/HerrSoft.html | |||
== Construir el programa == | == Construir el programa == | ||
Línea 116: | Línea 108: | ||
Una vez descargado el proyecto hay que hacer: | Una vez descargado el proyecto hay que hacer: | ||
En el directorio del principal del proyecto: | |||
cd src/Build | cd src/Build | ||
como se tiene instalada la herramienta gnumake basta con: | |||
make all | make all | ||
para borrar todo archivo binario | |||
make clean | 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 | 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 | |||
# cd hasta el directorio '''src/Build''' del directorio principal donde esta el proyecto | |||
# ejecutar el comando: | |||
<source lang="bash"> | <source lang="bash"> | ||
sudo avrdude -c usbasp -p | sudo avrdude -c usbasp -p m32 -u -U flash:w:main.hex | ||
</source> | </source> | ||
=== Usando make === | |||
El Makefile en la carpeta src/Build contiene una regla para programar le atmega32 usando el grabador USBasp | |||
# cd hasta el directorio '''src/Build''' del directorio principal donde esta el proyecto | |||
# ejecutar el comando: | |||
<source lang="bash"> | <source lang="bash"> | ||
sudo | sudo make program_usbasp | ||
</source> | </source> | ||
= 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 = | ||
* 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
Diagrama de bloques inicial
Descripción del diagrama
Diagrama esquemático
atmega32 DIP
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) |
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:
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
- cd hasta el directorio src/Build del directorio principal donde esta el proyecto
- 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
- cd hasta el directorio src/Build del directorio principal donde esta el proyecto
- 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)
lado de los componentes y puentes, listo para impimirse (volcado horizontalmente)
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