Taula de continguts:

Porta d’entrada UDP / IP de sèrie per a Arduino basada en l’escut ESP8266: 8 passos
Porta d’entrada UDP / IP de sèrie per a Arduino basada en l’escut ESP8266: 8 passos

Vídeo: Porta d’entrada UDP / IP de sèrie per a Arduino basada en l’escut ESP8266: 8 passos

Vídeo: Porta d’entrada UDP / IP de sèrie per a Arduino basada en l’escut ESP8266: 8 passos
Vídeo: CS50 2014 – 7-я неделя 2024, De novembre
Anonim
Passarel·la UDP / IP de sèrie per a Arduino basat en l'escut ESP8266
Passarel·la UDP / IP de sèrie per a Arduino basat en l'escut ESP8266

Ja vaig publicar el 2016 aquest instructiu "Com crear la vostra pròpia passarel·la Wifi per connectar el vostre Arduino a la xarxa IP". Des que he fet algunes millores de codi i segueixo utilitzant aquesta solució.

Tot i això, ara hi ha alguns escuts ESP8266 que permeten fer el mateix sense soldar sempre que no feu servir plaques Micro o Nano.

Aquesta instrucció explicarà com utilitzar aquests escuts ESP82 com a passarel·la UDP / IP sèrie.

Això fa part d'una infraestructura domòtica global que podeu consultar aquí

Més informació sobre l'escut amb aquest instructiu

Subministraments

