En alguna ocasión, al instalar algún programa en nuestro Ubuntu, puede ser extrapolado a cualquier sistema Linux, Al descargar las dependencias de librerías que necesita puede haber una confusión cuando nuestro sistema es de 64 bits, y la aplicación esta programada para la versión de 32 bits.
Problema con librerías en Google Earth
Este es el caso que nos podemos encontrar al instalar el Google Earth. Cuando descargamos el programa de la pagina, esta nos ofrece el fichero de instalación que se ajusta a nuestro sistema operativo automáticamente. Pero el problema esta que la versión que se descarga para Debian, y sus variantes, como es el caso de Ubuntu. Este fichero de instalación es de 32 bits.
Al instalar, se descargan las dependencias que se ajustan mejor para nuestra versión de sistema operativo, en este caso las librerías descargadas son las de la versión de 64 bits.
Al ejecutar el Google Earth, nos muestra un error indicándonos que no tenemos la librería «libgthread-2.0.so.0».
~$ google-earth
./googleearth-bin: error while loading shared libraries: libgthread-2.0.so.0: cannot open shared object file: No such file or directory
Nos muestra que si tenemos la librería instalada, en la mejor versión «libglib2.0-0:amd64» para nuestro sistema operativo.
Solución al problema con las librerias
Para forzar a que se instale la versión de 32 bits, tendremos que ejecutar el siguiente comando.
sudo apt-get install libglib2.0-0:i386
Lo que hacemos es instalar la librería «libglib2.0-0», donde esta la librería que necesitamos, con el anterior comando se nos muestra junto con la versión en la que esta instalada, ya se de 64 bits (amd64), o de 32 bits (i386). Seguido de la versión que queremos instalar, en este caso la de 32 bits (:i386).
~$ sudo apt-get install libglib2.0-0:i386
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes NUEVOS:
libglib2.0-0:i386
0 actualizados, 1 nuevos se instalarán, 0 para eliminar y 0 no actualizados.
Se necesita descargar 0 B/1.184 kB de archivos.
Se utilizarán 5.479 kB de espacio de disco adicional después de esta operación.
Seleccionando el paquete libglib2.0-0:i386 previamente no seleccionado.
(Leyendo la base de datos ... 263708 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar .../libglib2.0-0_2.48.1-1~ubuntu16.04.1_i386.deb ...
Desempaquetando libglib2.0-0:i386 (2.48.1-1~ubuntu16.04.1) ...
Procesando disparadores para libc-bin (2.23-0ubuntu3) ...
Procesando disparadores para libglib2.0-0:amd64 (2.48.1-1~ubuntu16.04.1) ...
Configurando libglib2.0-0:i386 (2.48.1-1~ubuntu16.04.1) ...
Procesando disparadores para libc-bin (2.23-0ubuntu3) ...
Si no se ha producido ningún fallo, ya tendremos las librerías instaladas, tanto en la versión de 64 (amd64) como en la de 32 (i386).
Podemos verificarlo ejecutando de nuevo el comando «dpkg -S libgthread-2.0.so.0». Esta vez nos tiene que mostrar lo siguiente.
El Internet de la cosas (IoT) a puesto de moda el conectar cualquier cosa a internet. Y nuestros proyectos con arduino no iban a ser menos.
En el mercado, hay multitud de shield que nos dan la posibilidad de añadir conexión wifi a nuestro arduino, pero estas placas tienen un precio demasiado alto, la mayoría de ellos ha un precio elevado. Estos precios de los sistemas wifi contrastan con el precio habitual que suelen tener los demás accesorios para arduino.
Modulo wifi ESP8266
Pero además de los shield tenemos otros método de poder añadir conectividad wifi a nuestro proyectos de arduino. Este es el modulo Wifi ESP8266 nos ofrece conexión wifi de una manera sencilla y barata.
Ademas de la conexión wifi, este modulo permite una configuración muy fácil mediante el uso de comandos AT, dispone a su vez de un pequeño servidor web, que nos facilitara la conexión a él mediante el uso de un simple navegador.
Conectar el modulo wifi ESP8266 con arduino
La conexión del modulo ESP8266 con arduino es muy simple, solo tendremos que conectar los pines RX y TX del modulo, a los pines RC y TX de muestro arduino, si lo preferimos, como es mi caso, los podemos conectar a cualquier otros pines y utilizar la librería de emulación de comunicaciones serie.
Luego tendremos que conectar el pin marcado como RST a la alimentación de 3.3v de muestro arduino. La alimentación del modulo la tendremos que realizar utilizando un fuente de 3.3 v externa.
La salida de voltaje del arduino solo ofrece una alimentación de 50 mAmp, el modulo wifi ESP8266, en el arranque consume un poco más. Para pruebas podemos conectarlo a la salida de 3.3 v del arduino, pero si tienes la posibilidad de contar con una fuente externa, es mejor que lo conectes a ella. Solo queda conectar el pin GND a la fuente externa o a uno de los pines GND del arduino.
Alimentación a través de Arduino del modulo ESP8266
Circuito con alimentación exterior del modulo wifi.
Alimentación del modulo ESP8266 mediante fuente externa
Código para leer los datos desde el puesto serie del módulo ESP8266 y escribirlos al puerto serie de la consola, y viceversa.
#include <SoftwareSerial.h>
// Creamos un puerto serie virtual para la conexión con el modulo Wifi
SoftwareSerial Wifi(3, 2); // Pin RX, Pin TX
void setup()
{
// Creamos la conexion serie para el control desde la consola
Serial.begin(9600);
// Creamos la conexión con el modulo Wifi
Wifi.begin(115200);
}
void loop()
{
// Si hay datos desde el modulo Wifi
if (Wifi.available())
{
// Leemos un caracter
char c = BT1.read() ;
// Y lo escribimos en el puerto de la consola
Serial.print(c);
}
// Si Hay datos disponibles desde la consola
if (Serial.available())
{
// Leemos un caracter
char c = Serial.read();
// Y lo escribimos en el modulo Wifi
Wifi.print(c);
}
}
Es simple código nos va ha permitir comprobar el estado de nuestro modulo ESP8266 y realizar las configuraciones básicas.
Comprobar el funcionamiento del modulo Wifi ESP8266
Al arrancar el modulo, este nos tiene que devolver un mensaje de «Ready»
[Vendedor:www.ai-thinker.com Version:0.9.2.4]
ready
Para verificar que tenemos conexión con el modulo, desde la ventana de consola, escribimos AT, si todo es correcto y tenemos conexión con el modulo. Este nos devolverá un «OK»
[Vendedor:www.ai-thinker.com Version:0.9.2.4]
ready AT OK
Este modulo permite 3 modos de funcionamiento:
Modo 1: Modo estandar, en este modo de funcionamiento, el módulo se comporta como si fuera un router. Modo servidor.
Modo 2: Modo dispositivo / AP, en cambio en este modo, es módulo se comporta como si fuera un dispositivo que se va ha conectar con un router. Modo cliente.
Modo 3: Esta forma de funcionamiento, es la mezcla de los dos anteriores. Funciona lo mismo de cliente como de servidor.
Para ver en que modo esta funcionando nuestro ESP8266, le enviamos el siguiente comando AT.
AT+CWMODE?
+CWMODE:3
OK
En este caso, nos indica que esta funcionando en el modo 3. Si no sabemos muy bien como queremos que funcione nuestro modulo ESP8266, lo podemos dejar en este modo para asegurarnos su correcto funcionamiento.
Para cambiar el modo de funcionamiento, le tendremos que enviar el siguiente comando AT.
AT+CWMODE=3
no change
En este caso, como ya estaba en este modo de funcionamiento, no indica que no se ja producido ninguna cambio. Si el modo de funcionamiento no fuese el ya establecido, no devolvería un «OK».
Conexión con la red wifi con el ESP8266
Mediante otro comando AT, podemos obtener la lista de conexiones wifi al alcance del modulo.
La información que nos aparece es, posición en la lista, el SSID de la conexión wifi, potencia de la señal, y la MAC del router.
Para conectar el modulo ESP8266, a nuestra red wifi, utilizaremos otro comando AT. En este caso, el comando AT+CWJAP=»SSID_nuestra_conexión», «contraseña»
AT+CWJAP="SSID_nuestra_conexión", "contraseña"
OK
Si la conexión se ha realizado con existo, nos devolverá como siempre un «OK».
Obtener información de nuestra conexión con ESP8266
Al establecer conexión, con nuestro router o el servidor de DHCP que tengamos instalado en nuestra, este le tiene que asignar una dirección IP a nuestro modulo. Para conocer la ip asignado a nuestro modulo wifi utilizaremos el siguiente comando AT.
AT*CIFSR
192.168.1.1
192.168.1.201
OK
Este comando AT nos devolverá, en una primera linea, la dirección ip del router, y en una segunda, la dirección ip que se le ha asignado al modulo.
Activar servidor TCP en el modulo wifi ESP8266
Con esto, ya podríamos conectarnos al ESP8266, pero para poder interactuar con el debemos activar el servidor disponible en modulo. Para activar este servidor volvemos a tirar de comando AT.
AT+CIPSERVER=1, 80
OK
Esto activara el servidor TCP en el puerto 80.
Para desactivar el servidor solo tendremos que repetir el mismo comando cambiado el 1 por un 0.
AT+CIPSERVER=0, 512
OK
Una vez que tengamos el servidor TCP activado en el modulo, podremos interactuar con el estableciendo una conexión en la dirección ip asignada y mediante el puerto activado.
Tabla con los comandos AT disponibles en el modulo wifi ESP8266
Comandos
Descripción
Tipo
Configuración / Ejecución
Estado
Prueba
Parámetros y ejemplos
AT
general test
basic
–
–
–
–
AT+RST
restart the module
basic
–
–
–
–
AT+GMR
check firmware version
basic
–
–
–
–
AT+CWMODE
wifi mode
wifi
AT+CWMODE=<mode>
AT+CWMODE?
AT+CWMODE=?
1= Sta, 2= AP, 3=both, Sta is the default mode of router, AP is a normal mode for devices
AT+CWJAP
join the AP
wifi
AT+ CWJAP =<ssid>,< pwd >
AT+ CWJAP?
–
ssid = ssid, pwd = wifi password
AT+CWLAP
list the AP
wifi
AT+CWLAP
AT+CWQAP
quit the AP
wifi
AT+CWQAP
–
AT+CWQAP=?
AT+ CWSAP
set the parameters of AP
wifi
AT+ CWSAP= <ssid>,<pwd>,<chl>, <ecn>
AT+ CWSAP?
ssid, pwd, chl = channel, ecn = encryption; eg. Connect to your router: AT+CWJAP=»www.electrodragon.com»,»helloworld»; and check if connected: AT+CWJAP?
AT+CWLIF
check join devices’ IP
wifi
AT+CWLIF
–
–
AT+ CIPSTATUS
get the connection status
TCP/IP
AT+ CIPSTATUS
<id>,<type>,<addr>,<port>,<tetype>= client or server mode
id = 0-4, type = TCP/UDP, addr = IP address, port= port; eg. Connect to another TCP server, set multiple connection first: AT+CIPMUX=1; connect: AT+CIPSTART=4,»TCP»,»X1.X2.X3.X4″,9999
AT+CIPMODE
set data transmission mode
TCP/IP
AT+CIPMODE=<mode>
AT+CIPSEND?
0 not data mode, 1 data mode; return «Link is builded»
eg. send data: AT+CIPSEND=4,15 and then enter the data.
AT+CIPCLOSE
close TCP or UDP connection
TCP/IP
AT+CIPCLOSE=<id> or AT+CIPCLOSE
AT+CIPCLOSE=?
AT+CIFSR
Get IP address
TCP/IP
AT+CIFSR
AT+ CIFSR=?
AT+ CIPMUX
set mutiple connection
TCP/IP
AT+ CIPMUX=<mode>
AT+ CIPMUX?
0 for single connection 1 for multiple connection
AT+ CIPSERVER
set as server
TCP/IP
AT+ CIPSERVER= <mode>[,<port> ]
mode 0 to close server mode, mode 1 to open; port = port; eg. turn on as a TCP server: AT+CIPSERVER=1,8888, check the self server IP address: AT+CIFSR=?
AT+ CIPSTO
Set the server timeout
AT+CIPSTO=<time>
AT+CIPSTO?
<time>0~28800 in second
+IPD
received data
For Single Connection mode(CIPMUX=0): + IPD, <len>:
For Multi Connection mode(CIPMUX=1): + IPD, <id>, <len>: <data>
Este sitio emplea cookies como ayuda para prestar servicios. Al utilizar este sitio, estás aceptando el uso de cookies.AceptarReject
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.