terça-feira, 28 de abril de 2020

NINA W102 E ETHERNET 802.3

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.

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)



13) Executando






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
 

Sobre a SMARTCORE

A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portifólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.
Mais detalhes em www.smartcore.com.br