1 Arduino Mega (el millor és tenir almenys 1 Mega per al desenvolupament i 1 Uno per a la fase d'execució)

1 Rokoo ESP8266 ESP-12E UART WIFI Convertisseur

1 FTDI 3.3v

2 cables de taulers

Pas 1: Com funciona?

Com funciona ?
Com funciona ?

El Gateway es basa en un mòdul ESP8266

Aquest mòdul es connecta des d’un costat amb l’enllaç sèrie de l’altre costat a la xarxa IP amb el Wifi.

Fa de caixa negra. Els paquets de dades que provenen de l’enllaç serial s’envien a un port IP / Udp i viceversa.

Només heu d’establir la vostra pròpia configuració (IP, WIFI …) la primera vegada que enceneu el Gateway.

Pot transferir ASCII en brut i dades binàries (sense HTTP, JSON …)

Està dissenyat per connectar objectes amb programes fets a casa del servidor que necessiten transferències ràpides i freqüents de paquets curts de dades.

Pas 2: quines són les funcions principals?

Sobretot és una caixa negra que converteix les dades de sèrie en paquets UDP de totes dues maneres.

Però la passarel·la també pot actuar per si mateix enviant informació interna al servidor i rebent algunes ordres del servidor.

Arduino pot enviar i rebre missatges cap a / des d’un servidor connectat per Internet només imprimint / llegint un enllaç en sèrie. No cal que el desenvolupador Arduino es molesti en el protocol IP.

A més, proporciona un GPIO que Arduino pot utilitzar per comprovar que la passarel·la està correctament connectada a la WIFI i que pot passar automàticament entre 2 SSID diferents en cas de fallada.

El Gateway té 2 modes d’execució diferents que es seleccionen configurant un GPIO

Configurant GPIO a terra i el Gateway entra en mode de configuració.

Definint GPIO lliure i la passarel·la entra en mode d’execució de la passarel·la.

A més, la configuració UDP / IP del Gateway es pot modificar remotament

Pas 3: construcció de material

Construcció de material
Construcció de material

Es requereixen molt poques coses

1 escut ESP8266: he trobat aquest mòdul de placa d'extensió d'escut WiFi serie ESP8266 UNO R3 a menys de 9 €

1 UNO que és l'objectiu Arduino objectiu

1 Mega que és l'eina de desenvolupament d'arduino (podeu prescindir-ne, però és bastant difícil depurar-la)

1 FTDI 3.3 / 5v per al desenvolupament

Alguns cables

Pas 4: baixeu el codi de passarel·la

Baixeu-vos el Gateway Code
Baixeu-vos el Gateway Code

Durant aquest pas, l'Arduino només s'utilitza per alimentar (amb USB o una altra font d'alimentació) a l'escut ESP8266

Connecteu l'ESP8266 GPIO4 a terra (per entrar en mode de configuració)

Tingueu cura de configurar el FTDI a 3,3 v segons requereixi l’escut

Connecteu el FTDI al blindatge (RX a TX)

Estableix l'interruptor de protecció a 1: apagat 2: apagat 3: activat 4: activat

Connecteu el costat USB del FTDI a l'ordinador

Restableix l'escut amb el polsador ESP-RST

Baixeu-vos el codi de passarel·la a GitHub

Obriu Arduino IDE

  • Seleccioneu el port del monitor FTDI
  • Obriu el monitor sèrie IDE: configureu la velocitat a 38400
  • Seleccioneu la placa de mòdul ES8266 genèrica
  • Actualitzeu el firmware de l'escut amb el codi de passarel·la

Activeu l'interruptor 3: apagat 4: apagat

Obriu el monitor sèrie IDE

Restableix l'escut amb el polsador ESP-RST

Heu de veure els missatges al monitor que comencen amb "Inicialització EEPROM" "Inicialització finalitzada" …

És hora de fer la configuració

Pas 5: Fem la configuració de la passarel·la

En descarregar el codi de passarel·la per primera vegada, l'Esprom ESP8266 s'inicialitzarà amb els valors predeterminats. Veureu aquest tipus de missatges "set parameter: x size: yy"

Podeu trobar aquests valors dins de la definició de codi de paramValue. Per descomptat, podeu canviar aquests valors per defecte abans de descarregar el codi, però també podeu configurar la vostra configuració per ordre més endavant. Això és millor si teniu previst tenir una passarel·la multipe i conservar només una versió del codi.

Utilitzeu el port sèrie del monitor per enviar l'ordre (configurat a NL i CR).

Com que SSID no està definit actualment, espereu "No s'ha pogut connectar a la vostra prova de segon segon: 5"

A continuació, s'iniciarà automàticament un escaneig de WIFI

És hora de configurar els vostres SSID amb les ordres següents:

  • SSID1 = la vostra elecció1
  • PSW1 = yourpsw1
  • SSID2 = la vostra elecció2
  • PSW2 = yourpsw2
  • SSID = 1 (per triar amb quin SSID començar)
  • Reinicieu WiFi

Al cap d'uns segons, podeu comprovar la connexió amb l'ordre "ShowWifi". Heu de veure l'adreça IP que la passarel·la va obtenir del vostre servidor DNS. Si és el cas, és hora d’anar més enllà

És hora de definir la vostra adreça del servidor IP introduint les 4 subadreces (servidor que executarà el codi de prova de Java). Per exemple:

  • "IP1 = 192"
  • "IP2 = 168"
  • "IP3 = 1"
  • "IP4 = 10"

En enviar una ordre buida, veureu totes les ordres compatibles que podeu utilitzar més tard per adaptar-vos a les vostres necessitats. Tots els valors dels paràmetres s’emmagatzemen a Eeprom i cal tenir en compte un reinici.

Traieu el cable de configuració

Ara l'escut funciona com a porta d'entrada

Pas 6: descarregueu l'exemple de codi Arduino

Descarregueu l'exemple de codi Arduino
Descarregueu l'exemple de codi Arduino

Primer descarregueu-hi el codi principal Arduino a GitHub

A continuació, descarregueu el codi Arduino que defineix aquesta ordre i aquest codi d’enllaç sèrie als llibres

A continuació, obriu el codi principal amb un nou IDE Arduino

Desactiveu els interruptors de protecció 1 i 2 per alliberar l'enllaç sèrie Arduino 0 per a la connexió USB

Restableix l'escut

Connecteu els cables FTDI al Mega Serial 2 (TX FTDI a RX Mega, etc.)

Inicieu un nou IDE Arduino (o una eina TTY), connecteu el FTDI Usb i comenceu a supervisar l'enllaç sèrie

Pengeu el codi Arduino dins del Mega

Configureu els commutadors de protecció 1 i 2 per connectar l’enllaç sèrie Arduino 0

Restableix l'escut

Heu de veure aquest missatge "iniciar la impressió USB" al monitor

Pas 7: Fem el costat del servidor

L'exemple de servidor és un programa Java que podeu descarregar aquí a GitHub

Només cal executar-lo i mirar la consola Java i mirar el monitor FTDI

Veureu intercanvis de dades entre servidor i Arduino

Pas 8: anar més enllà

Per anar més enllà
Per anar més enllà
Per anar més enllà
Per anar més enllà

Aquest exemple de codi Arduino es basa en una part del marc de la meva infraestructura domòtica.

Si esteu interessats en aquesta infraestructura, feu-m'ho saber. Publicaré fonts.

Si només voleu utilitzar la passarel·la, podeu simplificar el codi Arduino.

Després de desenvolupar i provar el vostre codi en un Arduino Mega, podeu substituir-lo fàcilment per un Uno.

A més, podeu connectar un cable entre Arduino GPIO 7 i ESP8266 GPIO 5 si voleu que el vostre Arduino comprovi la connexió Wifi

Recomanat: