Bastelprojekt WLAN RGB Controller für ca. 6€

Begonnen von Samsi, 28 Februar 2015, 13:16:07

Vorheriges Thema - Nächstes Thema

Samsi

Mit wenigen Teilen lässt sich ein WLAN Controller selbst bauen.

Benötigt teile:

Ein RGB Controller
http://www.ebay.de/itm/121577974533   ca. 1,60€
Leider gibt es da verschiedene Controller. Meiner war wohl auf 3x4A ausgelegt. Die mit 2A habe eine andere Ansteuerung (siehe Bilder von fh168 weiter unten)
Wer also nicht einen solchen hat, sollte das mit dem Umbau besser lassen oder wissen was er tut ;)

Die Fernbedienung und der IR Receiver werden nicht benötigt, da kann man sich dann etwas anderes mit basteln ;)

Ein Step Down Module
www.ebay.de/itm/111451599266  ca. 1€
Zur Versorgung des ESP 8266 mit 3.3v , wer mag kann sich natürlich auch etwas mit einem anderen Voltage Regulator bauen. Vielleicht hat jemand eine Idee gegen was man den 5v Regulator einfach austauschen könnte für 3.3v mit ca. 300ma .

Ein ESP 03
www.ebay.de/itm/111557111183


Einen Levelshifter und USB -> UART zum programmieren setze ich mal als vorhanden voraus.

Bild PWM-WLAN-A.jpg zeigt den original Controller:


1 = Flash Speicher
2 = Unbeschrifteter IC der die IR Signale verarbeitet un

Diese beiden ICs habe ich mit einem Gaslötkolben mit aufgesetzter Heißluftdüse vorsichtig abgelötet. Wer will kann auch einfach die 3 Leitungen zu den Mosfets einfach durchtrennen.


3 = Der IR Empfänger. Den habe ich uach ausgelötet.
4 = Ein Voltage Regulator auf 5v, geht wohl bis 70ma. Den habe ich mal drin gelassen, wird aber nicht benötigt.
5 = Dort habe von 3 Lötpunkten die Leiterbahnen durchtrennt. Nur den vierten der auf GND geht habe ich gelassen. Da kommt später ein Pinheader dran um es mit dem USB UART und dem Levelshifter zu programmieren.


Bild PWM-WLAN-A.jpg zeigt den fertigen Prototyp, der sicher kein Designpreis bekommt :)

1 und 2 sind mit den pins TXD und RXD verbunden:
https://www.robotics.org.za/index.php?route=product/product&product_id=1024

3 = 3.3v um dem Levelshifter  mit LV zu verorgen
4  = GND

Ich wiederhole noch mal:  bei den Lötpunkten 1-3 müssen unbedingt die Leiterbahnen getrennt werden, auch zwischen 2-3

5 = Der ausgang vom Step Down Module (auch mit  + Markiert)
6 = Das Poti um die Spannung des Step-Down moduls auf 3.3v einzustellen. Achtung! Das muss natürlich gemacht werden bevor der Ausgang angeschlossen wird.

7 = die Eingangspannung vom Netzteil

Die 3 Blauen Drähte die nach oben weggehen sind GPIO 12,13 und 14.  Und werden auf der anderen Seite angelötet (PWM-WLAN-A.jpg):

Und zum Schluss noch mal eine Übersicht mit Levelshifter (1)

Generellles zum ESP:

GPIO15 auf GND
CH_PD auf VCC

Zuerst muss auf dem ESP die nodemcu geflasht werden. Dazu muss pin GPIO0 beim einschalten auf GND sein.

Zum programmieren/uploaden der Skripte benutze ich ESPlorer , der unterstützt mehrere Dateien in TABs. Ich finde das Tool wesentlich besser als LUA-Uploader.


Die Reichweite der Keramikantenne ist allerdings bescheiden. -72db durch eine Stahlbetondecke ca. 5m luftlinie. Da sind andere wohl etwas besser. Aber da wo ich Ihn betreiben will, ist das für mich kein Problem.


EDIT:

Ich habe die Scripte angehängt.

Zu beachten ist folgendes:
In der init.lua müsst ihr die run() manuell aufrufen bei jedem start. Oder Ihr macht den Kommentar bei -- run() raus. Ich habe ihn aber drin gelassen, denn wenn man einen Fehler macht, passiert es sehr schnell, das der ESP resetet wird und dann bei einem Automatischen Start in einer Endlosschleife bootet. Das ist mir ein paar mal passiert. Meistens schafft man es dann nicht die Ausführung von init.lua zu verhindern. Dann hilft nur noch neu flashen. Sehr ärgerlich.
Aber wenn alles funktioniert könnt Ihr natürlich in der Init run() automatisch ausführen.

Beim Upoaden solltet Ihr ein automatisches "dofile" abschalten. Sonst wird evtl. das erste hochgeladene File ausgeführt. Da die anderen Files aber noch fehlen gibt es einen Fehler der zu einem Reboot des ESP führen kann und dann die anderen Files nicht mehr hochgeladen werden.

Falls ihr die GPIOS in anderer Reihenfolge gelötet habt, dann könnt ihr das in der RGBController.lua ändern:

local Red   = 6
local Green = 5
local Blue  = 7

Der Controller ist steuerbar mit WifiLight:

define Licht_EG_Stufen WifiLight RGB LW12:192.168.0.245

Und vergesst nicht nach dem flashen mit nodemcu erstmal die Wlan Verbindung einmalig einzurichten:

wifi.setmode(wifi.STATION)
wifi.sta.config ( "WIFI_SSID" , "PASSWORD" )


Viel Spass damit.









FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

fh168

Super Samsi!

Ich bin dabei und bastel es nach!
Vielleicht schreibe ich auch bald mal drüber.


LG
/robin
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

machnetz

Hey Samsi,

cool, bin gespannt auf deine weiteren Ergebnisse.

Mfg, machnetz

locutus

@Samsi
Produktiver Beitrag zum Thema ESP8266. Das gefällt mir! Ich bin schon auf den NodeMcu Code gespannt.

Zitat von: Samsi am 28 Februar 2015, 13:16:07
Die Reichweite der Keramikantenne ist allerdings bescheiden. -72db durch eine Stahlbetondecke ca. 5m luftlinie.
Die Kupferfläche dahinter schirmt die Keramikantenne ab.

Samsi

#4
Habe oben die Skripte angehängt!

