User Tools

Site Tools


projets:fuz:webduino

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
projets:fuz:webduino [2019-11-30 23:39] – [OTA] Lomanicprojets:fuz:webduino [2020-05-10 22:14] – [OTA] amend last edit Lomanic
Line 4: Line 4:
 ===== Goals ===== ===== Goals =====
   * [OK] Flash Webduino with different IDEs   * [OK] Flash Webduino with different IDEs
-  * Check Components : pins, photocell, RGB LED, button +  * [OK] Check Components : pins, photocell, RGB LED, button 
-  * Use OTA+  * [OK?] Use OTA
 </WRAP> </WRAP>
  
Line 12: Line 12:
   * [[https://webduino.io/en/tutorials/smart-01-information.html|Official Intro]]   * [[https://webduino.io/en/tutorials/smart-01-information.html|Official Intro]]
   * Webduino USB port is only used to power the board, not for upload and monitoring   * Webduino USB port is only used to power the board, not for upload and monitoring
-  * The chip is labelled ESP8266MOD by AI Thinker, in fact it is an ESP-12F, same as Wemos d1 +  * The chip is labeled ESP8266MOD by AI Thinker, in fact it is an ESP-12F, same as Wemos D1 
-  * The Board include a photocell, RGB led and a button.+  * The board includes a photocell, an RGB led and a button. 
 +  * [[https://www.programmersought.com/article/1565534775/|Unofficial tutorial in ~english]], with how to flash webduino with FTDI
  
  
 ===== Wiring and flashing ===== ===== Wiring and flashing =====
  
-Plug Webduino Smart using FTDI **3.3v** module. Webduino and the FTDI must be powered.+Plug Webduino Smart using FTDI **3.3v** module. Webduino and the FTDI must be powered. Webduino is powered through its micro USB port.
  
-           3.3    3.3 +           Tx     Rx     
-    ftdi   Tx     Rx    Webduino +  ftdi     Rx     Tx     Webduino
-           Rx     Tx+
            Gnd    Gnd            Gnd    Gnd
  
-For **flashing**, on Webduino Smart connect GPIO 0 to GND. (RGB goes green)  +{{:projets:fuz:webduino_serial_pinout.jpg?400|}} 
 + 
 +For **flashing**, on Webduino Smart connect GPIO 0 to GND. (RGB goes light blue)  
  
 For **rebooting**, on Webduino Smart connect RST to GND For **rebooting**, on Webduino Smart connect RST to GND
  
-Flashing usual sequence is : +Flashing usual sequence is: 
   - Set flash position (GPIO0 on GND)   - Set flash position (GPIO0 on GND)
   - Power the FTDI and the Webduino   - Power the FTDI and the Webduino
-  - Upload sketch ... Webduino should restart in normal mode. +  - (RGB goes light blue) Disconnect GPIO 0 
-  - Or disconnect GPIO 0 and restarrt using RST or Webduino power+  - Upload sketch... Webduino should restart in normal mode. 
 +  - Or disconnect GPIO 0 and restart using RST or Webduino power
  
 ===== Arduino IDE ===== ===== Arduino IDE =====
Line 41: Line 44:
 ===== Platformio ===== ===== Platformio =====
  
-Got it to work as a Wemos d1 !+Got it to work as a Wemos d1!
  
     [env:d1]     [env:d1]
Line 52: Line 55:
 I got blink sketch using LED_BUILTIN (2) I got blink sketch using LED_BUILTIN (2)
  
 +==== RGB LED ====
 +
 +<code c++>
 +/***
 +   RGB sketch for webduino smart
 +   Board:   ESP8266
 +
 +*/
 +
 +#include <Arduino.h>
 +
 +// according to https://webduino.io/en/tutorials/smart-01-information.html#on-board-components-and-pins
 +#define GPIO_GREEN_RGB 12
 +#define GPIO_BLUE_RGB  13
 +#define GPIO_RED_RGB 15
 +#define GPIO_MICRO_SWITCH_BUTTON 4
 +
 +// https://create.arduino.cc/projecthub/muhammad-aqib/arduino-rgb-led-tutorial-fc003e
 +void RGB_color(int red_light_value, int green_light_value, int blue_light_value) {
 +  analogWrite(GPIO_RED_RGB, red_light_value);
 +  analogWrite(GPIO_GREEN_RGB, green_light_value);
 +  analogWrite(GPIO_BLUE_RGB, blue_light_value);
 +}
 +
 +void showColor(int color) {
 +  Serial.printf("Color %d\n", color);
 +  switch (color) {
 +    case 0:
 +      RGB_color(255, 0, 0); // Red
 +      break;
 +    case 1:
 +      RGB_color(0, 255, 0); // Green
 +      break;
 +    case 2:
 +      RGB_color(255, 255, 125); // Raspberry
 +      break;
 +    case 3:
 +      RGB_color(0, 255, 255); // Cyan
 +      break;
 +    case 4:
 +      RGB_color(255, 0, 255); // Magenta
 +      break;
 +    case 5:
 +      RGB_color(255, 255, 0); // Yellow
 +      break;
 +    case 6:
 +      RGB_color(255, 255, 255); // White
 +    default:
 +      RGB_color(0, 0, 0); // Disabled
 +  }
 +}
 +
 +void setup() {
 +  Serial.begin(115200);
 +  delay(10);
 +  Serial.println();
 +  Serial.println(F("Webduino smart RGB sketch: push the micro switch button to loop over colors"));
 +
 +  pinMode(GPIO_GREEN_RGB, OUTPUT);
 +  pinMode(GPIO_BLUE_RGB, OUTPUT);
 +  pinMode(GPIO_RED_RGB, OUTPUT);
 +}
 +
 +int color = 0;
 +void loop() {
 +  if (digitalRead(GPIO_MICRO_SWITCH_BUTTON) == LOW) {
 +    Serial.println(F("Button pressed"));
 +    color = ((color + 1) % 7);
 +    showColor(color);
 +    delay(200);
 +  }
 +}
 +</code>
 +
 +==== Photocell ====
 +<code c++>
 +
 +/***
 +   Photocell sketch for webduino smart
 +   Board:   ESP8266
 +
 +*/
 +
 +#include <Arduino.h>
 +
 +// according to https://webduino.io/en/tutorials/smart-01-information.html#on-board-components-and-pins
 +#define GPIO_PHOTOCELL A0
 +#define GPIO_MICRO_SWITCH_BUTTON 4
 +
 +void setup() {
 +  Serial.begin(115200);
 +  delay(10);
 +  Serial.println();
 +  Serial.println(F("Webduino photocell sketch: push the micro switch button to read photocell values"));
 +}
 +
 +
 +void loop() {
 +  if (digitalRead(GPIO_MICRO_SWITCH_BUTTON) == LOW) {
 +    Serial.println(analogRead(GPIO_PHOTOCELL)); // values go from 0 for complete darkness to 1024 for full bright light
 +  }
 +}
 +</code>
 ===== OTA ===== ===== OTA =====
 See https://github.com/esp8266/Arduino/tree/master/libraries/ArduinoOTA/examples See https://github.com/esp8266/Arduino/tree/master/libraries/ArduinoOTA/examples
 +
 +This was randomly working for me, maybe implement [[http://www.csshl.net/content/esp8266-aggiornamenti-ota|this workaround]]?
projets/fuz/webduino.txt · Last modified: 2023-02-02 22:06 by 127.0.0.1