Benutzer-Werkzeuge

Webseiten-Werkzeuge


nanopi_neo_air

Inhaltsverzeichnis

Ein Nanopi Neo Air steuert das Licht mehrerer Lampen und erkennt die Anwesenheit von Bluetoothgeräten. Bei Anwesenheit bestimmter Blutetoothgeräte und Dunkelheit werden die Lampen auf 15% gedimmt eingeschalten. Beim Auslösen eines Bewegungsmelders werden die Lampen im entsprechenden Umfeld auf 100% hochgeschalten. Zusätzlich ist ein Doppelwippschalter über EnOcean eingebunden, welcher eine der Lampen schalten kann. Wird über den EnOcean-Taster eine Lampe eingeschalten so übersschreibt dies die Voreinstellungen der Lampe nach Bluetoothanwesenheit, Helligkeit und Bewegungsmeldungen.

EnOcean

Verwendung mit EnOcean Pi 868 und Doppelwippschalter.

Tastenbezeichnung:

   1  |  3
   ---+---
   2  |  4
Taste 1Licht 1 an 100%
Taste 2Licht 1 aus
Taste 3Licht 2 an 100%
Taste 4Licht 2 aus
Tasten 2+4Licht 1+2 auf 100% und nach 2 Minuten ausschalten
Tasten 1+3Shutdown/Poweroff

Bluetooth

in Armbian-config bluetooth enabled wget https://bootlin.com/pub/mirror/devmem2.c gcc -o devmem2 devmem2.c

param_uart3_rtscts=1

sudo ln -s /lib/firmware /etc/firmware

libbluetooth-dev installieren

Aufgerufen in /etc/rc.local:

#!/bin/sh
/etc/scripte/devmem2/devmem2 0x1f00060 b 1
echo 205 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio205/direction
echo 0 > /sys/class/gpio/gpio205/value
echo 1 > /sys/class/gpio/gpio205/value
sleep 0.2
echo -en "" > /dev/ttyS3
sleep 1

/usr/bin/hciattach /dev/ttyS3 bcm43xx 1500000

enocean.service

/etc/systemd/system/enocean.service
[Unit]
Description=Enocean

[Service]
Type=oneshot
User=USER
ExecStartPre=/bin/sleep 20
ExecStart=/home/USER/comtest/read_enocean_bluetooth 

[Install]
WantedBy=multi-user.target
gcc read_enocean_bluetooth_le.c -lbluetooth -pthread -o read_enocean_bluetooth -pedantic

Der enocean.service scannt nach bekannten Bluetoothgeräten, erkennt Eingaben über den Taster sowie Aktionen an den Bewegungsmeldern (indem er /tmp/gpio/gpio/(A/B)/X ausliest) und steuert dementsprechend das Licht und/oder sonstige Reaktionen. Zur Steuerung des Lichts werden die Prozentwerte, mit denen die Lampe X leuchten soll nach /tmp/gpio/pwm/X geschrieben.

manage_pwm.service

gcc manage_pwm.c -pthread -o manage_pwm -pedantic

Der Dienst manage_pwm kümmert sich um das Auslesen der GPIO des MCP23017 und das Steuern der PWM des PCA9685.

Dazu liest er die Prozentwerte unter /tmp/gpio/pwm/x aus, steuert entsprechend PWM x des PCA9685 und liest die Zustände an den Ports des MCP23017 und schreibt diese nach /tmp/gpio/gpio/Port/Pin.

MCP23017

Der MCP23017 ist für das Auslesen des Helligkeitssensors und der PIR-Bewegungsmelder zuständig. Es können bis zu 16 Geräte angeschlossen und gesteuert werden. /tmp/gpio/gpio/A/0

Port/PinVerwendungPort/PinVerwendung
B0helligkeit A7bewegung
B1 A6
B2 A5
B3 A4
B4 A3
B5 A2
B6 A1
B7 A0

PCA9685

Über den PCA9685 werden die angeschlossenen Lampen geschalten und gedimmt.

/tmp/gpio/pwm/0

PWMVerwendung
0licht1
1licht2

Mini IR AM312 Bewegungsmelder

Betriebsspannung ab 3.3 V

HC-SR501 PIR Infrarot-Modul

Betriebsspannung 5V

TTL 3.3 V

Mean Well HDR-60-12 Hutschienen-Netzteil (DIN-Rail) 12 V/DC 4.5 A 54 W

nanopi_neo_air.txt · Zuletzt geändert: 2021/03/15 13:08 von andmin