Moduł WiFi – ESP8266 Witty Cloud ESP-12F

Wybrany moduł można programować w środowisku Arduino IDE w języku C++.

Wbudowane do modułu elementy: przycisk, dioda RGB LED i fotorezystor LDR oraz dioda wbudowana w układ ESP-12F pozwalają na wykonanie kilku eksperymentów z programowaniem (bez potrzeby dołączania zewnętrznych urządzeń).

Witty Cloud

Moduł składa się z dwóch części:

Witty Cloud

Przykład: Witty_Blink.ino

const int LDR = A0; const int BUTTON = 4; const int RED = 15; const int GREEN = 12; const int BLUE = 13; void setup() {  Serial.begin(9600);  pinMode(LDR, INPUT);  pinMode(BUTTON, INPUT);  pinMode(RED, OUTPUT);  pinMode(GREEN, OUTPUT);  pinMode(BLUE, OUTPUT);  pinMode(LED_BUILTIN, OUTPUT); } void loop() {  Serial.print("LDR: ");  Serial.println(analogRead(LDR));  Serial.print("BUTTON: ");  Serial.println(digitalRead(BUTTON));  Serial.println();  analogWrite(RED, random(0, 1024));  analogWrite(GREEN, random(0, 1024));  analogWrite(BLUE, random(0, 1024));  digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));  delay(500); }

Analiza szkicu Arduino (ChatGPT)

Polecam: link do rozmowy z czatem i dokumentację języka C++ dla Arduino.

Ten szkic jest napisany w języku Arduino (C++) i przeznaczony do sterowania diodami RGB oraz do odczytu danych z fotorezystora (LDR) i przycisku. Oto, jak działa kod:

1. Deklaracje stałych i pinów


const int LDR = A0;
const int BUTTON = 4;
const int RED = 15;
const int GREEN = 12;
const int BLUE = 13;
    

Te linie definiują piny, które będą używane do obsługi poszczególnych komponentów:

2. Funkcja setup()


void setup() {
    Serial.begin(9600);
    pinMode(LDR, INPUT);
    pinMode(BUTTON, INPUT);
    pinMode(RED, OUTPUT);
    pinMode(GREEN, OUTPUT);
    pinMode(BLUE, OUTPUT);
    pinMode(LED_BUILTIN, OUTPUT);
}
    

Funkcja ta wykonuje następujące operacje:

3. Funkcja loop()

Funkcja ta wykonuje się w pętli i realizuje główne zadania programu:

Odczyt i wyświetlenie wartości z fotorezystora i przycisku


Serial.print("LDR: ");
Serial.println(analogRead(LDR));
Serial.print("BUTTON: ");
Serial.println(digitalRead(BUTTON));
Serial.println();
    

Te linie wykonują następujące operacje:

Losowe ustawienie kolorów diody RGB


analogWrite(RED, random(0, 1024));
analogWrite(GREEN, random(0, 1024));
analogWrite(BLUE, random(0, 1024));
    

Te linie generują losowy kolor na diodzie RGB:

Miganie wbudowaną diodą LED


digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    

Instrukcja digitalWrite(LED_BUILTIN, ...) zmienia stan diody LED z włączonej na wyłączoną (i odwrotnie), tworząc efekt migania.

Opóźnienie


delay(500);
    

Funkcja delay(500); wstrzymuje działanie programu na 500 milisekund (0,5 sekundy), co pozwala wyraźnie widzieć efekty zmiany kolorów diody RGB oraz migania diody LED.

Podsumowanie

Ten kod wykonuje cyklicznie następujące czynności:

  1. Odczytuje i wyświetla wartości z fotorezystora i przycisku.
  2. Ustawia losowy kolor na diodzie RGB.
  3. Migocze wbudowaną diodą LED co pół sekundy.

Program jest prosty i pozwala eksperymentować z podstawowymi elementami, takimi jak odczyt danych analogowych, obsługa przycisku oraz sterowanie diodą RGB.

Kod przykładu do pobrania.