Forum: Projekte & Code Einfacher Webserver mit PIC24 + ESP8266


von Max H. (hartl192)


Angehängte Dateien:

Lesenswert?

Da am Freitag meine ESP8266 Module gekommen sind habe ich das Wochenende 
zum Programmieren genutzt und einen einfachen Webserver programmiert. 
Ziel des Projekts war es RGB LEDs über eine Website zu steuern. Momentan 
da der verwendete PIC24F16KA102 zu wenig PWM Module hat sind es Momentan 
WS2812 LEDs, alle die gleiche Farbe. Die Website sieht so wie im Anhang 
aus. Man kann über ein GET Request die Farbe einstelle. Das geht über 
die Buttons, die Textbox mit RBG-Werten als Hex-Zahl (RRGGBB) oder die 
Adressleiste IP/?color=RRGGBB. Zusätzlich werden die IP, die Aktuelle 
Farbe und ein paar debug Infos auf einem LCD angezeigt.

In Anhang die Sources, ich bin für Rückmeldungen und 
Verbesserungsvorschläge offen.

BTW: Toller Artike, hat mir weitergeholfen: FIFO

: Bearbeitet durch User
von Ronny Mobile (Gast)


Lesenswert?

Hallo,
welche Firmware Version hat dein Modul drauf. Gibts auch Bilder von dem 
Aufbau der Schaltung.
Tolle arbeit übrigens.

Gruß Ronny

von Max H. (hartl192)


Angehängte Dateien:

Lesenswert?

Ronny Mobile schrieb:
> welche Firmware Version hat dein Modul drauf.
00150900

> Gibts auch Bilder von dem
> Aufbau der Schaltung.
Ab jetzt, ja

von Master S. (snowman)


Lesenswert?

@Max H: vielen dank. ich habe heute ein solches modul bestellt und sagte 
mir, bis ich meines habe, hat sicher jemand ein kleiner webserver 
programmiert - schneller gegangen als ich dachte :-) ich wäre sehr froh, 
wenn ich bei einem kontroller via webseite einstellungen ändern könnte: 
ein kleiner webserver mit dem ESP8266 trifft somit perfekt meinen 
wunsch.
ps: ich würde in deinem code das passwort nicht bekannt geben (d.h. 
inhalt editieren) oder dein router-pw ändern.

von Max H. (hartl192)


Lesenswert?

Master Snowman schrieb:
> ich würde in deinem code das passwort nicht bekannt geben (d.h.
> inhalt editieren) oder dein router-pw ändern.
@Mod: Bitte editieren.

von Max H. (hartl192)


Lesenswert?

Nachtrag: In der main.c

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Max H. schrieb:
> @Mod: Bitte editieren.
Geht nicht. Ich habe sie gelöscht, du kannst eine andere main.c posten.

von Max H. (hartl192)


Lesenswert?

Danke. Im Eröffnungspost jetzt eine neue main ohne Passwort.
Zusätzlich habe ich noch noch etwas erweitert:
Nach dem AT+CWJAP wird für bis zu ca. 10 sekunden Lang die immer wieder 
die IP abgefragt. Habe ich eine IP wird sie auf dem LCD ausgegeben, habe 
ich nach 10s keine IP wird eine Fehlermeldung ausgegeben...

von Sascha S. (darkspirit510)


Lesenswert?

Ein ähnlicher Aufbau soll bei mir auch kommen, wobei ich den Webserver 
auf einem Raspberry ablegen möchte, damit auf der WLAN-Leitung am Ende 
wirklich nur die Farben übertragen werden.

Wie ist die Übertragungs- bzw. Verarbeitungszeit der Anfrage? Sprich: 
Wie lange dauert es, bis vom Absenden des Formulares zur Farbänderung am 
Ende die Farbe für dich sichtbar ist? Ist da eine spürbare Verzögerung 
oder ist das zu vernachlässigen?

von Max H. (hartl192)


Lesenswert?

Die Verzögerung ist spürbar, ich kann sie jetzt nicht nachmessen, da ich 
es momentan nicht aufgebaut habe, würde sie auf eine knappe Sekunde 
schätzen.

von Sascha S. (darkspirit510)


Lesenswert?

Uff, das ist ja doch mehr als gedacht. Dennoch danke ich für die 
Rückmeldung!

Ich möchte am Ende nur 4 Byte (RGBW) übertragen, vielleicht klappt es ja 
dann besser. Ansonsten muss ich doch Kabel ziehen.

von Max H. (hartl192)


Lesenswert?

Wenn man nur 4 Byte übertragen muss wird es wahrscheinlich schneller 
gehen, da der PIC nicht erst das GET Request auswerten und die Website 
senden muss. Das ich im Test mit WS2812 LEDs gearbeitet habe verlängert 
das die Verzögerung nochmal, da ich mit dem ausgeben der RGB Werte 
warten muss bis ruhe auf dem UART ist, da die Interrupts die Übertragung 
störe.

von Sascha S. (darkspirit510)


Lesenswert?

Zusätzlich dazu kommt mir die Frage, mit welcher Taktfrequenz dein 
Prozessor lief.

Ich werde einen atmega32 bei 16 MHz verwenden. Vielleicht war deiner ja 
etwas langsamer getaktet, da man beim ESP8266 ja 3.3V braucht.

von Max H. (hartl192)


Lesenswert?

Sascha Schmidt schrieb:
> Zusätzlich dazu kommt mir die Frage, mit welcher Taktfrequenz dein
> Prozessor lief.
32MHz (16 MIPS)
> Ich werde einen atmega32 bei 16 MHz verwenden. Vielleicht war deiner ja
> etwas langsamer getaktet, da man beim ESP8266 ja 3.3V braucht.
Der verwendete PIC24 läuft sowieso nur mit <3.6V

: Bearbeitet durch User
von Michael S. (micha2057)


Lesenswert?

Hey,

finde dein Projekt interessant. Gibt es auch eine WLAN.c?

Gruß
micha2057

von Max H. (hartl192)


Lesenswert?

Michael S. schrieb:
> Gibt es auch eine WLAN.c?
Nein, wieso?

: Bearbeitet durch User
von Andreas K. (necromancer1982)


Lesenswert?

Hallo zusammen,

das ganze geht im Übrigen auch komplett ohne PIC bzw. µC.
Ich habe auf meinem ESP-03 Modul die Firmware NodeMCU laufen und das 
Script zur Ansteuerung meiner RGB-LED Pixel (WS2801) in LUA 
programmiert.
Das Pixel (Dat + Clk) hängt direkt auf zwei I/O Pins des Moduls und wird 
von diesem angesteuert.

Die Farbe konnte ich im ersten Versuch, ähnlich zum Projekt von Max, 
über eine auf dem im Modul porgrammierten Webserver bzw. Webseite 
ändern.

Mittlerweile habe ich aber eine nette Android-App (ArduinoPixel) 
gefunden und adaptiert, welche mir von der Oberfläche her sehr gut 
gefällt. Hier kann die Farbe mittels eines Farbrads gewählt werden.

Die App kommuniziert dabei direkt per Serverrequests mit dem ESP-03 
Modul zu und übergibt die Farbe als Antwort.

Gruß Andreas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.