A Placa Wemos D1 ilustrada na Figura 1, não é um Arduino, apesar de possuir exatamente o mesmo formato da placa Arduino UNO. Essa placa disfarçada de Arduino é nada mais, nada menos, do que um módulo ESP8266-12EX, uma ESP com blindagem sobre o processador, o que reduz interferências. Se você não conhece o ESP8266, digite ESP8266 aí na caixa de pesquisa do google e veja que beleza. Trata-se de uma placa com um processador de 32bits, 80MHz e com WiFi na placa, e que trabalha em modo AP ou Station.
Figura 1 - Placa do Wemos D1 R2
O fato de estar em um formato pseudo-arduino não muda em nada em relação ao processador. O módulo ESP8266-12EX trabalha com 3.3V e não é tolerante a 5V. A vantagem aqui está mesmo na disponibilidade do jack para fontes na faixa de 9V a 24V, graças a um regulador de tensão na entrada, tal qual o Arduino. A programação pode ser feita tanto pela micro-usb, como por OTA (via wifi). O processador opera a 80MHz, bem superior que os 16MHz do do Arduino.
Para saber informações sobre os pinos ou GPIO desta placa, basta procurar pelas especificações dos pinos do módulo ESP8266-12EX. O esquemático completo pode ser baixado aqui.
Mesmo aceitando ou encaixando os shields do arduino, é necessário tomar cuidado para não cair em uma armadilha devido à incompatibilidade de tensão e corrente, o que poderá queimar a placa. T O D O S os pinos de IO trabalham com 3,3V e não são tolerantes a 5V.
No site oficial do Wemos D1 existem alguns links bem interessantes, como o de construção de firmware online , um site exibindo informações de sensores online, um canal web de IRC onde se pode comunicar em inglês, apesar de a linguagem nativa ser russo. Neste link poderá conversar com os russos.
As principais características da placa wemos D1 R2 são apresentadas a seguir:
Pin | Function | ESP-8266 Pin |
TX | TXD | TXD |
RX | RXD | RXD |
A0 | Analog input, max 3.3V input | A0 |
D0 | IO | GPIO16 |
D1 | IO, SCL | GPIO5 |
D2 | IO, SDA | GPIO4 |
D3 | IO, 10k Pull-up | GPIO0 |
D4 | IO, 10k Pull-up, BUILTIN_LED | GPIO2 |
D5 | IO, SCK | GPIO14 |
D6 | IO, MISO | GPIO12 |
D7 | IO, MOSI | GPIO13 |
D8 | IO, 10k Pull-down, SS | GPIO15 |
G | Ground | GND |
5V | 5V | - |
3V3 | 3.3V | 3.3V |
RST | Reset | RST |
Todos os pinos suportam interrupção / PWM / I2C / suporta protocolo one-wire (exceto pino D0)
O detalhamento dos pinos nos conectores do Wemos D1 R2, relativo aos pinos do processador, é apresentado na Figura 2.
Figura 2 - Ligação do conector ao processador do Wemos D1 R2
A Figura 3 apresenta a placa Wemos D1 Mini, que é o mesmo Wemo D1 com tamanho reduzido, mas com as mesmas características, e o mesmo processador. Na figura 3 encontra-se ilustrado a pinagem do mesmo.
Figura 3 - Ligação do conector ao processador do Wemos D1 R2
As principais características da placa Wemos D1 Mini são:
A tabela que se segue, resume as principais características do D1 Mini:
Microcontroller |
ESP-8266EX |
Operating Voltage |
3.3V |
Digital I/O Pins |
11 |
Analog Input Pins |
1(Max input: 3.2V) |
Clock Speed |
80MHz/160MHz |
Flash |
4M bytes |
Length |
34.2mm |
Width |
25.6mm |
Weight |
10g |
O detalhamento do layout dos pinos do Wemos D1 Mini é apresentado aqui.
Na tabela a seguir é apresentado a função de cada pino do módulo Wemos D1 Mini:
Pin | Function | ESP-8266 Pin |
TX | TXD | TXD |
RX | RXD | RXD |
A0 | Analog input, max 3.3V input | A0 |
D0 | IO | GPIO16 |
D1 | IO, SCL | GPIO5 |
D2 | IO, SDA | GPIO4 |
D3 | IO, 10k Pull-up | GPIO0 |
D4 | IO, 10k Pull-up, BUILTIN_LED | GPIO2 |
D5 | IO, SCK | GPIO14 |
D6 | IO, MISO | GPIO12 |
D7 | IO, MOSI | GPIO13 |
D8 | IO, 10k Pull-down, SS | GPIO15 |
G | Ground | GND |
5V | 5V | - |
3V3 | 3.3V | 3.3V |
RST | Reset | RST |
Todos os pinos suportam interrupção / PWM / I2C / suporta protocolo one-wire (exceto pino D0)
O esquemático completo desta placa está disponível aqui. A seguir apresentamos na Figura 4, o detalhe da interligação dos pinos do conector com o processador, no módulo Wemos D1 Mini.
Figura 4 - Ligação do conector ao processador
Shield
O modulo Wemos D1 Mini possui alguns shields próprios. Já no modelo D1 padrão não tem nenhum shield específico e , neste caso, você poderá implementar o código como se fosse nos shields do Arduino. Entretanto é necessário observar as limitações de tensão e corrente nos pinos.
Vejam, a seguir, alguns links sobre o assunto: