Para programar o WT32-ETH01, um Esp32 Wroom com Ethernet embutida, conectar um USB-Serial com TX-RX invertidos, alimentação (3.3 ou 5V), jumpear GND e GPIo00, e energizar (deixar o GND da alimentação para ligar por último). Assim, ele entrará em modo de programação.
Web Applications Freelancer
Variedades sobre desenvolvimento, eletrônica e afins. Ou: minha memória de longo prazo.
Translate
quarta-feira, 29 de julho de 2026
terça-feira, 27 de maio de 2025
Shebang Line (Linha Shebang, Shabang, Sharp-bang)
Nos Unix-like (Linux, macOS, etc) você pode definir seu programa executável ao chamar do shell, sem ter que invocar um interpretador (python, shell, etc), nos arquivos texto, como python .py.
Na primeira linha do arquivo texto, inicie com #! para esta definição, seguido de espaço e do caminho (se não estiver no PATH) e nome do programa executor, como por exemplo:
#! python3 --argumentos
Como pode haver problemas quanto ao ambiente, a recomendação, caso não funcione, é adicionar o /usr/bin/env logo após o #!.
#!/usr/bin/env python3 --argumentos
Feito isso, e utilizando um chmod +X arq.py é possível chamar o arquivo diretamente na linha de comando:
$ arq.py
sexta-feira, 9 de dezembro de 2022
ESP01S Relay V4 utilizando o Tasmota e Echo / Alexa
Montando um interruptor compatível com Alexa.
Utilizado o módulo Relé para ESP01 v4.0 do AliExpress
em conjunto com ESP01S- clicar em INSTALL TASMOTA BR
- marcar ERASE e clicar em NEXT
- clicar em INSTALL
quinta-feira, 17 de fevereiro de 2022
Destacar / formatar código fonte no Blogger
<link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.4.0/styles/default.min.css" rel="stylesheet">
<script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.4.0/highlight.min.js'/>>
<script>hljs.highlightAll();</script>
<pre><code class="language-c++">
..........................
</code></pre>
quarta-feira, 16 de fevereiro de 2022
ESP-01 acionando módulo relé com Echo Dot - Alexa
credentials.h
#define WIFI_SSID "YOUR_SSID"
#define WIFI_PASS "YOUR_PASSWORD"
program.ino code
#include
#ifdef ESP32
#include
#else
#include
#endif
#include "fauxmoESP.h"
#include "credentials.h"
fauxmoESP fauxmo;
// -----------------------------------------------------------------------------
#define SERIAL_BAUDRATE 115200
#define RELE 2
#define BUTTON 0
#define ID_RELE "Office Light"
const IPAddress remote_ip(192, 168, 15, 2);
boolean estado;
int buttonState;
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
// Wifi
// -----------------------------------------------------------------------------
void wifiSetup() {
#ifdef DEBUG_ESP_PORT
// Set WIFI module to STA mode
WiFi.mode(WIFI_STA);
// Connect
Serial.printf("[WIFI] Connecting to %s ", WIFI_SSID);
#endif
WiFi.begin(WIFI_SSID, WIFI_PASS);
#ifdef DEBUG_ESP_PORT
// Wait
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(100);
}
Serial.println();
// Connected!
Serial.printf("[WIFI] STATION Mode, SSID: %s, IP address: %s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str());
#endif
}
void hold(const unsigned int &ms) {
// Non blocking delay
unsigned long m = millis();
while (millis() - m < ms) {
yield();
}
}
void setup() {
#ifdef DEBUG_ESP_PORT
// Init serial port and clean garbage
Serial.begin(SERIAL_BAUDRATE);
Serial.println();
Serial.println();
#endif
// LEDs
pinMode(RELE, OUTPUT);
pinMode(BUTTON, INPUT_PULLUP);
digitalWrite(RELE, HIGH);
#ifdef DEBUG_ESP_PORT
pinMode(LED_BUILTIN, OUTPUT);
#endif
// Wifi
wifiSetup();
fauxmo.createServer(true);
fauxmo.setPort(80); // This is required for gen3 devices
fauxmo.enable(true);
fauxmo.addDevice(ID_RELE);
fauxmo.onSetState([](unsigned char device_id, const char * device_name, bool state, unsigned char value) {
#ifdef DEBUG_ESP_PORT
Serial.printf("[MAIN] Device #%d (%s) state: %s value: %d\n", device_id, device_name, state ? "ON" : "OFF", value);
#endif
if (strcmp(device_name, ID_RELE)==0) {
digitalWrite(RELE, !state ? HIGH : LOW);
estado = !state;
}
});
digitalWrite(RELE, HIGH);
estado = true;
}
void loop() {
fauxmo.handle();
buttonState = digitalRead(BUTTON);
if (buttonState == LOW) {
estado = !estado;
digitalWrite(RELE, estado ? HIGH : LOW);
#ifdef DEBUG_ESP_PORT
digitalWrite(LED_BUILTIN, estado ? HIGH : LOW);
#endif
hold(700);
}
static unsigned long last = millis();
if (millis() - last > 10000) {
#ifdef DEBUG_ESP_PORT
Serial.printf("[MAIN] Free heap: %d bytes\n", ESP.getFreeHeap());
#endif
last = millis();
}
}
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
Lembrete pessoal: para utilizar este circuito com o Tasmota, utilizar a configuração na opção módulo:
ou com a opção personalizada em "Other":
{"NAME":"ESP01v4","GPIO":[32,0,256,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18}Configuração Arduino IDE para Esp-01S respondendo ao Echo Dot/Alexa
Seguem abaixo as últimas configurações para funcionamento de registro e chamado do Echo Dot v2 e Alexa para o Esp-01s.
Arduino IDE 1.8.19, Board Esp8266 3.0.2, Library FauxmoESP 3.4.0
segunda-feira, 14 de fevereiro de 2022
Adaptador Ep01 para Protoboard
Adaptador simples e esquema para facilitar o manuseamento do Esp01 em protoboards. Meus programadores do Esp01 já tem o botão de Reset e o switch de modo de programação embutidos, mas constam no diagrama, até para facilitar referências. Recomendo alterar a largura para 4 pinos, para liberar mais espaço na Protoboard.









