Giter Site home page Giter Site logo

aqa's People

Contributors

brolin avatar jero98772 avatar rvega avatar rzapatal avatar son0p avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aqa's Issues

Se está llenando el segmento de memoria .text al momento de hacer el enlazamiento del binario

Al momento de compilar se presenta el siguiente error:

Linking .pioenvs/esp12e/firmware.elf
/home/brolin/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld: .pioenvs/esp12e/firmware.elf section `.text' will not fit in region `iram1_0_seg'
collect2: error: ld returned 1 exit status
*** [.pioenvs/esp12e/firmware.elf] Error 1

Si se comenta el #define NUEVA_TARJETA compila y la estructura de memoria que muestra del firmware es

Linking .pioenvs/esp12e/firmware.elf
Calculating size .pioenvs/esp12e/firmware.elf
Building .pioenvs/esp12e/firmware.bin
text       data     bss     dec     hex filename
372901     7228   32088  412217   64a39 .pioenvs/esp12e/firmware.elf

Se encuentra en internet esta información

Esta situación se presenta con las últimas versiones de platformio, para la versión 1.4.0 no se presentaba.

Errores en la altura que reporta el GPS

@josenobile señala altitudes sospechosas en la trama de datos:

lat,lng,date,hour,altitude,course,speed,humidity,temperature,pm1,pm25,pm10
6.263632,-75.597555,5/11/2017,06:13:41.00,1526.7,338.67,0.0,33.0,28.0,11,16,16
6.263632,-75.597555,5/11/2017,06:13:46.00,1526.7,338.67,0.0,32.0,29.0,10,15,15
6.263632,-75.597555,5/11/2017,06:13:52.00,1526.7,338.67,0.0,32.0,29.0,10,15,15
6.263632,-75.597555,5/11/2017,06:13:57.00,1526.7,338.67,0.0,32.0,29.0,10,15,15
6.2499,-75.593618,5/11/2017,22:59:34.00,150.6,103.42,28.54,38.0,23.0,53,75,82
6.249803,-75.593328,5/11/2017,22:59:39.00,152.7,118.22,25.0,38.0,23.0,53,75,82
6.249647,-75.593075,5/11/2017,22:59:45.00,155.0,135.6,18.82,38.0,23.0,53,75,82
6.249367,-75.592937,5/11/2017,22:59:50.00,157.7,156.37,23.37,38.0,23.0,53,75,82
6.249087,-75.592778,5/11/2017,22:59:56.00,159.6,149.09,20.67,38.0,23.0,53,75,82
6.248748,-75.592612,5/11/2017,23:00:02.00,155.9,149.59,20.52,38.0,23.0,53,75,82
6.248477,-75.592462,5/11/2017,23:00:08.00,157.8,148.75,18.56,38.0,23.0,41,55,61

Hay momentos donde se pasa de por ejemplo 1526 metros a 150 metros en la calle San Juan de Medellín.

Problemas de con versión de librería <ESPAsyncTCP> v1.1.2

Al intentar compilar una nueva clonación del repositorio sale un error en platformio-emacs:

.piolibdeps/ESPAsyncTCP_ID305/src/ESPAsyncTCP.cpp:78:28: error: invalid conversion from 'long int (*)(void*, tcp_pcb*, pbuf*, long int)' to 'tcp_recv_fn {aka signed char (*)(void*, tcp_pcb*, pbuf*, signed char)}' [-fpermissive]
tcp_recv(_pcb, &_s_recv);
^

La estructura dependencias que genera es:

Library Dependency Graph
|-- <DHT sensor library> v1.3.0
|   |-- <Adafruit Unified Sensor> v1.0.2
|-- <FastLED> v3.1.6
|   |-- <EspSoftwareSerial>
|-- <DoubleResetDetector> v0.0.2
|-- <ESPAsyncWebServer> v1.1.0
|   |-- <ESPAsyncTCP> v1.1.2
|   |   |-- <ESP8266WiFi> v1.0
|   |-- <ESP8266WiFi> v1.0
|   |-- <Hash> v1.0
|-- <ESPAsyncWifiManager> v0.12
|   |-- <ESP8266WiFi> v1.0
|   |-- <DNSServer> v1.1.0
|   |   |-- <ESP8266WiFi> v1.0
|   |-- <ESPAsyncWebServer> v1.1.0
|   |   |-- <ESPAsyncTCP> v1.1.2
|   |   |   |-- <ESP8266WiFi> v1.0
|   |   |-- <ESP8266WiFi> v1.0
|   |   |-- <Hash> v1.0
|-- <Hash> v1.0
|-- <ESPAsyncTCP> v1.1.2
|   |-- <ESP8266WiFi> v1.0
|-- <ESP8266HTTPClient> v1.1
|   |-- <ESP8266WiFi> v1.0
|-- <TinyGPSPlus>
|-- <EspSoftwareSerial>

Comparandola con la estructura de una copia del repositorio que si compila bien se puede notar el uso de la versión 1.1.0 de ESPAsyncTCP :

Library Dependency Graph
|-- <DHT sensor library> v1.3.0
|   |-- <Adafruit Unified Sensor> v1.0.2
|-- <FastLED> v3.1.6
|   |-- <EspSoftwareSerial>
|-- <DoubleResetDetector> v0.0.2
|-- <ESPAsyncWebServer> v1.1.0
|   |-- <ESPAsyncTCP> v1.1.0
|   |   |-- <ESP8266WiFi> v1.0
|   |-- <ESP8266WiFi> v1.0
|   |-- <Hash> v1.0
|-- <EspSoftwareSerial>
|-- <Hash> v1.0
|-- <ESPAsyncWifiManager> v0.12
|   |-- <DNSServer> v1.1.0
|   |   |-- <ESP8266WiFi> v1.0
|   |-- <ESPAsyncWebServer> v1.1.0
|   |   |-- <ESPAsyncTCP> v1.1.0
|   |   |   |-- <ESP8266WiFi> v1.0
|   |   |-- <ESP8266WiFi> v1.0
|   |   |-- <Hash> v1.0
|   |-- <ESP8266WiFi> v1.0
|-- <ESPAsyncTCP> v1.1.0
|   |-- <ESP8266WiFi> v1.0
|-- <ESP8266HTTPClient> v1.1
|   |-- <ESP8266WiFi> v1.0
|-- <TinyGPSPlus>

Calibración

Para comparar la medición del sensor laser con el homologado del SIATA tenemos unas mediciones a pocos metros de la estación de la Y (zona del tesoro) :

  • 2017-05-18 a las 10:01, PM2.5 : 40
  • 2017-05-18 a las 14:23, PM2.5 : 22

Alguien puede ayudar a evaluar los datos de esa estación ese día a esas horas y comparar las mediciones para tener una aproximación al margen de error que estamos viviendo.

Hay glitches en el sensor de temperatura DTH11

Una captura de pantalla muestra glitches en las mediciones de temperatura del sensor (línea lila); La medición de humedad, linea naranja, del mismo sensor, también presenta glitches en los mismos momentos.

Glitches DTH11

¿Cómo optimizar el almacenamiento y envío de datos del sensor?

Diseñar estrategia de almacenamiento offline y envío de datos al servidor

La memoria flash de los ESP tiene aproximadamente 3Megas de espacio para almacenamiento.

¿Cada cuánto debo registrar una muestra de datos?
¿Es necesario agregar una SD como otro nivel de almacenamiento, cuánto tiempo puedo guardar en la flash?
¿En qué momento debo enviar los datos, buscar permanentemente redes inalámbricas o descargar datos al celular y luego enviar desde el celular o cuándo llegue a un sitio establecido como HOME enviar datos?

Interfaces (entre entidades)

