Benutzer-Werkzeuge

Webseiten-Werkzeuge


nanopi_neo_air

Dies ist eine alte Version des Dokuments!


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.1662942897.txt.gz · Zuletzt geändert: 2024/03/01 21:09 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki