====== OPIone - Světla ======
===== WiringPi - ovládání GPIO =====
[[http://www.orangepi.org/Docs/WiringPi.html|dokumentace]] wiring pi
git clone https://github.com/zhaolei/WiringOP.git -b h3
cd WiringOP
chmod +x ./build
sudo ./build
po instalaci precteme a zobrazime gpio piny
gpio readall
inicializace na zapnuti pinu 23 pro vystup
gpio mode 23 out
zapnuti / vypnuti pinu 23
gpio write 23 0 && gpio write 23 1
==== osvedcene "standartni nastaveni" ====
gpio readall
* vyhodi tabulku s cislovanim pinu
* tabulka nize je jako priklad pro zapojeni 8-port rele
^ na rele ^ na opi ^ barva vodice (kvuli homogenite) ^
| GND | 0v | cerny |
| IN1 | wPI 11 | bily |
| IN2 | wPI 24 | sedy |
| IN3 | wPI 23 | ruzovy |
| IN4 | wPI 22 | modry |
| IN5 | wPI 21 | zeleny |
| IN6 | wPI 1 | zluty |
| IN7 | wPI 4 | oranzovy |
| IN8 | wPI 5 | hnedy |
| VCC | 5v | cerveny |
* ostatni zapojeni
^pripojena periferie ^jaky wPI pin pouzit ^barva vodice (kvuli homogenite) ^
|data pro 433Mhz transmitter | wPI 0 | - |
|1wire, napriklad na dallas senzor teploty | wPI 25 | - |
8-port moduly z ciny je lepsi inicializovat po startu, oproti logice rpi maji otoceny statusy, co je low a co high, proto skript nize spoustim po startu. da mmi to i vizualni kontrolu, ze vsechny svetla nabehnou.
#! /bin/sh
# /etc/init.d/relaystart
#
gpio mode 25 out && gpio write 25 0
sleep 1
gpio write 25 1
gpio mode 24 out && gpio write 24 0
sleep 1
gpio write 24 1
gpio mode 23 out && gpio write 23 0
sleep 1
gpio write 23 1
gpio mode 22 out && gpio write 22 0
sleep 1
gpio write 22 1
gpio mode 21 out && gpio write 21 0
sleep 1
gpio write 21 1
gpio mode 1 out && gpio write 1 0
sleep 1
gpio write 1 1
gpio mode 4 out && gpio write 4 0
sleep 1
gpio write 4 1
gpio mode 5 out && gpio write 5 0
sleep 1
gpio write 5 1
Pokud nam vse funguje pres commandlajnu, muzeme pokracovat:
===== MQTT - mosquitto =====
==== instalace ====
Importujeme [[https://mosquitto.org/|repo eclipse]]:
wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
apt-key add mosquitto-repo.gpg.key
Pridame pro apt, podle verze armbianu:
cd /etc/apt/sources.list.d/
wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list
wget http://repo.mosquitto.org/debian/mosquitto-jessie.list
wget http://repo.mosquitto.org/debian/mosquitto-sarge.list
apt-get update
apt-cache search mosquitto
apt-get install mosquitto
==== testování ====
subscribe na vsechny topicy (vetsinou jen pro ucely testu)
mosquitto_sub -v -h broker_ip -p 1883 -t '#'
a z jine masiny, kde mame nainstalovano pustime
mosquitto_pub -t 'test/topic' -m 'hellopico'
===== mosquitto >> command - mqtt-launcher =====
kdyz nam to funguje, spojime obe casti v celek, za pouziti [[https://github.com/jpmens/mqtt-launcher|mqtt-launcher]]
potrebujeme pip
apt-get install python-pip
pip install paho-mqtt
launcher.conf.example prejmenujeme na launcher.conf:
logfile = 'logfile'
mqtt_broker = 'ip-brokera' # default: 'localhost'
mqtt_port = 1883 # default: 1883
mqtt_clientid = 'mqtt-launcher-1'
mqtt_username =
mqtt_password =
topiclist = {
# topic payload value program & arguments
"sys/file" : {
'create' : [ '/usr/bin/touch', '/tmp/file.one' ],
'false' : [ '/bin/rm', '-f', '/tmp/file.one' ],
'info' : [ '/bin/ls', '-l', '/tmp/file.one' ],
},
"prog/pwd" : {
None : [ 'pwd' ],
},
"dev/1" : {
None : [ 'ls', '-l', '/' ],
},
"dev/2" : {
None : [ "/bin/echo", "111", "*", "@!@", "222", "@!@", "333" ],
},
}
editujeme mqtt-launcher.py, protoze musime pridat "self", aby vysledny radek vypadal
def on_connect(self, mosq, userdata, result_code):