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 revision Previous revision
Next revision
Previous revision
projets:fuz:webduino [2019/05/22 18:13]
tio
projets:fuz:webduino [2020/05/11 00:14] (current)
lomanic [OTA] amend last edit
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
  
 +This was randomly working for me, maybe implement [[http://​www.csshl.net/​content/​esp8266-aggiornamenti-ota|this workaround]]?​
projets/fuz/webduino.1558541618.txt.gz · Last modified: 2019/05/22 18:13 by tio