- Desde
- 24 Jul 2019
- Mensajes
- 855
Hace tiempo realice un proyecto y tenia ganas de compartirlo, pero no había tenido tiempo. Como punto de partida debo aclarar que soy informático/industrial, por lo que si hay cosas electrónicas nombradas de mala manera o que no sigan el estandar me avisan y lo corrijo.
Objetivo: Crear un sistema que informe mediante un bot de Telegram cada vez que alguien abra una puerta.
Materiales:
ESP8266 $1.6 Link
Interruptor Magnetico $0.94 Link
Adaptador ESP8266 $0.87 (Puede ser cambiado por un level converter) Link
Cables dupont (Opcional) $1.77 Link
Descargas
Para el modulo ESP8266
ESP8266 Flasher Link
ESPlorer Link
Para el bot de Telegram (Opcional)
Notepad++ Link
Netbeans 8.2 Link
Java Jdk 1.8 Link
MySql 5.7 Link
Wildfly 10 Link
Paso 0: Instalación de herramientas necesarias
0.1: Instalación de Python, Pip, adafruit y esptool
Bajar e instalar Python desde https://www.python.org/downloads/
Luego ejecutar el siguiente comando para instalar pip
Una vez instalado pip se instala Adafruit
Finalmente esptool
Paso 1: Si se elige el Adaptador de ESP8266, entonces se deben soldar los pines tal como se muestra en la foto con los GPIO0 y GPIO2 hacia arriba, para que no se energicen con el adaptador.
https://imgur.com/DRQ5oxL
[img=800x600]https://i.imgur.com/DRQ5oxL.jpg[/img]
https://i0.wp.com/henrysbench.capnfatz.com/wp-content/uploads/2016/12/ESP8266-PINOUT.png
Paso 2: Flashear el modulo ESP8266
En este paso se actualizará el modulo para que sea capaz de interpretar el lenguaje MicroPython y así dejar de depender de los comandos AT.
Lo primero que se debe hacer es conectar de la siguiente manera para que la placa este en modo flash
https://i.imgur.com/vKusDPx.png
[size=medium]
[/size]
Anteriormente había flasheado la unidad utilizando el programa 'ESP8266 Flasher.exe', pero de alguna forma no me funciono ahora, por lo que decidí utilizar otra herramienta, esptool de python (Paso 0).
Mediante el siguiente comando desde la consola de windows (el puerto y nombre del archivo dependerá de cada uno)
Si todo va bien deberían ver algo así
https://imgur.com/5bLD4k8
Para validar que todo vaya bien podemos hacer un list de los archivos del modulo con el siguiente comando
En donde debería retornar algo como /boot.py
Ahora para probar que realmente este interpretando Micropython se ejecutará un pequeño programa el cual será llamado al iniciar el modulo. Para esto se crean 2 archivos test.py y boot.py, el primer se encargara de mostrar en pantalla un mensaje cada 1 segundo, mientras que el segundo invoca al primero al partir el sistema.
test.py
boot.py
Una vez creado es necesario transferirlos al modulo ESP
Con esto se reinicia el modulo y se debería ver lo siguiente
https://imgur.com/xyoU350
Con esto ya tenemos funcionando Micropython en el ESP, ahora viene la parte entretenida, la programación
Necesitaremos de 3 archivos dentro del modulo, boot.py, ConnectWifi.py y test.py
boot.py
ConnectWifi.py|
test.py
Básicamente estas 3 clases funcionan de la siguiente manera, python siempre llama a boot.py, por lo que este se encargara de invocar la clase ConnectWifi.py la cual se encarga de conectarse a la red, una vez conectada llama a la clase test.py la cual se encarga de realizar toda la lógicafuncional, que no es nada más que sensar el pin 0 e informar a una URL su estado cada 5 segundos, lo que nos lleva a la siguiente parte, la creación de un servlet en Java, este servlet se encarga de recibir el pin sensado y a su vez informar mediante Telegram.
Paso 3: Instalación y configuración mysql
Paso 4: Creación del bot de telegram
Se debe buscar entre los contactos a BotFather y escribir los siguientes comandos
/start
/newbot
/nombreDelBot
/usernameDelBot (terminado en bot)
Una vez realizado esto tendremos las credenciales que se usaran en la configuración del bot de java y del servlet
Paso 4: Instalación y Configuración del entorno para Java.
Para paso se necesitan algunas nociones de programación, dejare las fuentes, pero probablemente cada uno deberá adaptarlo a sus necesidades.
El primer paso es descargar e instalar Wildfly 10 y java jdk 8. Para instalar wildfly solo se necesita descomprimir el archivo descargado. En mi caso C:
Objetivo: Crear un sistema que informe mediante un bot de Telegram cada vez que alguien abra una puerta.
Materiales:
ESP8266 $1.6 Link
Interruptor Magnetico $0.94 Link
Adaptador ESP8266 $0.87 (Puede ser cambiado por un level converter) Link
Cables dupont (Opcional) $1.77 Link
Descargas
Para el modulo ESP8266
ESP8266 Flasher Link
ESPlorer Link
Para el bot de Telegram (Opcional)
Notepad++ Link
Netbeans 8.2 Link
Java Jdk 1.8 Link
MySql 5.7 Link
Wildfly 10 Link
Paso 0: Instalación de herramientas necesarias
0.1: Instalación de Python, Pip, adafruit y esptool
Bajar e instalar Python desde https://www.python.org/downloads/
Luego ejecutar el siguiente comando para instalar pip
Código:
python get-pip.py
pip -v
Código:
pip3 install adafruit-io
Código:
pip install esptool
https://imgur.com/DRQ5oxL
[img=800x600]https://i.imgur.com/DRQ5oxL.jpg[/img]
https://i0.wp.com/henrysbench.capnfatz.com/wp-content/uploads/2016/12/ESP8266-PINOUT.png
Paso 2: Flashear el modulo ESP8266
En este paso se actualizará el modulo para que sea capaz de interpretar el lenguaje MicroPython y así dejar de depender de los comandos AT.
Lo primero que se debe hacer es conectar de la siguiente manera para que la placa este en modo flash
https://i.imgur.com/vKusDPx.png
[size=medium]
Anteriormente había flasheado la unidad utilizando el programa 'ESP8266 Flasher.exe', pero de alguna forma no me funciono ahora, por lo que decidí utilizar otra herramienta, esptool de python (Paso 0).
Mediante el siguiente comando desde la consola de windows (el puerto y nombre del archivo dependerá de cada uno)
Código:
esptool.py --chip esp8266 --port COM5 write_flash --flash_mode dio --flash_size detect 0x0 esp8266-20190529-v1.11.bin
https://imgur.com/5bLD4k8
Para validar que todo vaya bien podemos hacer un list de los archivos del modulo con el siguiente comando
Código:
ampy --port COM5 --baud 74880 ls
Ahora para probar que realmente este interpretando Micropython se ejecutará un pequeño programa el cual será llamado al iniciar el modulo. Para esto se crean 2 archivos test.py y boot.py, el primer se encargara de mostrar en pantalla un mensaje cada 1 segundo, mientras que el segundo invoca al primero al partir el sistema.
test.py
Código:
import time
while True:
print('DTX Revende')
time.sleep(1)
Código:
# This file is executed on every boot (including wake-boot from deepsleep)
import gc
import test
gc.collect()
Código:
ampy --port COM5 --baud 115200 put test.py
ampy --port COM5 --baud 115200 put boot.py
https://imgur.com/xyoU350
Con esto ya tenemos funcionando Micropython en el ESP, ahora viene la parte entretenida, la programación
Necesitaremos de 3 archivos dentro del modulo, boot.py, ConnectWifi.py y test.py
boot.py
Código:
# This file is executed on every boot (including wake-boot from deepsleep)
import gc
import ConnectWiFi
ConnectWiFi.connect()
gc.collect()
Código:
def connect():
import network
ssid = 'Nombre SSID'
password = 'Password SSID'
station = network.WLAN(network.STA_IF)
if station.isconnected() == True:
print('Already connected')
return
station.active(True)
station.connect(ssid, password)
while station.isconnected() == False:
pass
print('Connection successful')
import test
print(station.ifconfig())
Código:
import machine
import time
import urequests
import gc
pin0 = machine.Pin(2, machine.Pin.IN, machine.Pin.PULL_UP)
while True:
pin_val = pin0.value()
if pin_val is 1:
print('pin alto')
else:
print('pin bajo')
response = urequests.get('http://192.168.1.24:8080/esp/lectura?value='+str(pin_val)) #aca va la ip del servidor donde montaron el wildfly
response.close()
gc.collect()
time.sleep(5.0)
Paso 3: Instalación y configuración mysql
Paso 4: Creación del bot de telegram
Se debe buscar entre los contactos a BotFather y escribir los siguientes comandos
/start
/newbot
/nombreDelBot
/usernameDelBot (terminado en bot)
Una vez realizado esto tendremos las credenciales que se usaran en la configuración del bot de java y del servlet
Paso 4: Instalación y Configuración del entorno para Java.
Para paso se necesitan algunas nociones de programación, dejare las fuentes, pero probablemente cada uno deberá adaptarlo a sus necesidades.
El primer paso es descargar e instalar Wildfly 10 y java jdk 8. Para instalar wildfly solo se necesita descomprimir el archivo descargado. En mi caso C: