Hallo, wie der Titel schon sagt suche ich einen ESP8266 Programmierer. Im Gegenzug würde ich das PCB inkl. aller Bauteile (gelötet oder zum selber löten) anbieten. Es handelt sich um ein PCB auf dem sich ein ESP8266 befindet. Dieser ESP8266 soll sich nach einem Reset als "AccessPoint" bereit stellen. Hier soll man diesen dann auf sein eigenes WLAN einstellen können. Danach soll der ESP8266 auf MQTT Befehle reagieren. Der ESP soll danach folgende Arbeiten erledigen: Einen Fotowiderstand auslesen (ADC) Eine PWM Einen DS18S20 auslesen WS2812B LEDs steuern Das Board inkl. Bauteile darf natürlich behalten werden.
:
Verschoben durch Moderator
Hi Christina, der ESP8266 und die Bauteile drumrum werden vielleicht nur 15 Euro kosten. Das ist vermutlich für den Entwicklungsaufwand zu wenig als Gegenleistung. Ich denke 4 Stunden kann das schon dauern. Das macht also etwa 300 euro wenn dir das jemand günstig entwickelt. Ich finde das Thema sehr interessant, weiß aber, dass die Leute hier im Forum immer sehr aggro reagieren, wenn solche Anfragen kommen. Ich finde das nicht gut, will dich aber schonmal vorwarnen, damit der Schock nicht so groß ausfällt :-)) Ich würde es vielleicht anders machen: Vielleicht hat ja jemand Lust sich an dem Projekt zu beteiligen? lg und viel Erfolg! knuckes
Ansonsten ist es die Gelegenheit, selber zu lernen, wie man Programmiert. Vielleicht sogar (steinigt mich) in der Arduino-Umgebung für den ESP.
Ich frage mich immer, wozu man diese "rock bottom"-Lösungen an IOT-Tech so braucht? Alle Funktionen sind so grundlegend, dass sie vermutlich von einer fertig Firmware a la Tasmota komplett abgedeckt werden können. Wäre es dort nicht einfacher, die Aufgaben in kleine Teilaufgaben zu zerteilen und dann mittels Salami-Taktik von Foristen lösen zu lassen?
Christina A. schrieb: > Es handelt sich um ein PCB auf dem sich ein ESP8266 befindet. definiere ESP8266 der hier? https://de.wikipedia.org/wiki/ESP8266#/media/Datei:ESP-01.jpg Chip oder Modul? Christina A. schrieb: > WS2812B LEDs steuern Pegelwandler vorgesehen? Noch ist alles unklar!
Also es ist eine komplett selber entwickelte PCB. Dort kommt dieses Modul drauf: https://images-na.ssl-images-amazon.com/images/I/819QaacbdsL._AC_SX466_.jpg Das PCB selbst sieht so aus: https://i.imgur.com/7BuvEav.png Oben Links kommt der Ringkerntrafo dran Oben Rechts liegen 12V an (GND über PWM => ESP8266) Unten Rechts kommen die WS2812B LEDs dran (beschränkt auf 3A durch den LM2596-5) Dann ist da noch ein Fotowiderstand und ein DS18S20 drauf.
Am Ende, wird das ganze an die Decke angeschlossen.. Der Ringkern macht die Spannungen die gebraucht werden. Dieses PCB soll für einen Sternenhimmel dienen. Man nimmt sich eine Platte verbaut dort die ws2812 LEDs, das Board, einen LED Stripe drum herum. Der Ringkerntrafo wird extra gefertigt (60VA 30mm hoch) sodass dieser Perfekt verbaut werden kann.
:
Bearbeitet durch User
Christina A. schrieb: > Dort kommt dieses Modul drauf: > > https://images-na.ssl-images-amazon.com/images/I/819QaacbdsL._AC_SX466_.jpg > > Das PCB selbst sieht so aus: > > https://i.imgur.com/7BuvEav.png Tipp: Plaziere das ESP Modul so weit nach außen so dass die Antenne außerhalb der Platine ist. Wenn das nicht möglich ist dann Kupfer unter der Antenne (beide Seiten) weg.
Ok, das werde ich noch berücksichtigen... Mir ist gerade noch ein einfall gekommen... Ich mache 4 PWMs.. dann könnte ich Ringsherum RGBW Strips verwenden... Kann der ESP allerdings auf allen PINs PWM oder nur auf bestimmten?
ESP8266 programmieren ist doch easy, schau Dir mal das da an: http://stefanfrings.de/esp8266/index.html
Christina A. schrieb: > Dieses PCB soll für einen Sternenhimmel dienen. Warum dann kein Tasmota? Wenn du mittels PWM die LEDs ansteuern willst, brauchst du das für die digitalen LEDs aka Neopixel nicht. Das machen die schon selbst. Tasmota wird sicherlich eine Möglichkeit haben, die ADC Spannung deines Lichtsensors abzurufen, oder du nimmst direkt per I2C einen digitalen Lichtsensor, was ich hierfür empfehlen würde. Tasmota kann komplett per MQTT gesteuert werden und du brauchst nichts zu programmieren. Einfacher geht es kaum ;-) -> https://github.com/arendst/Tasmota
Hallo Christian, mit ESPEasy geht genau das was Du willst "Out of the box" , musst nur paar "Rules" anlegen Muss es unbedingt MQTT sein? per HTTP Request wäre es noch einfacher, geht dann ganz ohne Rules Ich denke das bekommst selber hin - aber wenn Du magst - schick mir eine Platine, oder besser schreib erst mal was DU ganz genau willst, welche MQTT Topics usw
Ich hatte auf ein paar PNs geantwortet, jedoch keine Rückmeldung bekommen. Sie die PNs vielleicht nicht angekommen?
Heinz R. schrieb: > Muss es unbedingt MQTT sein? per HTTP Request wäre es noch einfacher, > geht dann ganz ohne Rules Nein, es muss nicht unbedingt MQTT sein, aber ein MQTT Client wäre schon super.
Christina A. schrieb: > Nein, es muss nicht unbedingt MQTT sein, aber ein MQTT Client wäre schon > super. Hast Du Dir ESPEasy mal angeschaut? Musst DU wirklich das Rad neu erfinden? MQTT geht da auch...
Christina A. schrieb: > Es handelt sich um ein PCB auf dem sich ein ESP8266 befindet. Oh toll, das wollte ich schon immer mal haben. All die Boards von Amazon, Ebay, AliExpress, Conrad, ... können gar nichts. Endlich bietet sich die Chance, irgend etwas zu bekommen, das irgend etwas tut. Ich bin ganz aus dem Häuschen, wo muss ich unterschreiben? Spaß beiseite: Schicke mir die Platine und die Anforderungen schriftlich. Ich nehme 20 Euro die Stunde, unter 200€ wird es wohl nichts.
Nein, es ist ein von mir konzipiertes Board. Die Ringkerntrafos wurde speziell gewickelt und und und... Aber passt schon ;)
So, ich habe mich dann mal dadurch gekämpft und "eigentlich" ist es doch, relativ einfach. Ich hatte erst die ganzen Examples probiert. Diese liefen auch zum "teil". Nach ein paar Anpassungen habe ich es dann Stück für Stück hinbekommen, zumindest schon einmal ein wenig. Hier mal der Code
1 | #include <NeoPixelBus.h> |
2 | #include <NeoPixelAnimator.h> |
3 | #include <NeoPixelSegmentBus.h> |
4 | |
5 | #include <ESP8266WebServer.h> |
6 | #include <WiFiManager.h> |
7 | #include <PubSubClient.h> |
8 | |
9 | #include <Adafruit_NeoPixel.h> |
10 | #ifdef __AVR__ |
11 | #include <avr/power.h> // Required for 16 MHz Adafruit Trinket |
12 | #endif |
13 | |
14 | #define WS28PIN D6 |
15 | |
16 | #define WS28NUMPIXELS 10 |
17 | |
18 | Adafruit_NeoPixel strip = Adafruit_NeoPixel(WS28NUMPIXELS, WS28PIN, NEO_GRB + NEO_KHZ800); |
19 | |
20 | ESP8266WebServer server(3993); |
21 | WiFiManager wm; |
22 | |
23 | #define PIN_RESET_BUTTON 4 |
24 | |
25 | int RESET = 0; |
26 | |
27 | void handle_root(); |
28 | |
29 | void setup() { |
30 | Serial.begin(115200); |
31 | pinMode(PIN_RESET_BUTTON, INPUT); |
32 | wm.autoConnect("LEDSky", "12345"); |
33 | |
34 | Serial.println("ESP8266 is connected to Wi-Fi network"); |
35 | Serial.println("Start WS2812"); |
36 | strip.begin(); // INITIALIZE NeoPixel strip object (REQUIRED) |
37 | Serial.println("WS2812 started"); |
38 | |
39 | server.on("/", handle_root); |
40 | server.on("/ledOn", handleLEDon); |
41 | server.on("/ledOff", handleLEDoff); |
42 | server.on("/ws2812", handleWS2812); |
43 | server.on("/ws2812Off", ws2812Off); |
44 | server.on("/ws2812All", ws2812All); |
45 | server.begin(); |
46 | Serial.println("HTTP server started"); |
47 | |
48 | delay(100); |
49 | } |
50 | |
51 | void loop() { |
52 | |
53 | server.handleClient(); |
54 | |
55 | RESET = digitalRead(PIN_RESET_BUTTON); |
56 | if( RESET == HIGH) { |
57 | //Serial.println("Erase settings and restart ..."); |
58 | //delay(1000); |
59 | //wm.resetSettings(); |
60 | //ESP.restart(); |
61 | } |
62 | } |
63 | |
64 | void setColor(int led, int redValue, int greenValue, int blueValue, int delayValue) |
65 | { |
66 | strip.setPixelColor(led, strip.Color(redValue, greenValue, blueValue)); |
67 | strip.show(); |
68 | } |
69 | |
70 | void handleWS2812() { |
71 | |
72 | int lnum = server.arg("NUM").toInt(); |
73 | int rval = server.arg("R").toInt(); |
74 | int gval = server.arg("G").toInt(); |
75 | int bval = server.arg("B").toInt(); |
76 | |
77 | if ( lnum > 0 && lnum <= WS28NUMPIXELS ) |
78 | { |
79 | if (rval >= 0 && rval <= 255 && gval >= 0 && gval <= 255 && bval >= 0 && bval <= 255) { |
80 | setColor((lnum - 1), rval, gval, bval, 100); |
81 | server.send(200, "text/html", "OK"); |
82 | } else { |
83 | server.send(200, "text/html", "Error"); |
84 | } |
85 | } else { |
86 | server.send(200, "text/html", "Error"); |
87 | } |
88 | } |
89 | |
90 | void ws2812Off() { |
91 | for (int i = 0; i < WS28NUMPIXELS; i++) { |
92 | strip.setPixelColor(i, strip.Color(0, 0, 0)); |
93 | } |
94 | strip.show(); |
95 | server.send(200, "text/html", "OK"); |
96 | Serial.println("Set all WS2812B Off"); |
97 | } |
98 | |
99 | void ws2812All() { |
100 | |
101 | int rval = server.arg("R").toInt(); |
102 | int gval = server.arg("G").toInt(); |
103 | int bval = server.arg("B").toInt(); |
104 | |
105 | if (rval >= 0 && rval <= 255 && gval >= 0 && gval <= 255 && bval >= 0 && bval <= 255) { |
106 | |
107 | for (int i = 0; i < WS28NUMPIXELS; i++) { |
108 | strip.setPixelColor(i, strip.Color(rval, gval, bval)); |
109 | } |
110 | strip.show(); |
111 | server.send(200, "text/html", "OK"); |
112 | Serial.println("Set all WS2812B LEDs finish"); |
113 | |
114 | } else { |
115 | |
116 | server.send(200, "text/html", "Error"); |
117 | Serial.println("Set all WS2812B LEDs error"); |
118 | |
119 | } |
120 | } |
121 | |
122 | void handleLEDon() { |
123 | Serial.println("LED on page"); |
124 | //digitalWrite(LED,LOW); //LED is connected in reverse |
125 | server.send(200, "text/html", "LED is ON"); //Send ADC value only to client ajax request |
126 | } |
127 | |
128 | void handleLEDoff() { |
129 | Serial.println("LED off page"); |
130 | //digitalWrite(LED,HIGH); //LED off |
131 | server.send(200, "text/html", "LED is OFF"); //Send ADC value only to client ajax request |
132 | } |
133 | |
134 | |
135 | // Handle root url (/) |
136 | void handle_root() { |
137 | server.send(200, "text/html", "All ok"); |
138 | } |
Ist noch ohne MQTT, funktioniert jedoch bisher. Bisher kann ich einzelne WS2812 LEDs ansteuern oder alle gleichfarbig. Wie kann man nun "Effekte" erzielen? Ein Farbdurchlauf, Regenbogen, "Sterneneffekt" und so etwas? Vielen Dank
Christina A. schrieb: > Wie kann man nun "Effekte" erzielen? Ein Farbdurchlauf, Regenbogen, > "Sterneneffekt" und so etwas? so: https://github.com/Aircoookie/WLED entweder abgucken, oder einfach gleich so benutzen... :)
Christina A. schrieb: > Wie kann man nun "Effekte" erzielen? Ein Farbdurchlauf, Regenbogen, > "Sterneneffekt" und so etwas? Schau Dir einfach mal diverse Arduino Libraries an. Dort werden solche Effekte bereits genutzt (zb Color Wheel, Rainbow,...).
Aus welcher Gegend kommst Du denn? Dein Name (Vorname und Initiale vom Nachnamen) und das Thema Software kommen mir aus meiner Schulzeit etwas bekannt vor
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.