ESP8266/BeamerControl: Unterschied zwischen den Versionen

Aus C3MAWiki
(Quellcode-Quelle aktualisiert, neue Schnittstelle beschrieben INPUT & used/unused)
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 6: Zeile 6:
Es wird die [https://github.com/nodemcu/nodemcu-firmware LUA Firmware] vorausgesetzt.
Es wird die [https://github.com/nodemcu/nodemcu-firmware LUA Firmware] vorausgesetzt.


Mit folgendem Bash-Skript kann die Initialisierungsdatei geschrieben werden.
Mit folgendem [[ESP8266/Programmer]] kann die folgende Initialisierungsdatei '''beamer_init.lua''' geschrieben werden.
<pre>
 
#!/bin/bash
 
DEVICE=/dev/ttyUSB0
SLEEPTIME=0.2
 
function init() {
 
echo "Flashing the Initialization"
 
echo 'file.open("init.lua","w")' >> $DEVICE; sleep $SLEEPTIME
cat <<'EOF' | while read a; do echo "file.writeline([[${a}]])" >> $DEVICE; echo "$a"; sleep $SLEEPTIME; done
print("Booting...")
wifi.setmode(wifi.STATION)
wifi.sta.config("WLAN","passwort")
 
function startTelnetServer(c)
s=net.createServer(net.TCP, 180)
s:listen(2323,function(c)
function s_output(str)
  if(c~=nil)
    then c:send(str)
  end
end
node.output(s_output, 0)
c:on("receive",function(c,l)
  node.input(l)
end)
c:on("disconnection",function(c)
  node.output(nil)
end)
print("Welcome to NodeMcu world.")
end)
print("WiFi up and running")
end
 
m = mqtt.Client("beamer", 120, "", "")
function startMqttServer(c)
m:on("connect", function(con) print ("connected") end)
m:on("offline", function(con) print ("offline") end)
 
m:on("message", function(conn, topic, data)
  print(topic .. ":" )
  if data ~= nil then
    print(data)
    if data == "OFF" and topic == "/room/beamer/command" then
print ("Shutdown beamer")
uart.write(0, "* 0 IR 002\\\r")
    end
            if data == "ON" and topic == "/room/beamer/command" then
print ("Start Beamer")
uart.write(0, "OKOKOKOKOK\\\r")
    end
  end
end)
        m:connect("IP1.IP2.IP3.IP4", 1883, 0, function(conn) print("connected") end)
 
tmr.alarm(2, 2000, 0, function()
m:subscribe("/room/beamer/#",0, function(conn) print("Mqtt - subscribe success") end)
end)
end
 
 
tmr.alarm(1, 1000, 1, function()
  if wifi.sta.getip()=="0.0.0.0" or wifi.sta.getip() == nil then
      print("Connect AP, Waiting...")
  else
      print("Connected")
      print( wifi.sta.getip() )
      startTelnetServer()
      startMqttServer()
      tmr.stop(1)
  end
end)
 
print("Setup UART")
uart.setup(0,9600,8,0,1,0)
 
EOF
# Close the init file
echo "file.close()" >> $DEVICE; sleep $SLEEPTIME
 
echo "========================="
echo "now login on ESP and call"
echo "node.restart()"
 
}
 
if [ "$EUID" -ne 0 ]
  then echo "Please run as root"
  exit
fi
 
init
</pre>


== Schnittstelle ==
== Schnittstelle ==
Zeile 109: Zeile 13:
und '''aus'''-geschalten werden:
und '''aus'''-geschalten werden:
  mosquitto_pub -h IP1.IP2.IP3.IP4 -t "/room/beamer/command" -m "ON"
  mosquitto_pub -h IP1.IP2.IP3.IP4 -t "/room/beamer/command" -m "ON"
Die Bildquelle kann '''ausgewählt''' werden:
mosquitto_pub -h IP1.IP2.IP3.IP4 -t "/room/beamer/command" -m "INPUT"
Sobald ein PC / Notebook den Beamer nutzt wird der Status auf ''used'' gesetzt:
mosquitto_sub -h 10.23.42.10 -v -t "/room/beamer/#"
/room/beamer/state used
entsprechend, wenn niemand den Beamer innerhalb der letzten 10 Sekunden verwendet hat, auf ''unused'':
mosquitto_sub -h 10.23.42.10 -v -t "/room/beamer/#"
/room/beamer/state used


== Hardware-Doku ==
== Hardware-Doku ==
Zeile 117: Zeile 32:
Datei:IMG_20150411_000315.jpg | Schaltung - Unten  
Datei:IMG_20150411_000315.jpg | Schaltung - Unten  
Datei:IMG_20150411_000353.jpg | Alle Bauteile
Datei:IMG_20150411_000353.jpg | Alle Bauteile
Datei:IMG 20150411 001054.jpg | Eingebaut
Datei:IMG_20150411_001054.jpg | Eingebaut
</gallery>
</gallery>
== Quellcode ==
* [https://github.com/C3MA/BeamerControl Projekt auf Github]


== Beamer-Doku ==
== Beamer-Doku ==
* [https://acer-sg.custhelp.com/ci/fattach/get/198628/0/session/L2F2LzEvdGltZS8xNDI4Njc5NDIyL3NpZC9oNkUqSHdqbQ==/filename/RS232_commands_P5271_P5290_P5390W_P5271i.pdf Anleitung mit den RS232 Befehlen]
* [https://acer-sg.custhelp.com/ci/fattach/get/198628/0/session/L2F2LzEvdGltZS8xNDI4Njc5NDIyL3NpZC9oNkUqSHdqbQ==/filename/RS232_commands_P5271_P5290_P5390W_P5271i.pdf Anleitung mit den RS232 Befehlen]

Aktuelle Version vom 7. August 2016, 20:14 Uhr

BeamerControl

Hardware

  • ESP8266
  • MAX3232

Software

Es wird die LUA Firmware vorausgesetzt.

Mit folgendem ESP8266/Programmer kann die folgende Initialisierungsdatei beamer_init.lua geschrieben werden.

Schnittstelle

Der Beamer kann An:

mosquitto_pub -h IP1.IP2.IP3.IP4 -t "/room/beamer/command" -m "OFF"

und aus-geschalten werden:

mosquitto_pub -h IP1.IP2.IP3.IP4 -t "/room/beamer/command" -m "ON"

Die Bildquelle kann ausgewählt werden:

mosquitto_pub -h IP1.IP2.IP3.IP4 -t "/room/beamer/command" -m "INPUT"

Sobald ein PC / Notebook den Beamer nutzt wird der Status auf used gesetzt:

mosquitto_sub -h 10.23.42.10 -v -t "/room/beamer/#"
/room/beamer/state used

entsprechend, wenn niemand den Beamer innerhalb der letzten 10 Sekunden verwendet hat, auf unused:

mosquitto_sub -h 10.23.42.10 -v -t "/room/beamer/#"
/room/beamer/state used


Hardware-Doku

Quellcode

Beamer-Doku