Podemos empezar a estructurar una forma clara, transparente y consistente para manejar las relaciones (flujos) entre entidades, entendidas como humanos, máquinas, instituciones, etc.

  • Debería contener las maneras de reaccionar ante diferentes verbos (como referencia los verbos que usa el protocolo http, GET, POST, PUT, DELETE etc.)

  • No es un sistema de tiempo real pues no se puede entregar una garantía de tiempo de respuesta.

  • Debería soportar el anonimato y el consenso

Iniciamos una documentación en el documento interfaces.org basado en la estructura de http://r-s-g.org/LCL/

¿Cómo verificar el funcionamiento del GPS?

Uno de los sensores deja una trama así:

federico,8.302080,0.000000,,,1.95,8.30,1.94,-1.00,-1.00,26,34,37
federico,8.302080,0.000000,,,1.95,8.30,1.94,-1.00,-1.00,26,33,34
federico,8.302080,0.000000,,,1.95,8.30,1.94,-1.00,-1.00,25,33,33
federico,8.302080,0.000000,,,1.95,8.30,1.94,-1.00,-1.00,21,30,30 

Se ha probado al aire libre, con cielo abierto que en anteriores mediciones garantizaban la lectura del GPS.

¿Cómo verificar la conexión del GPS?

Diseñar circuitos cad para soldar dispositivos

Diseñar circuitos cad para integrar los siguientes dispositivos:

  • Sensor de partículas (hay varios tipos)
  • Cerebro (esp8266)
  • Sensor detector de gas
  • Sensor de humedad y temperatura
  • GPS l80 de quectel
  • Batería
  • Sensor de cantidad de luz
  • Botones de control externo

¿De qué manera se puede expandir el alcance de la lectura de un sensor?

Hay casos donde el sensor debe quedar cerca a una ventana para que el GPS pueda localizarse, si el transito de personas es por otra zona que no tiene línea de vista con los leds del sensor se requiere un satelite (ESP+LED's) que pueda leer la medición de Internet o del mismo sensor para replicar la medición en sus leds.

Diseñar enclosure para disposición de los sensores

Dadas las carecterísticas del sistema:

¿Cómo debe ser el contenedor? funciona a la intemperie?
¿Cuál materiales podemos usar?
¿Se hace uno genérico para bicicletas, personas a pie, personas en carro?

Reportar valor de sensores en el ESSID de la red

A través del ESSID de un AP creado por software en el firmware del ESP8266 se puede reportar el valor de los sensores principales.

Es crear el modo AP con la siguiente linea de código WiFi.softAP(AP_NameString, password); donde ssid es un String como String AP_NameString = "Calidad Aire PM2.5 " + PM25_value + "ug/m3";

Tener en cuenta que el ESSID tiene un límite de 32 caracteres

Textos de divulgación

El proyecto esta siendo invitado a presentarse ante públicos que no están familiarizados con sensores, código, microcontroladores etc. necesitamos unos textos, ojalá infográficos que ayuden a contextualizar y ser comprendidos por estas personas, quizá un fanzine, o un volante que pueda ser entregado.

Diseñar sistema de alimentación recargable

El sistema que se viene pensando es móvil, esto propone varios retos:

¿Cuál es la autonomía del dispositivo en términos de consumo de energía?
¿Qué tipo de baterías usar?
¿Se puede generar la energía que alimenta el sistema con páneles solares o una dínamo en una bicicleta?

Dificultades para leer archivos grandes

Durante el modo en que el ESP intenta conectarse a una red wifi hay una ventana para bajar el archivo datalog.txt accediendo a http//192.168.4.1/log pero la ventana de tiempo es, al parecer, muy corta y se congela la descarga para archivos grandes. (hasta 200k parece lograr bajar), aquí algunas de los métodos intentados:

*** esperar 1 minuto antes de resetear de nuevo =
***** conectarse a la segunda red creada
***** oprimir 20 segundos el boton reset
***** apagar dispositivo 5 minutos (trata de descargar las redes creadas en el cliente) =
***** Borrar las redes del ESP* en las redes conocidas ( descarga un porcentaje)
***** https://community.platformio.org/t/problem-connecting-esp8266-to-wifi-library-problem/610/6
***** Se considera la potencia, se intenta un cable más corto
***** FAIL Se considera usarlo sin conexion al computador, sino con adaptador a la pared FAIL
CLOSED: [2017-11-10 Fri 07:06]
- State "FAIL" from [2017-11-10 Fri 07:06] \
- no se resuelve
***** FAIL Se intentan listar los archivos con fs_list_files(); // test
CLOSED: [2017-11-10 Fri 07:22]
- State "FAIL" from "INPROGRESS" [2017-11-10 Fri 07:22]
****** entra al loop pero no lista los archivos
****** FAIL Se intenta abrir con SPIFFS.open("datalog.txt", "r");
CLOSED: [2017-11-10 Fri 07:22]

   - State "FAIL"       from              [2017-11-10 Fri 07:22] \\
     no sale nada

***** FAIL Se intenta poner la wifiManager.setConfigPortalTimeout(180); // test
CLOSED: [2017-11-10 Fri 07:56]
- State "FAIL" from [2017-11-10 Fri 07:56] \
no permite descargar
***** INPROGRESS Se intenta poner mas larga la espera del modo wifi
****** FAIL Descarga casi completo el archivo de 2.2 megas
CLOSED: [2017-11-10 Fri 07:36]
- State "FAIL" from [2017-11-10 Fri 07:36] \
queda incompleto el archivo
****** FAIL se intenta comentar la linea ESP.reset() del condicional del blocking loop
CLOSED: [2017-11-13 Mon 17:55]
- State "FAIL" from [2017-11-13 Mon 17:55] \
nada
***** FAIL Se intenta acceder a la FLASH con sudo dd if=/dev/ttyUSB0 of=/tmp/esp.image
CLOSED: [2017-11-10 Fri 07:08]

  - State "FAIL"       from              [2017-11-10 Fri 07:08] \\
    al parecer solo lee la línea en ejecución

***** TODO No escanee redes solo inicie el servidor de archivos
***** DONE Instalo FTPServerSample https://github.com/nailbuster/esp8266FTPServer/tree/master/examples/FTPServerSample
CLOSED: [2017-11-14 Tue 06:58]
****** FAIL Hago lectura corta e intento bajar por FTP
CLOSED: [2017-11-14 Tue 07:11]
- State "FAIL" from [2017-11-14 Tue 07:11] \
no se ve ningún archivo al conectarse por FTP después de hacer mediciones
***** INPROGRESS Dump de la memoria con esptool https://github.com/espressif/esptool#dumping-memory
****** TODO ¿cómo entender las direcciones de memoria descritas aquí? https://github.com/esp8266/esp8266-wiki/wiki/Memory-Map

Cambiar el huso horario de las mediciones

Hay que restarle 5 horas a la medida que esta guardando el sensor.

Documentar como se hace por si alguien en otro huso horario quiere participar en la red de mediciones

No tenemos una forma de diferenciar las emisiones de pm2.5 generadas por el portador del sensor

Carlos (SIATA) señala

Hay un tema para pensar del correo sobre los sensores móviles puesto que hay dos miradas complementarias e interesantes.

  1. Una primera aplicación de los sensores móviles pequeños que queremos impulsar y desarrollar en conjunto con un/loquer es como sensores pasivos a bordo de vehiculos 0 o cerca a 0 emisiones o caminando garantizando que el vehiculo no altera la medición (en este caso no tiene mucho sentido que se incluya uso de motos, taxis u otros vehículos).

  2. Uso continuo (24/7) por personas de manera que se pueda estimar la calidad del ambiente en el que una persona normalmente vive/trabaja/se mueve/etc (en este caso pues si la persona se mueve en una moto tiene sentido que se mida desde ella).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.