Kennt nicht jemand einen Spannungsregler mit 3.3v und 300ma dem man den Verbauten WS78L05 (http://www.datasheet-pdf.com/datasheetdownload.php?id=718113) einfach ersetzen könnte? Das würde alles noch etwas einfacher machen ;)
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

oli82

L4931 von ST, hab aber das Pinout nicht mehr im Kopf.

fh168

#6
Hallo,

ich sitze schon den ganzen Tag am esp8266 - 12 (!).
nodeMCU Software habe ich geflashed bekommen
mit den LuaLoader komme ich dann auch auf drauf (9600 Baud)

Frage:
muss ich den GP00 noch gegen Masse legen (flash)?

Es gibt ja einige Dateien, init.lua, controller.lua usw. Lade ich nacheinander hoch? Oder lege ich ein verzeichnis fest, die der lualoader automatisch zieht?

ich habe am esp8266-12 keine gpios 5,6,7 kann ich auch andere nehmen? Ich hatte 4,5 und 16 genommen und das in der Controller.lua geändert. Danach hatte er Probleme mit der baudrate gehabt.. ich vermute ich habe den baustein gekillt. Ich kam mit 9600 baud noch drauf, flashen ging auch noch, aber wenn ich aus dem Flashmodus GPI00 wieder von der Masse genommen habe, wurde der Baustein heiß. Ich habe jetzt einen neuen genommen

Werden beim Upload der lua Dateien die Daten dauerhaft gespeichert?

Hardware: Mein Baustein von Mömax sieht komplett anders aus, die beiden Maikäfer sind zwar auch da, die habe ich rausgelötet. die RGB Kabel habe ich einem 3-beinigem Chip (sieht aus wie ein Transistor) angelötet. Jeweils das Bein, welches zum Maikäfer ging.

robin
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

Samsi

#7
Hi,

GPIO0 muss nur beim Flashen auf GND

Die GPIOs sind 12,13 und 14 und die gibt es auch beim ESP 12:
http://l0l.org.uk/2014/12/esp8266-modules-hardware-guide-gotta-catch-em-all/

Die werden nur von nodemcu über andere Indizes angesprochen:
https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_en#new_gpio_map

Zitat
Es gibt ja einige Dateien, init.lua, controller.lua usw. Lade ich nacheinander hoch? Oder lege ich ein verzeichnis fest, die der lualoader automatisch zieht?
Einfach nacheinander hochladen. Reihenfolge ist egal, weil die eh erst mit run() gestartet werden. Die bleiben auch dauerhaft gespeichert.
Es gibt befehle 'List' beim Luauploader, 'cat' bei ESPLorer der zeigt alle Dateien auf dem ESP an.

ZitatHardware: Mein Baustein von Mömax sieht komplett anders aus, die beiden Maikäfer sind zwar auch da, die habe ich rausgelötet. die RGB Kabel habe ich einem 3-beinigem Chip (sieht aus wie ein Transistor) angelötet. Jeweils das Bein, welches zum Maikäfer ging.
Ein Bild wäre nicht schlecht, auch was du wo angelötet hast.


PS:wenn du den noch mal mit nodemcu flashen konntest verstehe ich nicht warum er beim entfernen von GPIO0 heiss werden sollte.



FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

fh168

#8
bild ist hochgeladen, r g b kabel (links) gehen in die gpios rein, rechts rgb zum stripe

heisst das, wenn ich auf dem baustein gpio 4, 5 und 16 stehen habe, brauche ich das genauso in der controller.lua da eintragen?


fhem2015.03.01 14:43:11 2: InfoPanel PanelFlur: command 'trash' no longer supported.
2015.03.01 14:43:47 3: Licht_EG_Stufen low level cmd queue send ERROR cc2333, qlen 1 (reconnect giving up)
2015.03.01 14:43:47 3: Licht_EG_Stufen RGB LW12 set on (0, 0, 100) 0
2015.03.01 14:43:47 1: PERL WARNING: Use of uninitialized value $hueFrom in concatenation (.) or string at ./FHEM/32_WifiLight.pm line 2269.
2015.03.01 14:43:47 1: PERL WARNING: Use of uninitialized value $satFrom in concatenation (.) or string at ./FHEM/32_WifiLight.pm line 2269.
2015.03.01 14:43:47 1: PERL WARNING: Use of uninitialized value $valFrom in concatenation (.) or string at ./FHEM/32_WifiLight.pm line 2269.
2015.03.01 14:43:47 1: PERL WARNING: Use of uninitialized value $hueFrom in concatenation (.) or string at ./FHEM/32_WifiLight.pm line 2272.
2015.03.01 14:43:47 1: PERL WARNING: Use of uninitialized value $satFrom in concatenation (.) or string at ./FHEM/32_WifiLight.pm line 2272.
2015.03.01 14:43:47 1: PERL WARNING: Use of uninitialized value $valFrom in concatenation (.) or string at ./FHEM/32_WifiLight.pm line 2272.
2015.03.01 14:43:47 3: Licht_EG_Stufen set HSV 0, 0, 100 with ramp: 0, flags:
2015.03.01 14:43:48 3: Licht_EG_Stufen low level cmd queue send ERROR 56ffbf40aa, qlen 2 (reconnect giving up)
2015.03.01 14:43:52 3: Licht_EG_Stufen RGB LW12 set off 0
2015.03.01 14:43:52 3: Licht_EG_Stufen RGB LW12 dim 0 0
2015.03.01 14:43:52 3: Licht_EG_Stufen set HSV 0, 0, 0 with ramp: 0, flags:
2015.03.01 14:43:52 3: Licht_EG_Stufen low level cmd queue send ERROR 56000000aa, qlen 1 (reconnect giving up)
2015.03.01 14:43:55 3: Licht_EG_Stufen low level cmd queue send ERROR cc2333, qlen 1 (reconnect giving up)
2015.03.01 14:43:55 3: Licht_EG_Stufen RGB LW12 set on (0, 0, 100) 0
2015.03.01 14:43:55 3: Licht_EG_Stufen set HSV 0, 0, 100 with ramp: 0, flags:
2015.03.01 14:43:55 3: Licht_EG_Stufen low level cmd queue send ERROR 56ffbf40aa, qlen 2 (reconnect giving up)

nach run() im lualoader steht : myNode.lua:1: attempt to call field 'compile' (a nil value)
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

Samsi

Ok, werde ich mir heute Abend mal genauer ansehen, aber auf den ersten blick würde ich sagen, das müsste so auch gehen.
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

Samsi

Zitatheisst das, wenn ich auf dem baustein gpio 4, 5 und 16 stehen habe, brauche ich das genauso in der controller.lua da eintragen?
Nein. Schau noch mal in die Tabelle:
Ich habe GPIO12,13 und 15 verbunden und laut Tabelle:

https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_en#new_gpio_map

Muss dann in der Controller.lua stehen
6,
7,
5



ZitatmyNode.lua:1: attempt to call field 'compile' (a nil value)

Also bei ESPlorer heist das Commando auch File List und das Ergebnis:

init.lua size: 54
telnet.lua size: 596
RGBController.lua size: 677
myNode.lua size: 1087
telnet.lc size: 900
RGBController.lc size: 796

wobei die .lc Dateien durch das node.compile erstellt wird, also frühestens nach dem ersten run().
Aber Durch File List solltest Du erst mal prüfen ob die .lua Dateien auch hochgeladen sind.
Die Filegröße wird bei Dir anders sein, weil meine Dateien schon Code für den Bewegungsmelder enthalten.

ZitatPERL WARNING: Use of uninitialized value $hueFrom in concatenation (.) or string at ./FHEM/32_WifiLight.pm line 2269.
Dazu kann ich nichts sagen, vielleicht lädst du mal das neuste Wifilight.pm aus dem SVN

Meldet sich der ESP auch mit der gleichen Version:

NodeMCU 0.9.5 build 20150213









FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

herrmannj

Die wifilight Warnung ist ok. Beim ersten Start gibt es kein from ...


Vg
Jörg

Samsi

@ fh168
Sorry, der controller scheint nicht zu gehen. Ich hatte noch einen weiteren und aufgemacht sah der so aus wie Deiner. Leider steht auf den kleinen Transistoren nicht viel drauf außer A6.
Ich habe versucht die mit 3.3v anzusteuern, aber dabei sind die wohl kaputt gegangen. Jedenfalls leuchten die bei mir nur noch dauerhaft.

Ich würde von dem Controller erst mal abraten, und auch von den den ich oben bei EBAY verlinkt habe. Der ist nämlich auch nur für 3x2 A aber der den ich ni meinen Bilder verwendet habe hat 3x4A.
Mal sehen ob ich den noch irgendwo auf Ebay finde.
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

fh168

#13
Schluchz, kaputt...
ich habe es mittlerweile hinbekommen, auf dem Chip zu speichern aber immer nur eine datei und dann mit dofile zu starten.
wenn ich die Telnet.lua hochlade, kann reagiert fhem auch drauf und die übergebenen parameter werden in dem lualoader angezeigt.
es ändert sich aber nicht die farbe der stripes.
um später was draus zu lernen...  man uploaded den ganzen schwung von lua-dateien und sagt dann dofile? Oder lädt man die sich einzeln hoch und sagt dann jedesmal dofile?
edit: jetzt läufts... dofile (init.lua) und dann im textfeld run()
nur die LEDS ändern sich nicht :-(

fürs protokoll.. wenn von fhem eine anfrage kommt sieht es dann im lualoader so aus:
> = node.heap()
17360
>
dofile(init.lua)  Sonntag, 1. März 2015  19:42:05

dofile("init.lua")
> run()
Try to open socket ...
> Wifi connected. My IP:
192.168.178.48 255.255.255.0 192.168.178.1
Socket running at : 5577
connect
Received Command:
86 0 0 0 170
disconnect
connect
Received Command:
86 0 0 0 170
connect
Received Command:
204 35 51
disconnect
connect
Received Command:
86 255 191 64 170
disconnect
disconnect
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

Samsi

also das dofile musst Du eigentlich gar nicht machen. Ich habe das abgeschaltet, das er das automatisch ausführt.
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM