Benutzer-Werkzeuge

Webseiten-Werkzeuge


nanopi_neo_air

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+2 an 100%
Taste 2Licht 1+2 aus
Taste 3Licht Terasse an 100%, 70%, 50%
Taste 4Licht Terasse 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
After=manage_pwm.service network.target bluetooth.service

[Service]
Type=simple
ExecStartPre=/bin/sleep 20
ExecStart=/home/USER/enocean/read_enocean_bluetooth > /tmp/enocean.log 2>&1 &

[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 A7PIR/Bewegung
B1 A6PIR/Bewegung innen
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
2licht innen

Bewegungsmelder

Mini IR AM312

  • Betriebsspannung ab 3.3 V
  • keine Einstellmöglichkeiten

HC-SR501 PIR Infrarot-Modul

  • Betriebsspannung 5V-20V, aber auch mit 3,3V verwendbar. Stromversorgung dann über den meist vorhandenen Pin
  • Empfindlichkeit (wenn PIR nach unten zeigt links)

gegen Uhrzeigersinn zunehmende Empfindlichkeit (3-7m)

  • Schaltdauer (wenn PIR nach unten zeigt rechts)

im Uhrzeigersinn zunehmende Zeitspanne (3s bis 5min)

TTL 3.3 V

Spannungsversorgung

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

Lampen:

12V, 0,4A, 2,5 W

I2C_0 3 SDA 5 SCL

I2C_1 8 PCM0_SYNC SCK 9 PCM0_CLK SDA

nanopi_neo_air.txt · Zuletzt geändert: 2024/03/01 21:09 von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki