2019/07/29

Germinómetro con sAPI del firmware v3

Necesitaba medir humedad y temperatura para un trabajo práctico escolar y recordé que puedo hacerme un sensor, qué loco, ¿no?




Busqué la edu-ciaa-nxp, el dht-11 y el poncho educativo por el display lcd, me bajé el Firmware V3 que Eric muy recientemente ha publicado y adelante:

git clone https://github.com/ciaa/firmware_v3.git

Temperatura y humedad



Ando medio raro, leí las instrucciones ANTES de fallar.

Tambien un poco vago, llamé

make board_select board_program


Eligiendo la placa y el path, examples/c/sapi/dht11_temp_humidity, para que me cree board.mk

Hice el export para que encuentre el compilador y lo de siempre...


export PATH=$PATH:....

make

make download

miniterm.py /dev/ttyUSB0 115200

Y anda.


Display


Parecido, la ruta es examples/c/sapi/lcd/gpio y no hace falta redefinir la placa y no sólo anda, sino que ya dice "Temp y Hum", parece que la estación meteorológica es el nuevo blinky.

Integración


Tomé el medidor, aunque pudo haber sido el del lcd y le transferí lo que necesitaba del lcd, que era la inicialización, el caracter de grados y lcdGoToXY(), lcdSendStringRaw(), etc. Metí las mediciones con un sprintf() en los buffers de entrada de lcdSendStringRaw() y listo, anda.

Finalmente lo saqué todo a mi repo y en el repo del firmware_v3 puse un symlink al mío, seleccioné el programa y lo habitual:

mkdir projects
cd projects
ln -s ../../../cpantel/Germinometro
cd ..
make select_program
make clean && make && make download

No, no tan fácil, a make select_program no le gustó el symlink:

Error: this script only work with paths inside repository folder.
If you want to use a path outside repository folder please change program.mk manualy.


Y como me había llevado sólo una hora llegar hasta acá, moví el proyecto a la carpeta al lado de los ejemplos y listo.



El sistema completo


Ya me supera un poco poner una tarjeta SD para registrar las mediciones y ponerle una pila, ponerlo en hora, así que le conecté una netbook y por puerto serial, que ya me lo había dado el primer ejemplo, las mando a un txt con un timestamp


miniterm.py /dev/ttyUSB2 115200 \
| while read LINE; do \
  TS=$(date "+%Y-%m-%d %H:%M:%S");\
  echo $TS $LINE; \
done \
| tee --append log.txt

Le pido a miniterm.py o tu programa favorito tal que puedas colgarte de su STDOUT que lea cada linea, le antepongo un timestamp y lo tiro a la pantalla y a un archivo en modo concatenación.

El código en github.

Nota de color


Me confundí al comienzo y me estaba compilando el ejemplo por default, que muestra "LED apagado" en el serial.

Para diagnosticar mis amigos fueron
  • buscar strings en el ejecutable para comprobar que se estuviera grabando
  • git grep con el texto de lo que estaba viendo en el serial
  • borrar .gitignore para ver que está tocando el proceso de compilación, lo recuperás con:

    git checkout .gitignore

No hay comentarios:

Publicar un comentario