GPS-6MV2 Tkinter interface |
Buenas a todos!!!
Aprovechando que ya sabemos como mostrar, de manera serial, los datos que nos proporciona el módulo GPS-6MV2
No es muy practico tener que abrir el monitor Serial del IDE Arduino, o putty, para tener que ver una serie de números que, a priori, no nos dicen nada.
Pero para eso tenemos a Python, la navaja suiza de los lenguajes de programación. Igual que hicimos con el módulo ADXL345 con la interfaz y la clase socket. Solo necesitamos unos cuantos labels para mostrar los datos GPS de una manera que tengan sentido para cualquier usuario.
GPS-6MV2 pyTermTk interface |
Pero volver a mostrar el mismo programa en otra entrada diferente, ya que los cambios son mínimos, no me convencía mucho. He probado a crear un programa pero usando esta vez pyTermTk.
Para cambiar un poco la programación esta vez no he usado ttkDesigner, simplemente he ido creando la interfaz como si estuviera usando Tkinter.
El resultado han sido dos programas prácticamente iguales, pero uno diseñado para mostrar datos en un entorno con ventanas y el otro se puede usar directamente desde cualquier terminal.
Arduino ESP8266 en modo AP:
Otra de las cosas que he cambiado es la manera de conectar el módulo ESP8266 con el portátil. Generalmente programo en un entorno cerrado y la conexión del ESP8266 se realiza con una conexión al router.
¿Pero que pasa si quiero salir de casa? Pues que el sistema deja de funcionar y tendría que programar la IP de cada red a la que se conecte.
Poniendo el microcontrolador en modo AP (Access Point) convertimos el ESP8266 en el punto central de una pequeña red local. De esta manera son los dispositivos como portátiles o smartphones los que se conectan al microcontrolador
Puede ser una red abierta (no recomendado) o una red con contraseña WPA2-PSK y la programación cambia muy poco con respecto al modo cliente, que es que uso habitualmente.
El programa esta dividido en dos archivos:
- ESP8266_GPS6MV2_AP_server.ino Establece el modo AP y la comunicación con el módulo GPS-6MV2.
- neo6mv2.ino donde se construye el String con los datos recibidos por el GPS-6MV2.
Asignamos un nombre y contraseña para la red:
#include "ESP8266WiFi.h"
const char* ssid = "gpsServer";
const char* password = "!2345678";
WiFiServer wifiServer(1314);
void setup(){
WiFi.softAP(ssid, password);
IPAddress IP = WiFi.softAPIP();
Serial.print("Starting GPS-6MV2 in AP mode on IP: ");
Serial.println(IP);
}
Con este código el microcontrolador ya está en modo AP
Es el loop() donde se crearán los nuevos clientes y donde se sitúa la función principal, en este caso las funciones relacionadas con el módulo GPS:
void loop() {
WiFiClient client = wifiServer.available();
if (client) {
Serial.println("Client connected");
while (client.connected()) {
// Lo que haga el programa
}
client.stop();
Serial.println("Client disconnected");
}
}
En este punto ya solo tenemos que añadir la parte de código que ya hemos visto en el artículo Modulo GPS 6MV2 Serial ESP8266 NodeMCU.
Si ya has descargado el código y conectado el ESP8266 a una fuente de alimentación tiene que aparecer en el gestor de conexiones de la distribución que estemos usando.
Gestor de conexiones |
Cuando le damos a conectar, nos pedirá la contraseña, !2345678, la introducimos y tenemos la conexión establecida. Empecemos con el programa realizado con Tkinter:
python3 -m main_gps6mv2
Si ya estas conectado a la red "gpsServer", los datos aparecerán al pulsar el botón "Start Conn":
Para el ejemplo desarrollado con la librería pyTermTk tenemos que ejecutar:
python3 -m main_gps_termtk
Igual que con la otra interfaz, si estamos conectados a la red "gpsServer" y pulsamos "Connect":
Puedes descargar los programas estas interfaces para el módulo GPS-6MV2 desde GitHub desde los siguientes enlaces:
Programa para microcontrolador ES8266 comunicación en GitHub
Interfaz de ejemplo con Tkinter de este articulo en GitHub
Interfaz de ejemplo con pyTermTk de este articulo en GitHub
Aquí tienes otros enlaces de este blog relacionados con programas hechos en Python:
Interfaz para el módulo ADXL345
Muestra el estado del sistema Raspberry Pi
Espero que os guste el contenido, Saludos!!
No hay comentarios :
Publicar un comentario