PoC led web with Vaadin 8

Esta es una versión vieja que programe en el 2016 inspirado en un post de security by default, (post que sin el no estuviera aquí se los puedo jurar) donde crean un huerto domótico para el monitoreo de tomates, pimientos con gráficas en tiempo real, y la Ayuda de Javier Salcedo (que detesta que lo etiqueten) que me ayudo a entender el patrón observer/observable (bueno no soy muy astuto tampoco) para notificar a todas las UI ligadas a la session junto con websockets aka push.

Luego de un tiempo le di una mejora la UI con responsive web design , aquí el circuito cambio un poco, dado que use un triac bt136 mas un octoacloplador moc3021

Algo importante a decir es que lo anterior tiene una limitación y es la siguiente: que el arduino debe estar conectado a la pc por usb si o si, cosa que se resuelve por medio de una shield con conexión a wifi (conexión inalambrica), o un ESP8266, el igualmente el codigo entre el arduino y vaadin cambiaría usando solicitudes http aka HTTPrequest, a un servidor asíncrono.

NRF24L01 + PA image

ESP8266 image

Yo habia pensado en la NRF24L01 + PA de verdad que le veo mucha mas ventaja con respecto al Esp8266 ESP-01S y es porque se le puede colocar una antena externa, en la imagen se ve una omnidireccional de 5 dbi pareciera, pero no se especifica, e igual es lo de menos, al ponerle una antena direccional grillada de 25dbi mmm, algo me dice que si se notaria diferencia XD, seria así como esta? XD, mi vieja configuración que tenia en la madre Venezuela, aunque con lo que se ahora la NRF24L01 se usa para otros motivos, junto a otra igual, programada receiver-transeiver

image

Son mas o menos a si en la vida real, bastante pequeñas ambas

image

Pero como siempre soy tannnn astuto, que apenas tengo un cable macho-hembra para prototipado, porque deje el resto en la mini Venecia aka Venezuela

image

Tocara esperar una semana mas quizás hasta que llegue el resto. XD una triste cara de drama

image

Continuara…

___________________________________________________________________________________

Volviendo aquí, el día 6/15/2019 un día común y corriente, típico.

image

nada mal no? son algo largas, bien, quitamos el atmega328p con cuidado mejor, una pinza antiestatica.

image

Este es el pinout que estoy usando

image

Una imagen de como tengo la conexión

image –>

Configuraremos ahora, la velocidad a 9600 baudios, por defecto viene a 115200, nos conectamos a esa velocidad, con NL/CR(nueva linea, y retorno de carro), solo le quitaremos la tensión de 3v, para introducir un comando, se ve la salida de la consola algunos caracteres raros.

Introducimos este comando para dejarlo permanente.

AT+UART_DEF=9600,8,1,0,0

)

Con este comando vemos la version

AT+GMR

Tecleamos AT+CWMODE? para ver en que modo estamos lo mas seguro el dos. Con este comando lo configuramos como modo estación y ap.

AT+CWMODE=3

Vamos a escanear redes disponibles

AT+CWLAP

Nos conectamos con

AT+CWJAP="Choristar_5F52","AquiNoEntraNiElDiablo"

Al conectar debería de salir en la consola del IDE…

WIFI CONNECTED
WIFI GOT IP

OK

Configuramos para aceptar multiples conexiones con

AT+CIPMUX=1

Creamos un servidor por el puerto 8080

AT+CIPSERVER=1,8080

Ahora introducimos ipconfig/ifconfig para obtener la dirección ip del modulo

No me digan que se creyeron semejante cyberChorrada ? en realidad es:.

AT+CIFSR

Con este código java podemos hacer un HttpRequest con post, usando open jdk-11, esta es la dirección ip

private static final String IP_ESP8266 = "http://192.168.1.45:8080/";

public void hacerPostESP8266() {
    final String pin = JOptionPane.showInputDialog(null,"Introduce On o off");
        if(nonNull(pin)) {
            try {
                final HttpResponse<String> req = HttpClient.newBuilder()
                           .build()
                           .send(HttpRequest
                                    .newBuilder(URI.create(IP_ESP8266 + pin.replaceAll("[\\,\\s+\\.0-9]+","")))
                                    .header("Content-Type", "text/plain; charset=UTF-8")
                                    .POST(HttpRequest.BodyPublishers.ofString(""))
                                    .build(), HttpResponse.BodyHandlers.ofString());
                    LOGGER.info("Estatus code: " + req.statusCode());
                } catch (IOException e) {
                    LOGGER.severe(e.toString());
                } catch (InterruptedException e) {
                    LOGGER.severe(e.toString());
                }
        } else {
                JOptionPane.showMessageDialog(null,"Valor invalido");
        }           
}    

Por lo que veo el modulo a veces cuelga sin ninguna razón por lo tanto cuando eso pase, tocara setear los comando AT para servidor multiconexión, y activar la ip con puerto así, es bull shit pero es lo que hay mientras.

AT+CIPMUX=1
 
AT+CIPSERVER=1,8080

Tocara mejorar esto, porque el modulo ESP8266 se puede flashear con un firmware para programarlo con el IDE de arduino gracias a un ruso Ivan Grokhotkov que encendió la chispa, aquí está el repo ESP8266 repo


En el siguiente enlace, flashee mi ESP8266

Comments