U-BLOX NINA W102 E ETHERNET 802.3
O objetivo deste BLOG é demonstrar como é possível utilizar o ARDUINO para programar o módulo U-BLOX NINA W102 para ter acesso a INTERNET via 802.3, por meio do módulo ENC28J60. Foi utilizado o EVK-NINA-W para o teste.
ENC28J60
O módulo Ethernet ENC28J60 utiliza o novo IC controlador controlador independente Microchip ENC28J60 com uma série de recursos para lidar com a maioria dos requisitos de protocolo de rede. A placa se conecta diretamente à maioria dos microcontroladores com uma interface SPI padrão com uma velocidade de transferência de até 20MHz.
1) Baixe e instale a última versão da IDE do Arduino
https://www.arduino.cc/en/Main/Software e crie uma pasta PORTABLE dentro da pasta de instalação do ARDUINO.
https://www.arduino.cc/en/Main/Software e crie uma pasta PORTABLE dentro da pasta de instalação do ARDUINO.
2) Execute a IDE do Arduino e click em files-->preferences
e digite
https://dl.espressif.com/dl/package_esp32_index.json e click OK
3) Vá agora em Tools > Board > Boards Manager
4) Procure por "ESP32 by Espressif" e instale
Aguarde alguns minutos para instalação do SDK.
5) Selecione em tools-->board o módulo u-blox NINA-W10 series
6) OK, voce pode agora fechar o ARDUINO.
7) Atualize os BINS abaixo do Package ESP32
8) Selecione o módulo Generic ESP32 (NINA W102 é baseado no ESP32)
9) INSTALAR LIBS
Em
Enc28J60Network.h adicione
#ifndef Enc28J60Network_H_
#define Enc28J60Network_H_
#if defined(ESP32)
//pin SS already defined in ESP32 as pin 5, don't use this as conflict with SPIFFS, EEPROM, etc.
// Use in GPIO13
#warning ENC28J60Network.h => use ESP32, change ENC28J60_CONTROL_CS/SS_PIN_DEFAULT to GPIO13, MOSI(23), MISO(19), SCK(18)
#define ENC28J60_CONTROL_CS 5
#endif
Em
Enc28J60Network.cpp adicione
void Enc28J60Network::init(uint8_t* macaddr)
{
Serial.print("ENC28J60_CONTROL_CS =");
Serial.println(ENC28J60_CONTROL_CS);
Serial.print("SS =");
Serial.println(SS);
Serial.print("SPI_MOSI =");
Serial.println(SPI_MOSI);
Serial.print("SPI_MISO =");
Serial.println(SPI_MISO);
Serial.print("SPI_SCK =");
Serial.println(SPI_SCK);
10) Abra o exemplo AdvancedWebserver
Descomente
#define USE_UIP_ETHERNET true
Coloque seu ip local
IPAddress ip(XXX,XXX,XXX,XXX);
11) Compile e grave
12) Ligue o ENC28J60 no W102 conforme esquemas abaixo
static const uint8_t MOSI = 23; ----> SI (ENC28J60)
static const uint8_t MISO = 19; ----> SO (ENC28J60)
static const uint8_t SCK = 18; ----> SCK (ENC28J60)
ENC28J60_CONTROL_CS ----> CS (ENC28J60)
14) Questões: suporte@smartcore.com.br
FONTES:
THANKS TO Khoi Hoang
https://www.arduino.cc
https://dl.espressif.com/dl/package_esp32_index.json
https://raw.githubusercontent.com/sparkfun/Arduino_Boards/nrf5/IDE_Board_Manager/package_sparkfun_index.json
https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/boards_manager.md
https://github.com/khoih-prog/EthernetWebServer
https://www.microchip.com/wwwproducts/en/en022889
https://www.elecrow.com/enc28j60-ethernet-module-p-587.html
THANKS TO Khoi Hoang
https://www.arduino.cc
https://dl.espressif.com/dl/package_esp32_index.json
https://raw.githubusercontent.com/sparkfun/Arduino_Boards/nrf5/IDE_Board_Manager/package_sparkfun_index.json
https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/boards_manager.md
https://github.com/khoih-prog/EthernetWebServer
https://www.microchip.com/wwwproducts/en/en022889
https://www.elecrow.com/enc28j60-ethernet-module-p-587.html