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:41] – [Wiring and flashing] Lomanicprojets:fuz:webduino [2020-09-19 23:36] – [Description] +Witty Cloud 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 11: Line 11:
  
   * [[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 Smart 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 Smart with FTDI 
 +  * The Webduino Smart is extremely similar to the "[[https://vimalb.github.io/IoT-ESP8266-Starter/Witty/info.html|(Gizwits) Witty Cloud]]" board, one is probably a clone of the other (same pin number for on-board components). The Witty Cloud board includes an FTDI daughter board which simplifies development, this daughter board may even be compatible with the Webduino Smart.
  
  
Line 24: Line 26:
            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
 +  - (RGB goes light blue) Disconnect GPIO 0
   - Upload sketch... Webduino should restart in normal mode.   - Upload sketch... Webduino should restart in normal mode.
   - Or disconnect GPIO 0 and restart using RST or Webduino power   - Or disconnect GPIO 0 and restart using RST or Webduino power
Line 40: Line 45:
 ===== Platformio ===== ===== Platformio =====
  
-Got it to work as a Wemos d1 !+Got it to work as a Wemos d1!
  
     [env:d1]     [env:d1]
Line 51: Line 56:
 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