De ESP 32 en de APA 102

Software vragen voor ESP chip familie
Berichten: 1
Geregistreerd: 20 Jun 2018, 15:49

De ESP 32 en de APA 102

Berichtdoor picturemaker » 20 Jun 2018, 16:03

Beste allemaal,

Ik ben nieuw hier dus even voorstellen;
De naam is Martien ik woon in Noord Brabant en heb een E en ICT achtergrond.
De basis beginselen van het programmeren heb ik onder de knie maar dan houd het op...

Daarnaast ben ik ook Fotograaf en daarvoor wil ik het onderstaande project gaan gebruiken.

Ik wil met de Espressif ESP32 DevKitC (ESP32 Core Board V2)
de LED RGB Strip - Addressable, 1m (APA102) aansturen.

De "opzet" van de code wordt het zelfde als in deze video
https://www.youtube.com/watch?v=_mIDsAo3DA0
Dus ook met Arrays en met een "eigen" ESP32 webpagina,om de leds via Wifi met een laptop of Smartphone te bedienen.
De code staat (vlgs mij) niet meer op de bewuste website daarom zet ik h'm er hier even bij;

#include "NeoPixelBus.h" // Library to control Pixel Stick
#include <WiFi.h> //"ESP8266WiFi.h" // WiFi Library

#define PixelCount 8 // Number of leds on stick
#define PixelPin 2 // NodeMCU pin 2 (RX) connected to Digital In of Pixel Stick

const char* ssid = "xxxxxxx"; // Name of WiFi Network
const char* password = "xxxxxxx"; // Password of WiFi Network

int firstrun = 0; // Check if system was just powered on
int buttonpressed = 5; // To hold which button was pressed on Web Page

// Initialize Library
//NeoPixelBus<NeoGrbFeature, Neo800KbpsMethod> strip(PixelCount, PixelPin);

// Define Arrays for colors
long switchled00[] =
{
0x0E5219, 0x52160E, 0x0E5219, 0x52160E,0x0E5219,0x52160E,0x0E5219,0x52160E
};

long switchled01[] =
{
0x19257B, 0x7B7A19, 0x19257B, 0x7B7A19, 0x19257B, 0x7B7A19, 0x19257B, 0x7B7A19
};

WiFiServer server(80); // Define Web Server Port

void setup() {
Serial.begin(115200);
delay(10);

//strip.Begin(); // Init of Pixel Stick
//strip.Show(); // Clears any lit up Leds

// Connect to WiFi network
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);

// Wait until connected to WiFi
while (WiFi.status() != WL_CONNECTED) {
delay(250);
Serial.print(".");
}

// Confirmation that WiFi is connected
Serial.println("");
Serial.println("WiFi connected");

// Start the Web Server
server.begin();
Serial.println("Web Server Started");

// Display IP address
Serial.print("You can connect to the Server here: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println();
Serial.println();

}


void loop() {

// Check if someone is connected
WiFiClient client = server.available();
if (!client) {
return;
}

// Read which button was pressed on the Web Page
String request = client.readStringUntil('\r');

// Light Up leds based on the button pressed
if (request.indexOf("/REDGREEN=1") != -1) {
for (int led = 0; led < 8; led++) {
//strip.SetPixelColor(led, HtmlColor(switchled00[led]));
}
//strip.Show();
buttonpressed = LOW;
firstrun=1;
}
if (request.indexOf("/BLUEYELLOW=1") != -1) {
for (int led = 0; led < 8; led++) {
//strip.SetPixelColor(led, HtmlColor(switchled01[led]));
}
//strip.Show();
buttonpressed = HIGH;
firstrun=1;
}

// Create Web Page
client.println("HTTP/1.1 200 OK"); // HTML Header
client.println("Content-Type: text/html");
client.println("");
client.println("<!DOCTYPE HTML>");

client.println("<html>"); // Start of HTML

client.println("<style>");
client.println("body {background-color: #ACAEAD;}"); // Set Background Color
client.println("</style>");

if (firstrun == 0) {
client.print("Please Click a Button ");
}
else {
client.print("Last Button Pressed was ");
}

if(buttonpressed == LOW) {
client.print("Red & Green");
}
if (buttonpressed == HIGH){
client.print("Blue & Yellow");
}
client.println("<br><br>");
client.println("<a href=\"/REDGREEN=1\"\"><button>Red & Green </button></a>");
client.println("<a href=\"/BLUEYELLOW=1\"\"><button>Blue & Yellow </button></a><br />");
client.println("</html>");
delay(10);


Het "grote" verschil is dat ik een andere strip en een ander board wil gebruiken. De ESP32 heeft nl 4 aansluitdraden.
Het voordeel daarvan is dat je iedere led apart aan kunt sturen.
Verder wil ik de website op de ESP32 direct benaderen dus niet via een externe bestaande router. (als dat kan)
Als ik me niet vergis kan dat o.a met deze regel "WiFi.softAP (ssid , password)".

In deze video staat een voorbeeld hoe je de APA 102 met de ESP32 aanstuurt
https://www.youtube.com/watch?v=jQivXOvkkC8
De code staat hier:
https://github.com/pcbreflux/espressif/ ... APA102.ino

Het wisselend kleurpatroon en het knipperen heb ik niet nodig,de kleuren moeten dus constant zijn.
Daarom denk ik dat de code van line 1 t/m 79 wel op een of andere manier bruikbaar is.

De vraag is hoe kun je "beide" samenbrengen tot een werkend geheel.

Hopelijk kan iemand mij hier mee verder helpen en het zou heel mooi zijn als iemand de code kompleet voor me maakt.....maar ik weet niet of dat haalbaar is.


Reacties zijn meer dan welkom !

Martien

Advertisement

Terug naar ESP Software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast