add stuff from current page
This commit is contained in:
parent
bd7cbf3c19
commit
b0c1fb400f
65 changed files with 3758 additions and 0 deletions
56
abluftanlage.md
Normal file
56
abluftanlage.md
Normal file
|
@ -0,0 +1,56 @@
|
|||
+++
|
||||
title = "Abluftanlage"
|
||||
+++
|
||||
|
||||
Hier soll unsere Abluftanlage geplant werden.
|
||||
|
||||
## Hacker
|
||||
|
||||
- Wolfi
|
||||
- IO
|
||||
- ...
|
||||
|
||||
## Funktion
|
||||
|
||||
Die Anlage soll folgende Dinge entsorgen:
|
||||
|
||||
- Küchendämpfe
|
||||
- Lötdämpfe
|
||||
- Staub in der Werkstatt
|
||||
|
||||
## Dimensionierung
|
||||
|
||||
Die Anlage soll geräuscharm, effektiv und kostengünstig sein. Am besten
|
||||
verläuft sie ohne Biegungen gerade von der Küche im Flur durch den
|
||||
Lötraum in die Werkstatt aus dem Fenster. Dazu gibt es nur eine kleine
|
||||
Abzweigung in die Sofaecke im Hauptraum.
|
||||
|
||||
<!-- {{attachment:abluft.png}} -->
|
||||
|
||||
## Schwierigkeiten
|
||||
|
||||
- Schalldämpfung
|
||||
- Luftstromführung soll aeordynamsich sein (keine harten T Abzweigungen)
|
||||
- Mehrere Wände müssen durchbrochen werden (ist mit Vermieter abgesprochen)
|
||||
- Ausleitung über ein Fenster in der Werkstatt (statt Fenster isoliertes Brett mit Loch einsetzen)
|
||||
- **Stahlträger** liegen im Weg (muss unterhalb laufen)
|
||||
- Ventilator muss effektiv stark sein
|
||||
- Bleihaltige Lötdämpfe brauchen einen Filter und müssen von Tischhöhe hochgeführt werden
|
||||
- Staubhaltige Werkstattluft braucht einen Filter, der Partikel absondert
|
||||
|
||||
## Infos
|
||||
|
||||
- <http://www.trox-tlt.de/de2/service/download_center/structure/Fachartikel/07fachartikel_grundlagen_der_ventilatorentechnik.pdf>
|
||||
(siehe Seite 11)
|
||||
- <http://www.druckverlust.de/Online-Rechner/Luft.html>
|
||||
|
||||
## Material
|
||||
|
||||
- ca. 8x [Flachkanal 100 x 22 x 5,4 cm, 600 m³ / h](http://www.obi.de/decom/product/OBI_Vierkantrohr_1_m_System_125/5160239)
|
||||
13,99 € (ca. 120 €)
|
||||
- Kurven für System 125
|
||||
- Außenklappe
|
||||
- Filter mit Gitter
|
||||
- Brett mit Ausgangsloch (passend für Fensterrahmen in der Werkstatt)
|
||||
- Schneckenhausventilator
|
||||
- Dunstabzugshaube
|
104
ansprechpartner.md
Normal file
104
ansprechpartner.md
Normal file
|
@ -0,0 +1,104 @@
|
|||
+++
|
||||
title = "Ansprechpartner"
|
||||
+++
|
||||
|
||||
## Neue Member
|
||||
|
||||
Du willst Member werden oder hast bereits den Wisch dafür ausgefüllt?
|
||||
|
||||
- soerface
|
||||
- typ_o (Memberliste, Begrüßungsmail)
|
||||
|
||||
## Rechnungen
|
||||
|
||||
Du hast etwas für flipdot gekauft und das Geld ausgelegt.
|
||||
|
||||
- cfstras
|
||||
|
||||
## Smartmeter / Stromzähler
|
||||
|
||||
Zählt den gesamten Space.
|
||||
|
||||
- Initiator: typ_o
|
||||
- Umsetzung: Wolfi
|
||||
- Code: Diverse
|
||||
- <https://github.com/flipdot/smartmeter>
|
||||
- Läuft auf power-pi.fd
|
||||
- Ansprechpartner:
|
||||
- typ_o
|
||||
- Daten:
|
||||
[stats.flipdot.org](https://stats.flipdot.org/d/000000004/power-consumption?orgId=1)
|
||||
- Daten (raw): <http://infragelb.de/flipdot-power/>
|
||||
|
||||
## Türschloss
|
||||
|
||||
[Projektseite](/projekte/tür/)
|
||||
|
||||
- Initiator: typ_o
|
||||
- Ansprechpartner: Schloss unten (GSM) typ_o, Schloss oben (SSH): malled
|
||||
- Eigener Zugang (nach 3 Monaten Mitgliedschaft):
|
||||
- per Handynummer (unten): typ_o
|
||||
- per SSH (oben): Ldap Freischaltungen: cfstras
|
||||
- per flipdot-App: n.n.
|
||||
|
||||
## CAN-Bus
|
||||
|
||||
[Projektseite](/projekte/canberry/) **Deprecated, wird durch
|
||||
ESP Nodes / MQTT abgelöst.**
|
||||
|
||||
- Initiator: typ_o (Hardware), Daniel Huhn, malled (Software)
|
||||
- Code: <https://github.com/flipdot/Spacecontrol/tree/master/CanBusServer>
|
||||
|
||||
## Heizungssteuerung / Thermostat
|
||||
|
||||
- Initiator: malled
|
||||
- Ansprechpartner: Daniel Huhn, malled
|
||||
- Code: <https://github.com/flipdot/OpenHR20-Firmware>
|
||||
|
||||
## flipdot.org Webseite
|
||||
|
||||
- Initiator: feliks (Blog, Wiki)
|
||||
- Ansprechpartner: feliks (Server Zugang), typ_o (Blog-Content, wenn
|
||||
du was posten willst)
|
||||
- Benutzer-Online-Liste: malled
|
||||
|
||||
## forum.flipdot.org Forum
|
||||
|
||||
- Serveradmin: cfstras
|
||||
- Forenadmin: feliks, cfstras
|
||||
|
||||
## Android App
|
||||
|
||||
- Initiator: Daniel Huhn, Ansprechpartner: soerface
|
||||
- Code: <https://github.com/flipdot/android-app>
|
||||
- App Store:
|
||||
<https://play.google.com/store/apps/details?id=org.flipdot.flipdotapp>
|
||||
|
||||
## Router / Netzwerk / VPN
|
||||
|
||||
- Initiator: malled
|
||||
- Ansprechpartner:
|
||||
- Lokales Netz: malled
|
||||
- Nachrichtenmeisterei-Netzwerk: Wolfi
|
||||
|
||||
## Küche
|
||||
|
||||
[Projektseite](/projekte/küche/)
|
||||
|
||||
- Initiator: kssoz
|
||||
- Ansprechpartner: and, typ_o
|
||||
|
||||
## IoT / IoD / MQTT
|
||||
|
||||
[Projektseite](/projekte/iot/)
|
||||
|
||||
- Ansprechpartner: feliks, typ_o, jplatte
|
||||
|
||||
## flipbot / Sopel
|
||||
|
||||
- Initiator: malled
|
||||
|
||||
## Kodi (ELEC) am Beamer
|
||||
|
||||
- <http://openelec.fd:8080>
|
||||
- Ansprechpartner: malled
|
32
arduino.md
Normal file
32
arduino.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
+++
|
||||
title = "Arduino"
|
||||
+++
|
||||
|
||||
Unter-Seiten:
|
||||
|
||||
* [Puls und Blut-Sauerstoff](puls-und-blut-sauerstoff/)
|
||||
|
||||
Alles um mit dem Mikrocontroller Arduino Projekte zu erstellen
|
||||
|
||||
- Arduino-IDE, die Software (Programm auf dem Computer um die Befehle
|
||||
zu übertragen)
|
||||
- <https://www.arduino.cc/en/Main/Software>
|
||||
- Arduino mit dem Raspberry Pi programmieren (Einstellungen,
|
||||
Installationsguide, Hinweise)
|
||||
- Aktuelle Version für Raspian, ARM 32 runterladen, entpacken,
|
||||
install.sh ausführen (https://www.arduino.cc/en/Main/Software
|
||||
(??? Home Ordner)
|
||||
- Wie installieren <https://www.arduino.cc/en/guide/linux>
|
||||
- Probleme mit billigen Arduino Nano beim übertragen des
|
||||
Programms? -\> Einstellung "Old Bootloder" bei Arduino Boards
|
||||
<https://www.arduino.cc/en/Guide/ArduinoNano>
|
||||
- ? Ubuntu Mint auf Raspberry3 ???
|
||||
<https://ubuntu-mate.org/raspberry-pi/> \_! Experimental Version
|
||||
nehmen bei momentaner 18.04.2 beta, da bug, umd startet nicht bei recommended
|
||||
<https://ubuntu-mate.org/raspberry-pi/ubuntu-mate-18.04.2-beta1-desktop-arm64+raspi3-ext4.img.xz>
|
||||
- ? Ubuntu Server auf Raspberry 4 ???
|
||||
<https://ubuntu.com/download/raspberry-pi>
|
||||
- Raspberry Workstations als PC, für Arduino, um in der Gruppe zu programmieren und zu basteln
|
||||
- 4x Raspi mit Monitor Maus und Tastatur, Arduino Kabel, LAN-Kabel und Hub ???
|
||||
- 1x Raspi um von ihm per LAN zu laden, alle das gleiche Image ???
|
||||
- Projekte und Projektbeschreibungen / Anleitungen
|
20
arduino/puls-und-blut-sauerstoff.md
Normal file
20
arduino/puls-und-blut-sauerstoff.md
Normal file
|
@ -0,0 +1,20 @@
|
|||
+++
|
||||
title = "Arduino: Puls und Blut-Sauerstoff"
|
||||
+++
|
||||
|
||||
Mit dem Arduino kann man ein Puls und Sauerstoff Meßgerät bauen, das per
|
||||
OLED-Display die Werte ausgibt.
|
||||
|
||||
Hier der Versuch: Arduino Puls und Blutsauerstoff Meßgerät OLED-Display,
|
||||
MAX30102 Sensor, Arduino Nano
|
||||
|
||||
- Anleitung:
|
||||
<https://create.arduino.cc/projecthub/jeffreymagee/attiny85-pulse-oximeter-and-photoplethysmograph-e3f907>
|
||||
- \* Quellcode <https://github.com/jeffmer/tinyPulsePPG#readme> Für
|
||||
Nano
|
||||
<https://github.com/jeffmer/tinyPulsePPG/tree/master/nanoPulsePPG>
|
||||
- Probleme mit den Projekt Dateien von Github: Verweis Arduino.h
|
||||
und wire.h machte Probleme auf Raspberry Arduino-IDE.
|
||||
Nachverfolgen ob Fehler im Code oder in der IDE-Installation.
|
||||
|
||||
-> Fehlermeldung beheben: `#include "Arduino.h"` statt `#include <arduino.h>` in `MAX30102.h`
|
8
bildschirm-an-fernseher.md
Normal file
8
bildschirm-an-fernseher.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
+++
|
||||
title = "Bildschirm an Fernseher"
|
||||
+++
|
||||
|
||||
Um den eigenen Bildschirminhalt an den Fernseher zu streamen, einfach
|
||||
mit einem vnc server zum pi-display verbinden. z.B.
|
||||
|
||||
x11vnc -connect pi-display
|
56
binäruhr.md
Normal file
56
binäruhr.md
Normal file
|
@ -0,0 +1,56 @@
|
|||
+++
|
||||
title = "Binäruhr"
|
||||
+++
|
||||
|
||||
Die Binäruhr zeigt die Uhrzeit im Space an. Leider ist der Name ein
|
||||
bisschen fehlleitend, weil sie nicht ganz binär funktioniert.
|
||||
|
||||
## Aufbau
|
||||
|
||||
```
|
||||
+----+----+----+----+----+----+----+----+
|
||||
| B4 | B3 | B2 | B1 | G4 | G3 | G2 | G1 |
|
||||
+----+----+----+----+----+----+----+----+
|
||||
```
|
||||
|
||||
B = blaue LEDs
|
||||
|
||||
G = gelbe LEDs
|
||||
|
||||
## Uhrzeit ablesen
|
||||
|
||||
### Stunden
|
||||
|
||||
Die Stunden werden durch die blauen LEDs dargestellt.
|
||||
Wenn eine LED an ist, hat sie den Wert 1, wenn sie aus ist, hat sie den
|
||||
Wert 0:
|
||||
|
||||
```
|
||||
B4 * 2^4 + B3 * 2^3 + B2 * 2^2 + B1 * 2^1
|
||||
= B4 * 8 + B3 * 4 + B2 * 2 + B1 * 1
|
||||
= Stunden
|
||||
```
|
||||
|
||||
### Minuten
|
||||
|
||||
Die Minuten werden durch die gelben LEDs dargestellt.
|
||||
Je heller eine LED ist, desto näher ist sie dem Faktor 1, je dunkler,
|
||||
desto näher dem Faktor 0. Dadurch lässt sich die Zeit nur sehr grob
|
||||
definieren:
|
||||
|
||||
```
|
||||
G4 * 15 + G3 * 15 + G2 * 15 + G1 * 15
|
||||
```
|
||||
|
||||
### Beispiel
|
||||
|
||||
Hier ein kleines Beispiel, um zu lernen, wie man die Uhrzeit liest:
|
||||
|
||||
```
|
||||
+----+----+----+----+----+----+----+----+
|
||||
| ██ | ██ | | ██ | | ░░ | ██ | ██ |
|
||||
+----+----+----+----+----+----+----+----+
|
||||
```
|
||||
|
||||
Beim Beispiel wäre die Uhrzeit: `8 + 4 + 1 = 13` Stunden und
|
||||
`~7 + 15 + 15 = 37` Minuten, also `13:37`.
|
121
blender-crashkurs.md
Normal file
121
blender-crashkurs.md
Normal file
|
@ -0,0 +1,121 @@
|
|||
+++
|
||||
title = "Blender-Crashkurs"
|
||||
+++
|
||||
|
||||
Hier ein minimales Tutorial, was dir erklärt, wie man sich innerhalb von
|
||||
Blender 2.6+ bewegt.
|
||||
|
||||
## Ansicht ändern
|
||||
|
||||
- \_\_
|
||||
Mittlere Maustaste (MMB)
|
||||
|
||||
\_\_ gedrückt halten, um die Kamera um das zentrierte Objekt zu
|
||||
drehen
|
||||
- \_\_
|
||||
Shift + MMB
|
||||
|
||||
\_\_ gedrückt halten für Panning (seitliches Verschieben)
|
||||
- \_\_
|
||||
Entf (Ziffernblock)
|
||||
|
||||
\_\_ drücken, um die Kamera auf das ausgewählte Objekt zu zentrieren
|
||||
|
||||
- - Vorher \_\_
|
||||
Rechte Maustaste (RMB)
|
||||
|
||||
\_\_ klicken, um ein Objekt anzuwählen
|
||||
- Tasten auf dem Ziffernblock drücken, um die Ansicht zu ändern:
|
||||
- - \_\_
|
||||
1
|
||||
|
||||
\_\_ Frontalansicht
|
||||
- \_\_
|
||||
3
|
||||
|
||||
\_\_ Rechtsaufsicht
|
||||
- \_\_
|
||||
7
|
||||
|
||||
\_\_ Vogelperspektive
|
||||
- \_\_
|
||||
8
|
||||
|
||||
\_\_ Hoch
|
||||
- \_\_
|
||||
2
|
||||
|
||||
\_\_ Runter
|
||||
- \_\_
|
||||
4
|
||||
|
||||
\_\_ Links
|
||||
- \_\_
|
||||
6
|
||||
|
||||
\_\_ Rechts
|
||||
- \_\_
|
||||
5
|
||||
|
||||
\_\_ Wechseln zwischen Perspektive (an/aus)
|
||||
|
||||
## Objekte ändern
|
||||
|
||||
- \_\_
|
||||
Rechte Maustaste (RMB)
|
||||
|
||||
\_\_ klicken, um ein Objekt anzuwählen
|
||||
- \_\_
|
||||
G
|
||||
|
||||
\_\_ drücken, um in den *Bewegungsmodus* zu kommen.
|
||||
|
||||
- - In diesem Modus \_\_
|
||||
X
|
||||
|
||||
\_\_, \_\_
|
||||
|
||||
Y
|
||||
|
||||
\_\_ oder \_\_
|
||||
|
||||
Z
|
||||
|
||||
\_\_ drücken, um auf einer der Achsen einzurasten
|
||||
- \_\_
|
||||
Shift + X
|
||||
|
||||
\_\_, \_\_
|
||||
|
||||
Shift + Y
|
||||
|
||||
\_\_ und \_\_
|
||||
|
||||
Shift + Z
|
||||
|
||||
\_\_ ausprobieren
|
||||
- \_\_
|
||||
Shift
|
||||
|
||||
\_\_ gedrückt halten, während man die Maus bewegt, sorgt für
|
||||
genauere Bewegungen
|
||||
- \_\_
|
||||
Strg
|
||||
|
||||
\_\_ gedrückt halten, während man die Maus bewegt, sorgt
|
||||
fürs Bewegen im Raster
|
||||
|
||||
` * __`
|
||||
|
||||
Shift + Strg
|
||||
|
||||
\_\_ für ein genaueres Raster
|
||||
|
||||
- \_\_
|
||||
R
|
||||
|
||||
\_\_ drücken, um in den *Rotationsmodus* zu gelangen
|
||||
- \_\_
|
||||
S
|
||||
|
||||
\_\_ drücken, um in den *Skalierungsmodus* zu gelangen
|
17
bulb-cube.md
Normal file
17
bulb-cube.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
+++
|
||||
title = "BulbCube"
|
||||
+++
|
||||
|
||||
Einige mögen schon mal einen LED-Cube gesehen haben. Letztes Jahr habe
|
||||
ich selbst mal einen 4x4x4 Cube aufgebaut.
|
||||
|
||||
<!-- [{{attachment:LED-Cube.jpg|attachment:bulbcube01.jpg|width="400"}}](attachment:LED-Cube.jpg) -->
|
||||
|
||||
Jetzt will ich das Ganze mit Glühlampen aufbauen. Erst mal mit so
|
||||
kleinen 3,5 V-Lämpchen, um Erfahrung mit der Ansteuerung von Glühlampen
|
||||
in kubischer Anordnung zu sammeln. Im nächsten Schritt dann mit so schön
|
||||
großen 60..100 W - Glühbirnen...
|
||||
|
||||
<!-- [{{attachment:bulbcube01.jpg|attachment:bulbcube01.jpg|width="400"}}](attachment:bulbcube01.jpg) -->
|
||||
|
||||
<!-- [{{attachment:bulbcube01.jpg|attachment:bulbcube01.jpg|width="400"}}](attachment:bulbcube02.jpg) -->
|
96
can-raspi.md
Normal file
96
can-raspi.md
Normal file
|
@ -0,0 +1,96 @@
|
|||
+++
|
||||
title = "CAN-Raspi"
|
||||
+++
|
||||
|
||||
<!-- {{attachment:Canberry.jpg}} -->
|
||||
|
||||
Über der Eingangstür ist auf einer langen DIN-Hutschine installiert:
|
||||
|
||||
- sieben Relais
|
||||
- ein Raspberry Pi
|
||||
- ein Raspberry nach CAN-Adapter mit Optokoppler (Der Adapter passt
|
||||
nur die Buspegel an und enthält keine Logik)
|
||||
- ein Steckernetzteil 5 V für den Raspberry
|
||||
- Ein Hutschinennetzteil 24 V für die Relais
|
||||
- Ein Hutschinennetzteil 12 V für die Spannung auf dem CAN Bus
|
||||
|
||||
Der Raspberry sendet auf seiner seriellen Schnittstelle in einem simplen
|
||||
Protokoll im Klartext lesbare Befehle in ASCII an die Clients auf dem
|
||||
CAN Bus (AVR uC mit CAN BUs Adapter)
|
||||
|
||||
Die Ankopplung des CAN Busadapters ist über Optokoppler realisiert.
|
||||
|
||||
Auf dem Bus wird auch eine Mit 2 A belastbare Spannung von 12 V
|
||||
mitgeführt, aus dieser Spannung machen sich die CAN Bus Clients ihre
|
||||
Betriebsspannung. Vom Pi auf den Bus gesendete Bits werden direkt sofort
|
||||
auch wieder vom Pi empfangen, weil der Bus für Hin- und Rückweg nur
|
||||
einen Kanal hat.
|
||||
|
||||
[Github](https://github.com/flipdot/Spacecontrol)
|
||||
|
||||
<!-- {{attachment:CANBerry Aufbau.jpg}} -->
|
||||
|
||||
## Client Befehle
|
||||
|
||||
### Digitale outputs setzen
|
||||
|
||||
:clientname setport n m
|
||||
n [0..7] Pornummer
|
||||
m [0..1] Portzustand
|
||||
|
||||
Antwort
|
||||
|
||||
n [0..1] Portzustand
|
||||
|
||||
### Digitale inputs lesen
|
||||
|
||||
:clientname getport n
|
||||
n [0..7] Pornummer
|
||||
|
||||
Antwort
|
||||
|
||||
n [0..1] Portzustand
|
||||
|
||||
### Analoge inputs lesen
|
||||
|
||||
:clientname getana n
|
||||
n [0..7] Pornummer
|
||||
|
||||
Antwort
|
||||
|
||||
n [0..1023] Spannungswert in 5V / 1024, Uref = Ub Controllerboard
|
||||
|
||||
### Temperatur lesen
|
||||
|
||||
:clientname gettemp
|
||||
|
||||
Antwort
|
||||
|
||||
n [-200..800] m [-200..800] o [-200..800] Temperatur in 1/10 °C, max drei Sensoren [[DS18B20]] pro Controller
|
||||
|
||||
### RGB Lampe
|
||||
|
||||
:clientname setrgb n m o
|
||||
n [0..255] roter Helligkeitswert, linear, Gammakorrektur im Controller
|
||||
m [0..255] grüner Helligkeitswert, linear, Gammakorrektur im Controller
|
||||
o [0..255] blauer Helligkeitswert, linear, Gammakorrektur im Controller
|
||||
|
||||
Antwort
|
||||
|
||||
ok
|
||||
|
||||
### Servos
|
||||
|
||||
:setservo n m
|
||||
n [1..5] Servonummer (### Wird noch auf 0..4 geändert)
|
||||
m [0..255] Servoposition, typischer Weise mit engeren Grenzen
|
||||
|
||||
Antwort
|
||||
|
||||
ok
|
||||
|
||||
## Busankopplung RasPi - CAN
|
||||
|
||||
Optokoppler: 4N25
|
||||
|
||||
<!-- {{attachment:CAN-Busankopplung_2.jpg}} -->
|
85
canberry.md
Normal file
85
canberry.md
Normal file
|
@ -0,0 +1,85 @@
|
|||
+++
|
||||
title = "CANberry"
|
||||
+++
|
||||
|
||||
<!-- {{attachment:Canberry.jpg|CANberry}} -->
|
||||
|
||||
Am CANberry auf der Hutschiene hängt an seiner seriellen Schnittstelle via
|
||||
Optokoppler ein CAN-Bus Receiver. Auf dem Bus wird auch 12 V mitgeführt, aus
|
||||
dieser Spannung machen sich die CAN Bus Clients ihre Betriebsspannung. Vom Pi
|
||||
auf den Bus gesendete Bits werden direkt sofort auch wieder vom Pi empfangen,
|
||||
weil der Bus für Hin- und Rückweg nur einen Kanal hat.
|
||||
|
||||
- [Spacecontrol @ github](https://github.com/flipdot/Spacecontrol)
|
||||
|
||||
## Client Befehle
|
||||
|
||||
### Digitale outputs setzen
|
||||
|
||||
:clientname setport n m n [0..7] Pornummer m [0..1] Portzustand
|
||||
|
||||
Antwort
|
||||
|
||||
n [0..1] Portzustand
|
||||
|
||||
### Digitale inputs lesen
|
||||
|
||||
:clientname getport n n [0..7] Pornummer
|
||||
|
||||
Antwort
|
||||
|
||||
n [0..1] Portzustand
|
||||
|
||||
### Analoge inputs lesen
|
||||
|
||||
:clientname getana n n [0..7] Pornummer
|
||||
|
||||
Antwort
|
||||
|
||||
n [0..1023] Spannungswert in 5V / 1024, Uref = Ub Controllerboard
|
||||
|
||||
### Temperatur lesen
|
||||
|
||||
:clientname gettemp
|
||||
|
||||
Antwort
|
||||
|
||||
n [-200..800] m [-200..800] o [-200..800] Temperatur in 1/10 °C, max drei Sensoren [[DS18B20]] pro Controller
|
||||
|
||||
### RGB Lampe
|
||||
|
||||
:clientname setrgb n m o n [0..255] roter Helligkeitswert, linear, Gammakorrektur im Controller m [0..255] grüner Helligkeitswert, linear, Gammakorrektur im Controller o [0..255] blauer Helligkeitswert, linear, Gammakorrektur im Controller
|
||||
|
||||
Antwort
|
||||
|
||||
ok
|
||||
|
||||
### Servos
|
||||
|
||||
:setservo n m n [1..5] Servonummer (### Wird noch auf 0..4 geändert) m [0..255] Servoposition, typischer Weise mit engeren Grenzen
|
||||
|
||||
Antwort
|
||||
|
||||
ok
|
||||
|
||||
### Heizung
|
||||
|
||||
Clientname: theemin
|
||||
|
||||
Aktuelle Temperatur auslesen. Angabe in 1/100C
|
||||
|
||||
:theemin getActTemp
|
||||
|
||||
Aktuelle Soll Temperatur auslesen. Anagebe in 1/100C
|
||||
|
||||
:theemin getTargetTemp
|
||||
|
||||
Soll Temperatur setzen. Param xx: ((soll)\*2) in hex. Alle Hexwerte in
|
||||
Kleinbuchstaben. z.B. Soll = 20C. 20\*2 = 40; 40=28h
|
||||
|
||||
:theemin setTargetTemp xx
|
||||
|
||||
## Busankopplung RasPi - CAN
|
||||
|
||||
Optokoppler: 4N25
|
||||
<!-- `{{attachment:CAN-Busankopplung_2.jpg|CAN Busankopplung}}` -->
|
19
cnc-fräse.md
Normal file
19
cnc-fräse.md
Normal file
|
@ -0,0 +1,19 @@
|
|||
+++
|
||||
title = "CNC-Fräse"
|
||||
+++
|
||||
|
||||
Do it
|
||||
|
||||
* [HowTo](how-to/) Anleitung zur Einrichtung und Benutzung
|
||||
* [Schnittwerte](schnittwerte/) Erfahrungswerte, getestete Einstellungen
|
||||
|
||||
Dok it
|
||||
|
||||
* [Logbuch](logbuch/) Probleme, Anregungen, Schäden bei der Nutzung
|
||||
* [Linkliste](linkliste/)
|
||||
* [Beschaffung](beschaffung/) Archiv der Entscheidungsfindung und Einrichtung
|
||||
* [Material](material/)
|
||||
|
||||
Want it
|
||||
|
||||
* [Platinen-Fräsen](platinen-fräsen/)
|
156
cnc-fräse/beschaffung.md
Normal file
156
cnc-fräse/beschaffung.md
Normal file
|
@ -0,0 +1,156 @@
|
|||
+++
|
||||
title = "CNC-Fräse: Beschaffung"
|
||||
+++
|
||||
|
||||
### Tasks beim Aufbau
|
||||
|
||||
- ~~(Fräse holen)~~
|
||||
- ~~(Dateblatt einfordern)~~ (Eckard angeschrieben),
|
||||
- Verfahrwege, *Steps / mm!* BZT: 1 Umdrehung / 5 mm Verfahrweg auf allen Achsen
|
||||
- ~~(Tisch im Keller frei räumen)~~
|
||||
- ~~(Tisch an die Wand dübeln)~~ nicht nötig, alles ruhig
|
||||
- ~~(Elektro bis in die Tischecke legen )~~
|
||||
- ~~(Anzahl Steckdosen festlegen )~~
|
||||
- ~~(Verlängerungs-Steckerleisten an die Wand dübeln )~~
|
||||
- ~~(Licht. Viel Licht)~~
|
||||
- Netzwerk aus dem Space in den Keller (nice to have)
|
||||
- ca 60 m Kabel nötig
|
||||
- ~~(G-Code Interpreter (GRBL) aufbauen)~~
|
||||
- ~~(Motortreiber und G-Gode Interpreter verbinden)~~
|
||||
- ~~(Stromversorgung für die beiden Komponenten )~~
|
||||
- ~~(Testlauf mit extra Motoren auf dem Tisch ohne Fräsenmechanik)~~
|
||||
- ~~(alles schön in ein Gehäuse & verkabel)~~
|
||||
- ~~(Fräse elektrisch anschließen an Treiber)~~
|
||||
- ~~(Platz für Steuerung unter dem Fräsentisch (Lüftung?)
|
||||
Schubladenauszug?!)~~
|
||||
- ~~(Notaus-Kette bauen)~~ könnte noch einer dazu, wenn das Pendant
|
||||
fertig ist
|
||||
- ~~(GRBL auf die Maschinenphysik einstellen)~~
|
||||
- ~~(nach geeigneter CAM Software suchen)~~ ESTLCAM
|
||||
- ~~(einen Rechner auswählen / vorbereiten)~~
|
||||
- Dell NB
|
||||
- An die Wand? Schublade? Schwenkarm?
|
||||
- Datenlogger für Feuchte bauen und im Keller deponieren - wirds da rosten?
|
||||
|
||||
### Kaufen / besorgen / erbitten:
|
||||
|
||||
- ~~(Doppelklebeband )~~
|
||||
- ~~(Spachtel )~~
|
||||
- ~~(Opferplatte 3 x MDF und passende, längere Maschinenschrauben)~~
|
||||
- Nächstes mal kein MDF nehmen, fusselt und quillt, sondern
|
||||
Siebdruckplatten!
|
||||
- ~~(Fräser (Material? HSS? .. Jan fragen!) )~~
|
||||
- ~~(Bohrersatz (Holz und Metall) )~~
|
||||
- ~~(Schieblehre )~~
|
||||
- Stahllineal
|
||||
- ~~(Werkzeug für Nutenstein-Schrauben & Spannzangen )~~
|
||||
- ~~(Inbusschlüsselsatz )~~
|
||||
- ~~(Gabelschlüsselsatz )~~
|
||||
- Flachzange
|
||||
- Seitenschneider
|
||||
- Kreuz- und Flachschraubendreher
|
||||
- ~~(Akkuschrauber)~~
|
||||
- Säge:
|
||||
- Einstreich- oder Fuchsschwanz
|
||||
- ~~(Metall-Bügelsäge)~~
|
||||
- Feilen
|
||||
- ~~(Schlüsselfeilen)~~
|
||||
- Schlichtfeilen
|
||||
- Werkbank-Schraubstock, Beilagen
|
||||
|
||||
### Betrieb
|
||||
|
||||
Kress Spindel
|
||||
[Service](http://www.kress-elektrik.com/Kundendienst-Kundencenter.267.0.html)
|
||||
|
||||
### Entscheidung
|
||||
|
||||
- [triple Beast incl.
|
||||
NT](http://www.sorotec.de/shop/CNC-Steuerungstechnik/DriveSets/DriveSet-Triple-BEAST.html)
|
||||
- [BZT-PFL-3
|
||||
0604](http://www.bzt-cnc.de/de/shop/cnc-fraesmaschinen/82-baureihe-pfl-3/724-pfl-3-0604)
|
||||
incl. Zubehör und [Kress
|
||||
Spindel](http://www.bzt-cnc.de/de/shop/hf-spindeln/85-kress/507-fraes-spindel-kress-1050-w-oder-5000-25000-rpm)
|
||||
- Mach3 via parallele Schnittstelle
|
||||
- Dell NB
|
||||
|
||||
Das Setup mit Mach 3 ist für den Anfang gedacht, später könnte ein GRBL
|
||||
Interpreter auf einem AVR und quelloffene Software günstiger sein.
|
||||
|
||||
<http://www.precifast.de/triple-beast/>
|
||||
<http://www.precifast.de/pc-fuer-mach-3-vorbereiten/>
|
||||
|
||||
### Feature requests
|
||||
|
||||
- Bearbeitbares Material: Bis 2,5mm Al,
|
||||
- Arbeitsbereich >= 400 x 600, Z?
|
||||
- Saugeranschluß
|
||||
- Spindel besser als Proxxon, Kress Fräse oder gleich HF Spindel
|
||||
- Steuerung: So simpel wie möglich, weil hier der meiste Lernaufwand
|
||||
und Hürde füe Neulinge liegt (vgl. grbl Steuerung aus c\'t Hacks)
|
||||
|
||||
### Bauen, Bausatz, Fertig?
|
||||
|
||||
- soll schnell fertig sein
|
||||
- niemand der viel Zeit zum konstruieren hat
|
||||
- mechanische Skills begrenzt
|
||||
- Werkzeug extrem begrenzt
|
||||
|
||||
================
|
||||
|
||||
Fertig kaufen
|
||||
|
||||
### Etat
|
||||
|
||||
- 1k Spende
|
||||
- 1,5k Eigenmittel
|
||||
|
||||
### Links
|
||||
|
||||
- [1](https://www.stepcraft-systems.com/)
|
||||
- [2](http://www.ebay.de/itm/NEU-3-ACHSEN-6040-CNC-ROUTER-GRAVIERGERAT-BOHREN-FRASEN-GRAVURMASCHINE-b8-/290771237919)
|
||||
- [3](http://www.sorotec.de/shop/index.php)
|
||||
- [4](http://www.cnc-kompakt.de/index.php)
|
||||
- [5](http://www.erz-fraesmaschinen.de/)
|
||||
- [6](http://www.team-haase.de/)
|
||||
- [7](http://cnc-modellbau.net/html/cnc-maschinen.html)
|
||||
- [8](http://www.openbuilds.com/builds/openbuilds-ox-cnc-machine.341/)
|
||||
- [9](http://www.openbuilds.com/builds/routy-cnc-router-v-slot-belt-pinion.101/)
|
||||
- [10](http://myhobby-cnc.de/?Projekte:WoodPecker_ALU)
|
||||
|
||||
### Vergleich
|
||||
|
||||
\|\|\<#fbe380>Hersteller \|\|\<#fbe380>Modell
|
||||
\|\|\<#fbe380>Arbeitsbereich \|\|\<#fbe380>Arbeitsspindel
|
||||
\|\|\<#fbe380>Kosten \|\|\<#fbe380>Kommentar \|\| \|\|Stepcraft
|
||||
\|\|[600](https://www.stepcraft-systems.com/cnc-3d-systeme/stepcraft-600)
|
||||
\|\|420 x 600 x 80 \|\|keine \|\|1200 Bausatz \|\| \|\| \|\|Stepcraft
|
||||
\|\|[600 CK RTR mit
|
||||
USB](https://www.stepcraft-systems.com/cnc-3d-systeme/stepcraft-600)
|
||||
\|\|420 x 600 x 80 \|\|keine \|\|1500 fertig \|\| \|\| \|\|China
|
||||
\|\|[6040](http://www.ebay.de/itm/NEU-3-ACHSEN-6040-CNC-ROUTER-GRAVIERGERAT-BOHREN-FRASEN-GRAVURMASCHINE-b8-/290771237919)
|
||||
\|\|750 x 450 x 20 \|\|0.8KW VFD spindle \|\|1000 + 640 Versand?
|
||||
\|\|Ungenaue Teile, Probleme beim Zusammenbau, mechanisch weich \|\|
|
||||
\|\|BZT
|
||||
\|\|[BZT-PF750-P](http://www.sorotec.de/shop/product_info.php/info/p2759_bzt-pf750-p---kugelumlaufspindeln.html)
|
||||
\|\|650 x 430 x 110 \|\|keine \|\|2380 \|\|In der ct Hacks recht gut
|
||||
besprochen\<\
|
||||
\>cncecke
|
||||
[1](http://www.cncecke.de/forum/showpost.php?p=606959&postcount=25),
|
||||
[2](http://www.cncecke.de/forum/showpost.php?p=377197&postcount=5)
|
||||
\|\| \|\|ERZ \|\|[NC
|
||||
500](http://www.erz-fraesmaschinen.de/html/erz-nc_500.html)
|
||||
\|\|620 x 420 x 120 \|\|keine \|\|1900 \|\| \|\| \|\|Haase \|\|[CUT
|
||||
2500M](http://www.team-haase.de/maschinen/cut2500) \|\|600 x
|
||||
420 x 110 \|\|keine \|\|2600 Bausatz ohne Elektronik \|\| \|\|
|
||||
\|\|Pro-Basic \|\|[H
|
||||
06/05](http://www.cnc-modellbau.net/shop/product_info.php?pName=portal-fräse-probasic-h-0605-fertig-aufgebaut&cName=cncmaschinen-probasic-0605)
|
||||
\|\|600 x 500 x 100 \|\|keine \|\|2100 \|\|Pro-Basic mechanisch weich
|
||||
(Forum) \|\| \|\|Pro-Basic \|\|[H
|
||||
10-05](http://www.cnc-modellbau.net/shop/product_info.php?pName=probasich-1005-montiert&cName=cncmaschinen-probasic-1005)
|
||||
\|\|1000 x 500 x 100 \|\|keine \|\|2150 \|\| \|\|
|
||||
|
||||
### Motorsteuerungen
|
||||
|
||||
Empfehlung von M aus der Kommune: [Triple
|
||||
Beast](http://benezan-electronics.de/shop/product_info.php?cPath=8&products_id=61)
|
71
cnc-fräse/how-to.md
Normal file
71
cnc-fräse/how-to.md
Normal file
|
@ -0,0 +1,71 @@
|
|||
+++
|
||||
title = "Fräse How To - Einrichten leicht gemacht"
|
||||
+++
|
||||
|
||||
## Opferplatte aus MDF
|
||||
|
||||
* Die Platte ist aus MDF, 17 mm dick, 600 mm x 780 mm.
|
||||
* Wird mit 4 Gleitmuttern und 4 Stück M6 Inbusschrauben (15 mm Gewindelänge) auf der Nutenplatte befestigt.
|
||||
* Bohrdurchmesser für die Schrauben 7 mm.
|
||||
* Senkung mit einem 10 mm Holzbohrer 6 mm tief - dann sind die Schraubenköpfe nicht im Weg.
|
||||
|
||||
## Werkstück (Plattenmaterial) - Befestigung auf der Opferplatte
|
||||
|
||||
* Fräsbahn auf Papier ausdrucken - dann lassen sich die Befestigungspunkte sicher so wählen, dass man nicht mit dem Fräser in die Schrauben fährt.
|
||||
* Löcher in Werkstück bohren für die Spax - Schrauben. (Unterlage aus Restholz)
|
||||
* Werkstück festspaxen. Obacht: Wenn Schrauben zu lang, wird die Nutenplatte darunter beschädigt.
|
||||
|
||||
## Erklärbär - Video zum Einrichten der Fräse
|
||||
|
||||
https://youtu.be/uf1zHfzn9n8
|
||||
|
||||
## Spannzange und Fräser (Maschine stromlos)
|
||||
|
||||
* Zum Fräser passende Spannzange wählen. Obacht: Z.B die Fräser mit den bunten Ringen haben keinen 3 mm Schaft, sondern 1/8" = 3,175 mm. Dazu gibt's die passende 1/8" - Freedom - Unit - Spannzange.
|
||||
* Den Konus der Spannzange möglichst nicht mit schwitzigen Fingern berühren. Rost -> schlecht.
|
||||
* Werkzeug - Einbau
|
||||
* Spannzange in die Überwurfmutter drücken. Obacht: Die Spannzange muss ganz einrasten, und unten bündig mit der Mutter abschließen, sonst Verklemmungs - Gau.
|
||||
* Fräser in die Spannzange schieben. Nicht unnötig weit herausstehen lassen, sonst Gefahr: Vibration, schlechtes Fräsbild, Bruch.
|
||||
* Spannzange in den Spindelmotor schrauben.
|
||||
* Verriegelungstaste unten am Motor drücken und Spindel drehen, bis Einrasten spürbar ist
|
||||
* Spannzange mit 17 mm Gabelschlüssel festschrauben. Mit Gefühl, auch mäßig stark angezogen reicht, da Konus.
|
||||
* Werkzeug - Ausbau
|
||||
* Verriegelungstaste unten am Motor drücken und Spindel drehen, bis Einrasten spürbar ist
|
||||
* Spannzange mit dem 17 mm Gabelschlüssel losschrauben. Obacht: Nach dem ersten Lösen kommt nochmal eine "schwere Stelle", wenn die Spannzange aus dem Konus gezogen wird. Mutig weiterschrauben.
|
||||
* Fräser aus der Spannzange ziehen
|
||||
* Spannzange aus der Mutter drücken. Tricky. Mit dem Daumen von der unterseite her gehts am besten.
|
||||
|
||||
## Arbeitsbereich
|
||||
|
||||
Der maximale Verfahrweg wurde durch versetzen der Endschalter nochmal etwas erweitert und beträgt jetzt
|
||||
|
||||
* Y: -600 mm
|
||||
* X: -530 mm
|
||||
|
||||
Direkt über diesen Werten greifen die "Soft Limits", die im GRBL Controller eingetragen sind.
|
||||
|
||||
## Nullpunkte einrichten
|
||||
|
||||
* Maschinennullpunkt anfahren: Das ist der $H Befehl in GRBL
|
||||
* Werkstücknullpunkt anfahren
|
||||
* Maschine verfahren. Obacht: Default ist Zoll, Risiko.
|
||||
* X und Y nach Zeichnung anfahren und "Nullen"
|
||||
* Z nullen:
|
||||
* Spindelmotor einschalten
|
||||
* An Werkstückoberfläche annähern
|
||||
* in 0,05 mm Schritten weiter, bis ein erstes Kratzen zu hören
|
||||
* Reset Z
|
||||
|
||||
## Fräsprogramm ablaufen lassen
|
||||
|
||||
* Ich habe am Anfang oft die Z-Achse z.B. 20 mm ''über ''der Werkstückoberfläche genullt, und dann das Programm mal durchlaufen lassen, um Denkfehler zu finden
|
||||
* File Mode, Send
|
||||
* Wenn der Nullpunkt so gewählt wurde, dass das Werkstück zu groß für den Bearbeitungsraum ist, dann stoppt die Bearbeitung vor den Grenzen der Maschine ohne aussagekräftige Fehlermeldung
|
||||
* Gelegentlich trat ein "Empty Stream" (sinngemäß) - Fehler auf, Bearbeitung musste wieder von Anfang an gestartet werden. Ursache unklar.
|
||||
|
||||
## Tips 'n Tricks
|
||||
|
||||
* An den Werkstücken "Stege" im CAM programmieren, damit die Teile nicht gänzlich losgefräst werden. Das Festhalten der Frästeile ist unsicher.
|
||||
* Tip für Fräswerkstücke, die nicht in den Arbeitsbereich passen (Passbolzen zum Wenden)
|
||||
* Mindestens zwei Bohrungen so anlegen, dass sie auch bei 180 Drehung die Position behalten (spiegelsymmetrisch). Dann bei der ersten Werkstückhälfte ganz durch das Werkstück und fast ganz durch die Opferplatte fräsen (bohren). Nach dem Wenden lässt sich das Werkstück dann z.B. mit zwei Bohrern als Bolzen vor dem Spannen ausrichten. Wenn man 6 mm Bohrungen brauchen kann, dann eignen sich die Bolzen von Ikea-Ivar-Regalen ganz hervorragend. Sind welche in der Werkstatt.
|
||||
* Das Verfahren ist auch sinnvoll, wenn Vorder- und Rückseite passgenau bearbeitet werden müssen.
|
5
cnc-fräse/linkliste.md
Normal file
5
cnc-fräse/linkliste.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
+++
|
||||
title = "CNC-Fräse: Linkliste"
|
||||
+++
|
||||
|
||||
- shapeoko [online resources](http://www.shapeoko.com/wiki/index.php/Online_resources)
|
88
cnc-fräse/logbuch.md
Normal file
88
cnc-fräse/logbuch.md
Normal file
|
@ -0,0 +1,88 @@
|
|||
+++
|
||||
title = "CNC-Fräse: Logbuch"
|
||||
+++
|
||||
|
||||
## 2021-10-12 Spindel mit Notaus gekoppelt \[typ_o, malled\]
|
||||
|
||||
- Relais1 -\> Spindelmotor. Relaisfreigabe evtl. noch per gcode aktivieren.
|
||||
- Relais2 -\> Steckdose für Staubsauger o.Ä.. Steuerung über gcode (M8,M9)
|
||||
|
||||
## 2015-06-28 Maschine stoppt unerklärlicher weise
|
||||
|
||||
- Mit einem GCODE File Probleme <!-- (<attachment:Abziehsteinhalter01.nc>) -->.
|
||||
Maschine stoppte jedes Mal an etwa der gleichen Stelle. Nicht klar warum, später prüfen
|
||||
([Forum](https://www.bountysource.com/issues/1383965-grbl-0-9c-stop-working-after-batch-some-gcode-commands)) -
|
||||
Geklärt: Die Fräspfade lagen ausserhalb des Bearbeitungsraumes -
|
||||
würden die Softlimits, die im GRBL Setup eingestellt sind,
|
||||
überfahren, stoppt GRBL die Abarbeitung - allerdings ohne Fehlermeldung.
|
||||
|
||||
- Achsgeschwindigkeiten - Limits weiter hochgestellt, weil ich mal mit
|
||||
2m/s probieren wollte.
|
||||
- \$110=2000.000 (x max rate, mm/min)\<\
|
||||
\>\$111=2000.000 (y max rate, mm/min)\<\
|
||||
\>\$112=800.000 (z max rate, mm/min)
|
||||
- Die Fräser, die wir von BZT bekommen haben sind alle HSS, und nicht
|
||||
gut für Holz, weil sehr wärmeempfindlich (Hier braucht man
|
||||
Hartmetall, HM)
|
||||
|
||||
## 2015-06-21 Lüfter, Soft Limits, Rampen und max speed
|
||||
|
||||
- Unter dem Triple Beast PC Lüfter angeschraubt - alles cool
|
||||
- für x und y Achse soft Limits eingestellt, dass (wenn vorher der
|
||||
Homing Cycle "\$H" den mechanischen Maschinen-Nullpunkt korrekt
|
||||
gesetzt hat) nicht in die mechanischen Begrenzungen (bei -x und -y
|
||||
maximal weit vom Nullpunkt weg) gefahren werden kann. Für Z Achse
|
||||
ist so ein Limit schwierig, da Werkzeuglänge ja variiert
|
||||
- Geschwindigkeit und Beschleunigung hochgedreht - jetzt gehts fix.
|
||||
- Mit der schnellen Geschwindigkeit auch für homing seek (\$25) bricht
|
||||
der Homing Cycle jetzt auch nicht mehr ab
|
||||
- [UnicersalGCODESender](UnicersalGCODESender)
|
||||
- Die Return to Zero Funktion ist nach wie vor kaputt. Werde
|
||||
versuchen, das mit einem Makro zu machen
|
||||
- **Obacht Bug:** Wenn die Steurung mit Cursortasten aktiv ist,
|
||||
und man in einem Datei öffnen Dialog mit den Tasten zu
|
||||
navigieren versucht, *bewegt sich die Maschine!*
|
||||
|
||||
GRBL 0.9g Config
|
||||
|
||||
```
|
||||
>>> $$
|
||||
$0=10 (step pulse, usec)
|
||||
$1=25 (step idle delay, msec)
|
||||
$2=0 (step port invert mask:00000000)
|
||||
$3=6 (dir port invert mask:00000110)
|
||||
$4=0 (step enable invert, bool)
|
||||
$5=0 (limit pins invert, bool)
|
||||
$6=0 (probe pin invert, bool)
|
||||
$10=3 (status report mask:00000011)
|
||||
$11=0.020 (junction deviation, mm)
|
||||
$12=0.002 (arc tolerance, mm)
|
||||
$13=0 (report inches, bool)
|
||||
$14=1 (auto start, bool)
|
||||
$20=1 (soft limits, bool)
|
||||
$21=1 (hard limits, bool)
|
||||
$22=1 (homing cycle, bool)
|
||||
$23=0 (homing dir invert mask:00000000)
|
||||
$24=100.000 (homing feed, mm/min)
|
||||
$25=1000.000 (homing seek, mm/min)
|
||||
$26=250 (homing debounce, msec)
|
||||
$27=1.000 (homing pull-off, mm)
|
||||
$100=400.000 (x, step/mm)
|
||||
$101=400.000 (y, step/mm)
|
||||
$102=400.000 (z, step/mm)
|
||||
$110=1500.000 (x max rate, mm/min)
|
||||
$111=1500.000 (y max rate, mm/min)
|
||||
$112=400.000 (z max rate, mm/min)
|
||||
$120=50.000 (x accel, mm/sec^2)
|
||||
$121=50.000 (y accel, mm/sec^2)
|
||||
$122=50.000 (z accel, mm/sec^2)
|
||||
$130=510.000 (x max travel, mm)
|
||||
$131=560.000 (y max travel, mm)
|
||||
$132=200.000 (z max travel, mm)
|
||||
```
|
||||
|
||||
## 2015-03-07 GRBL Interpreter aufgebaut
|
||||
|
||||
[GRBL](https://github.com/grbl/grbl) Version 0.9 auf einem
|
||||
Arduino Uno. Gehäuse mit SUB-D 25 Pol besorgt, wo der reinkommt
|
||||
\[typ_o\]
|
11
cnc-fräse/material.md
Normal file
11
cnc-fräse/material.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
+++
|
||||
title = "CNC-Fräse: Material"
|
||||
+++
|
||||
|
||||
## Alu
|
||||
|
||||
<http://alu-verkauf.de/>
|
||||
|
||||
Was du kaufen möchtest ist: AlCuMg1. Das ist
|
||||
optimal zerspanbar und schmiert den Fräser nicht voll. Einziger
|
||||
Nachteil: Nicht (gut) eloxierbar
|
30
cnc-fräse/platinen-fräsen.md
Normal file
30
cnc-fräse/platinen-fräsen.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
+++
|
||||
title = "CNC-Fräse: Platinen-Fräsen"
|
||||
+++
|
||||
|
||||
## Frästiefenregler
|
||||
|
||||
- [Sorotec](http://www.sorotec.de/shop/CNC-Mechanik/Tiefenregler/Gravureinheit---Tiefenregler-GT43.html)
|
||||
- [BZT](http://www.bzt-cnc.de/shop/cnc-fraesen-zubehoer/242-gravuranschlag-tiefenregler)
|
||||
- [Gravurtiefenregler
|
||||
Eigenbau](http://www.einfach-cnc.de/gravurtiefenregler.html),
|
||||
verwendete
|
||||
[Mikrometerschraube](https://www.amazon.de/WABECO-Mikrometerschraube-0-25-mm/dp/B003V3RORA)
|
||||
- Idee: Neben dem aktuellen Spindelmotor (Der Kress) einen Brushless
|
||||
Motor mit Frästiefenregler anbauen. Dazu passt [diese
|
||||
Spannzangenaufnahme](http://mbp-rc.de/Spannzange-5x32mm),
|
||||
die sich an eine 5mm Achse von einem Brushlessmotor schrauben
|
||||
läßt.Der zweite Motor könnte immer montiert bleiben, incl.
|
||||
eingesetztem Stichel, wenn man die Höhe geeignet einstellt.
|
||||
|
||||
## Flatcam howto
|
||||
|
||||
- Reiter "Options" Millimeter einstellen. Application und Project
|
||||
defaults
|
||||
- Gerber-Datei und Drill-Datei(Excellon) öffnen
|
||||
- Offset anpassen
|
||||
- Kordinaten der oberen linken Ecke der Platine ermitteln (Maus + Statusleiste)
|
||||
- Gerber-Datei doppelklicken. Ganz untern Offset-Vector eintragen.
|
||||
- Achtung: Offset ist immer relativ zur aktuellen Position
|
||||
- Mit Drill-Datei wiederholen
|
||||
- ...
|
81
cnc-fräse/schnittwerte.md
Normal file
81
cnc-fräse/schnittwerte.md
Normal file
|
@ -0,0 +1,81 @@
|
|||
+++
|
||||
title = "CNC-Fräse: Schnittwerte"
|
||||
+++
|
||||
|
||||
## Fräsertypen
|
||||
|
||||
Nach Material
|
||||
|
||||
- [Schnellarbeitsstahl](https://de.wikipedia.org/wiki/Schnellarbeitsstahl) (HSS oder nach neuer
|
||||
Normung HS) HSS sind sehr wärmeempfindlich, für Metall (Wärmeabfuhr über Späne & Kühlmittel)
|
||||
- [Hartmetall](https://de.wikipedia.org/wiki/Hartmetall) (VHM sind Vollhartmetallwerkzeuge. Also
|
||||
alles besteht aus diesen Werkstoff=Schaft + Schneiden. HM sind Werkzeuge wo der Schaft und die
|
||||
Schneiden aus unterschiedlichen Werkstoffen bestehen) (HW = engl. "hardmetal for wood")
|
||||
|
||||
Nach Zweck
|
||||
|
||||
- [HPC](https://de.wikipedia.org/wiki/High_Performance_Cutting)
|
||||
(High Performance Cutter) = Schruppen
|
||||
- Schlichten
|
||||
|
||||
### Alu
|
||||
|
||||
Unbeschichteter VHM Fräser Zweischneider
|
||||
|
||||
Kühlen mit einer Mischung aus 1/3 Spiritus, 2/3 Wasser, Sprühflasche
|
||||
vorhanden (Keine Überschwemmung machen, Opferplatte quillt sonst auf)
|
||||
|
||||
### Holz
|
||||
|
||||
Holz fräsen -\> VHM Fräser
|
||||
|
||||
### Kunststoff
|
||||
|
||||
Bisher nur wenig Erfahrung, Drehzahl eher niedrig wählen, da sonst der
|
||||
Kunststoff aufschmelzen kann. Einschneider => gute Spanabfufuhr.
|
||||
|
||||
### Fräser kaufen
|
||||
|
||||
Beste Erfahrung bisher mit "[2-Schneider
|
||||
UNI](http://www.sorotec.de/shop/Zerspanungswerkzeuge/SCHAFTFRAeSER/Schaftfraeser-UNI-299/)",
|
||||
VHM-Schaftfräser von Sorotec. Verwendet in 4 mm und 6 mm Durchmesser, in
|
||||
Holz, Alu. Für 3D Konturen müssten diese
|
||||
[VHM-Radienfräser](http://www.sorotec.de/shop/Zerspanungswerkzeuge/RADIENFRAeSER/Radienfraeser-UNI/)
|
||||
taugen (ungetestet)
|
||||
|
||||
## Schnittgeschwindigkeiten (Drehzahl, Zustellung, Vorschub)
|
||||
|
||||
Drehzahlrechner <http://www.cenon.de/cgi-bin/ToolCalc?lng=de>
|
||||
<http://www.precifast.de/schnittgeschwindigkeit-beim-fraesen-berechnen/>
|
||||
|
||||
<https://www.stepcraft-systems.com/images/SC-Service/SC_Fraesparameter.pdf>
|
||||
|
||||
<http://www.sorotec.de/webshop/Datenblaetter/fraeser/schnittwerte.pdf>
|
||||
|
||||
Erfahrungswerte
|
||||
|
||||
### Holz (MDF, Multiplex, Sperrholz, Siebdruckplatte)
|
||||
|
||||
- 6 mm HM-Fräser,
|
||||
- Drehzahl ca "7"
|
||||
- Vorschub 2000 mm / min
|
||||
- Eintauchgeschwindigkeit 200 mm /min
|
||||
- Zustellung max 6 mm (Materialabnahme in einem Durchgang)
|
||||
|
||||
### Alu
|
||||
|
||||
- 3 mm HM-Fräser (Farbring)
|
||||
- Drehzahl ca "4"
|
||||
- Vorschub 400 mm / min
|
||||
- Eintauchgeschwindigkeit 200 mm /min
|
||||
- Zustellung max 1,5 mm (Materialabnahme in einem Durchgang)
|
||||
- Kühlen mit mäßig Spiritus (Sprühflasche) Obacht: Sprühnebel -\> Fräsmotor -\> alles Bäm!
|
||||
|
||||
### Kunststoff
|
||||
|
||||
- 3 mm HM-Fräser (Farbring)
|
||||
- Drehzahl ca "3-4"
|
||||
- Vorschub 300 mm / min
|
||||
- Eintauchgeschwindigkeit 200 mm /min
|
||||
- Zustellung max 1,5 mm (Materialabnahme in einem Durchgang)
|
||||
- Kühlen mit mäßig Wasser (Spiritus versprödet z.B. Plexiglas) oder ungekühlt
|
103
datenschleuder.md
Normal file
103
datenschleuder.md
Normal file
|
@ -0,0 +1,103 @@
|
|||
+++
|
||||
title = "Datenschleuder"
|
||||
+++
|
||||
|
||||
Die *Datenschleuder* (oder *Daten\--(sch)\--l\--(e)\--uder*) ist unser
|
||||
kleines, aber feines NAS. Mit 4TB sollte Sie erstmal genügend
|
||||
Speicherplatz bieten. Zu erreichen ist sie in unserem Netzwerk unter
|
||||
`datenschleuder.fd`.
|
||||
|
||||
## Zugang
|
||||
|
||||
Du kannst auf das Gerät über
|
||||
[SFTP](https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol)
|
||||
zugreifen, insofern du schon einen Account hast. Falls nicht, helfen dir
|
||||
gerne [feliks](feliks), [malled](malled) oder
|
||||
[oboro](oboro) bei der Erstellung. Hierfür werden lediglich
|
||||
dein Benutzername und dein öffentlicher SSH-Schlüssel benötigt. Falls du
|
||||
noch keinen solchen Schlüssel haben solltest, kann du hier nachlesen,
|
||||
wie man so einen erstellt:
|
||||
[Windows](https://www.digitalocean.com/community/tutorials/how-to-create-ssh-keys-with-putty-to-connect-to-a-vps),
|
||||
[Unixoide
|
||||
Betriebssysteme](https://help.github.com/articles/generating-ssh-keys/)
|
||||
|
||||
## Nutzung
|
||||
|
||||
Um komfortabel auf Datenschleuder zuzugreifen, stehen dir verschiedene
|
||||
Möglichkeiten zur Verfügung.
|
||||
|
||||
### Einbinden als Dateisystem
|
||||
|
||||
Unter unixoiden Betriebssystemen kannst du mit dem Werkzeug `sshfs`
|
||||
eine SFTP-Verbindung aussehen lassen wie einen lokalen Ordner. Dafür
|
||||
musst du über deinen Paketmanager das Paket `sshfs` installieren (kann
|
||||
sein, dass es einen etwas anderen Namen hat, abhängig von deinem
|
||||
Betriebssystem).
|
||||
|
||||
Mit folgendem Befehl kannst du die Datenschleuder einbinden:
|
||||
|
||||
sshfs benutzername@datenschleuder.fd:/ /dein/lokaler/ordner
|
||||
|
||||
Und so kannst du das Ganze wieder aushängen:
|
||||
|
||||
fusermount -u /dein/lokaler/ordner
|
||||
|
||||
### (S)FTP Client
|
||||
|
||||
Mit Hilfe von FileZilla (oder ähnlichen
|
||||
SFTP-fähigen Programmen) kannst du dich zur *Datenschleuder* mit
|
||||
folgenden Angaben verbinden:
|
||||
|
||||
Benutzername: deinname
|
||||
Port: 22
|
||||
Adresse: datenschleuder.fd
|
||||
Verzeichnis: /
|
||||
|
||||
Vergiss dabei nicht, dass du deinen öffentlichen SSH-Schlüssel dafür
|
||||
noch angeben musst, wie
|
||||
[hier](https://superuser.com/questions/180221/connect-to-server-using-sftp-and-public-ssh-key-using-filezilla-on-windows)
|
||||
beschrieben.
|
||||
|
||||
### Kommandozeile
|
||||
|
||||
Wenn du auf die Datenschleuder über die Kommandozeile zugreifen willst,
|
||||
kannst du das mit dem Programm `sftp` machen. Hiermit lässt sich auch
|
||||
einfach testen, ob eine Verbindung scheitern sollte.
|
||||
|
||||
## Daten
|
||||
|
||||
Alle Daten im `/home`-Verzeichnis sind lesbar von **allen Benutzern**
|
||||
(bis auf die SSH-Schlüssel). Du solltest also also keine privaten Daten
|
||||
auf der *Datenschleuder* speichern. Dein eigenes Verzeichnis
|
||||
(`/home/deinname`) kann nur von dir beschrieben werden, allerdings von
|
||||
allen gelesen. Im gemeinsamen Verzeichnis `/home/datenschleuder` kann
|
||||
jeder lesen und schreiben, wie er lustig ist. Daten werden dort
|
||||
anonymisiert erstellt, sodass nicht festgestellt werden kann, wer die
|
||||
Daten dort hochgeladen hat.
|
||||
|
||||
## Administration
|
||||
|
||||
### Neuer Nutzer
|
||||
|
||||
Zur Erstellung eines neuen Nutzers eignet sich das Skript
|
||||
`~/adduser.sh`, welches lediglich einen Benutzernamen und einen
|
||||
öffentlichen SSH-Schlüssel benötigt. Wird es ohne Parameter aufgerufen
|
||||
fragt es interaktiv danach, allerdings kann es auch wie folgt aufgerufen
|
||||
werden:
|
||||
|
||||
~/adduser.sh USERNAME SSH-KEY
|
||||
|
||||
### Debugging
|
||||
|
||||
Wenn mal eine Verbindung nicht klappen sollte, sind Folgendes häufige
|
||||
Fehlerquellen:
|
||||
|
||||
- Falsche Nutzerrechte für die Datei `/home/user/.ssh/authorized_keys`
|
||||
- Falsch geschriebener SSH-Key (Zeilenumbrüche!)
|
||||
- Nutzer verwendet falschen SSH-Key zum verbinden
|
||||
|
||||
*TODO: Speicherplatz prüfen (warum sind das nur 2TB)*
|
||||
|
||||
*TODO: ACL einrichten, um Daten zu anonymisieren*
|
||||
|
||||
*TODO: Darstellung der Daten auf dem Fernseher/Grafana?*
|
51
dmx.md
Normal file
51
dmx.md
Normal file
|
@ -0,0 +1,51 @@
|
|||
+++
|
||||
title = "DMX"
|
||||
+++
|
||||
|
||||
Ein Ethernet nach DMX Konverter mit AVR DMX-Empfängern
|
||||
|
||||
Lichtsteuerung (IP DMX: 192.168.3.115 TCP)
|
||||
|
||||
- [Steuerung Netzintern per OLA-API - easy DMX
|
||||
programming](http://opendmx.net/index.php/OLA_Python_API)
|
||||
- [Steuerung Netzintern per OLA Client API - the C++
|
||||
API](https://docs.openlighting.org/ola/doc/latest/client_tutorial.html)
|
||||
- [Steuerung Netzintern per
|
||||
WebUI](http://192.168.3.115:9090)
|
||||
|
||||
Materialsammlung
|
||||
|
||||
- [Arduino DMX
|
||||
Library](http://playground.arduino.cc/Learning/DMX)
|
||||
- Arduino DMX Shield, z.B.
|
||||
[dies](https://www.tindie.com/products/Conceptinetics/dmx-shield-for-arduino-rdm-capable/)
|
||||
- [ArtNet](http://art-net.org.uk/) (DMX over
|
||||
[UDP](http://en.wikipedia.org/wiki/User_Datagram_Protocol))
|
||||
|
||||
Kosten
|
||||
|
||||
- ArtNet Konverter (Ethernet -\> RS485)
|
||||
- AVR DMX-Empfänger
|
||||
- Kaufen
|
||||
([Arduino](http://www.dx.com/de/p/funduino-uno-r3-atmega328-development-board-for-arduino-384207) +
|
||||
[Shield](http://www.dx.com/de/s/arduino+dmx)): 18 €
|
||||
- Bauen 9 € (XLR Buchsen weglassen, da kein Bühneneinsatz)
|
||||
- RS485 Kabel: 0 €, 200 m vorhanden (typ_o)
|
||||
- [DMX-Kabel](http://www.thomann.de/de/the_sssnake_dmxkabel_3003.htm)
|
||||
3 pol. XLR (ca. 18x, 6,50 € = 117 € bei Thomann)
|
||||
- Halogen Blinkenlight auf dem Kabelkanal (Geht mit der Arduino Lib
|
||||
und n MOSFETs)
|
||||
- LED DMX
|
||||
[Leuchtleiste](http://www.thomann.de/de/stairville_led_bar_120_4_rgb_dmx_30_05m.htm?ref=search_rslt_dmx+led_355287_1)
|
||||
(8x, ca. 60,00 € = 480 € bei Thomann)
|
||||
- WS2811 / -12 LED Ketten - gibts da eine Lib dazu?
|
||||
- Strahler
|
||||
- [Gobos](https://de.wikipedia.org/wiki/Gobo) - Dazu wäre
|
||||
gut der Glasdiaprojektor geeignet (typ_o)
|
||||
- [Scanner](https://de.wikipedia.org/wiki/Scanner_(Lichttechnik))
|
||||
o.g. Projektor hat einen Spiegel, den man motorisch bewegen könnte
|
||||
|
||||
Web Sourcen
|
||||
|
||||
- DMX im
|
||||
[Backspace](https://www.hackerspace-bamberg.de/DMX_Lighting)
|
234
drinks-storage.md
Normal file
234
drinks-storage.md
Normal file
|
@ -0,0 +1,234 @@
|
|||
+++
|
||||
title = "Drinks Storage"
|
||||
+++
|
||||
|
||||
Das Projekt *Drinks Storage* versucht, den Nachschub an Mate vollkommen
|
||||
zu automatisieren. Dafür werden auf einzelnen, sortenreinen
|
||||
Getränkekistenstapeln die Anzahl der sich darauf befindlichen Kisten
|
||||
gemessen. Ein Programm prüft regelmäßig, ob noch genug Getränke
|
||||
vorhanden sind und überprüft das an Hand einer Soll-Zustandsliste. Wenn
|
||||
genug Kisten für eine Bestellung zusammengekommen sind, wird diese an
|
||||
den CEOB (Chief Executive Of Boozyness) übermittelt der die Bestellung
|
||||
dann prüft. Falls die Maschinen alles richtig gemacht haben, kann die
|
||||
Bestellung an den Getränkelieferanten gemailt werden. Dieser kann dann
|
||||
mit eigenem Gebäudezugang die Getränke nachfüllen.
|
||||
|
||||
Historische Daten der Getränkewaagen sind im
|
||||
[Grafana](/projekte/grafana/) zu finden, wobei man auch dem Lieferanten
|
||||
live aus der Ferne zuschauen kann, wie er Mate stapelt. In der Industrie
|
||||
würde das Projekt wohl als Supply Chain Management für Spirituosen
|
||||
benannt werden.
|
||||
|
||||
## Schema
|
||||
|
||||
Das folgende Diagramm soll helfen zu erklären, wie die einzelnen Teile
|
||||
des Projekts ineinander greifen:
|
||||
|
||||
<!-- [{{attachment:drinks-storage.png}}](Projekte/Drinks%20Storage?action=AttachFile&do=get&target=drinks-storage.png) -->
|
||||
|
||||
*Datei auch als [.dia-Datei](attachment:drinks-storage.dia) vorhanden*
|
||||
|
||||
### Waagen
|
||||
|
||||
#### Video
|
||||
|
||||
<!-- [{{attachment:vimeo-link.png}}](https://vimeo.com/234878854) -->
|
||||
|
||||
Auf dem Video sollte gut zu erkennen sein, wie die MQTT-Nachrichten bei
|
||||
einer Veränderung der Kastenanzahl eintreffen.
|
||||
|
||||
#### Frästeil
|
||||
|
||||
<!-- {{attachment:kisten-schema.png}} -->
|
||||
|
||||
Die aktuelle Iteration der Waagen sind beidseitig aus MDF-Platten
|
||||
gefräst und mit einigen Millimetern Spiel auf die einzelnen Kistenböden
|
||||
angepasst. Auf der Unterseite sind passgenaue Taschen für die jeweils 4
|
||||
[Gewichtssensoren](https://www.aliexpress.com/item/1/32811319141.html).
|
||||
Gefräste Kabelkanäle führen die Kabel von den Sensoren in die Mitte und
|
||||
von dort aus gebündelt zur Seite. An der Seite ist ein Einschub für ein
|
||||
3D-Druck-Gehäuse in dem sich das Sensor-Board befindet.
|
||||
|
||||
<!-- {{attachment:magic.gif}} -->
|
||||
|
||||
Erstellt wurde das 3D-Modell mit
|
||||
[Rhino](https://www.rhino3d.com/). Die Konturlinien für die
|
||||
einzelnen Kistenböden sind aus den jeweiligen abfotografierten Kisten
|
||||
entstanden. Oben sieht man die schematische Nachzeichnung. Hier
|
||||
3D-Frästeile ohne den seitlichen Einschub
|
||||
|
||||
<!-- {{attachment:aschorle_unten.jpg}} -->
|
||||
|
||||
<!-- {{attachment:aschorle_oben.jpg}} -->
|
||||
|
||||
Und die fertig gefrästen Teile:
|
||||
|
||||
<!-- {{attachment:mio_xxx.jpg}} -->
|
||||
|
||||
#### 3D-Druck-Gehäuse
|
||||
|
||||
Das Gehäuse für das PCB ist 3D-gedruckt auf unserem space-eigenen
|
||||
[3D-Drucker](3D-Drucker). Es war schwerer erfolgreich zu
|
||||
drucken als anfangs gedacht. Das liegt hauptsächlich daran, dass das
|
||||
nicht fehlen dürfende flipdot-Logo zu häufigen Überhängen an der
|
||||
Oberfläche führt. Das 3D-Modell wurde in
|
||||
[Rhino](https://www.rhino3d.com/) erstellt und von dort aus
|
||||
als `.stl`-Datei exportiert. Die `.stl`-Datei wurde dann in
|
||||
[Cura](https://ultimaker.com/en/products/ultimaker-cura-software)
|
||||
importiert wovon dann die zu druckende `.gcode`-Datei erstellt wurde.
|
||||
|
||||
<!-- {{attachment:3d_druck_1.jpg}} -->
|
||||
|
||||
<!-- {{attachment:einschub.jpg}} -->
|
||||
|
||||
#### Board
|
||||
|
||||
Auf dem kruden selbstgeätzten und -gebohrten PCB befindet sich ein ESP
|
||||
und ADC. Das Board prüft regelmäßig die Werte der Gewichtssensoren und
|
||||
bildet den Median über mehrere Messpunkte. Dieser Median hat den Vorteil
|
||||
gegenüber einem gemittelten Wert, dass er statistisch robust ist. Der
|
||||
Median wird mit einem Zähler an bereits erfolgreich übertragenen Paketen
|
||||
im MQTT-Topic `sensors/cellar/drinks_scale_measurements_raw`
|
||||
veröffentlicht. Der Zähler bringt den Vorteil, dass man aus der Ferne
|
||||
erkennen kann, wenn eine Waage zu hohen Packet Loss hat oder eine
|
||||
schlechte Stromversorgung. Gesendet wird durch eine etwa halben Meter
|
||||
dicke tragende Wand aus Backstein, bzw. durch eine dicke Eisentür. Der
|
||||
daraus resultierende Packet Loss stellt allerdings kein Problem dar, da
|
||||
die Daten nicht zeitkritisch sind.
|
||||
|
||||
<!-- {{attachment:lol_breakout.png}} -->
|
||||
|
||||
<!-- {{attachment:breakout_haufen.jpg}} -->
|
||||
|
||||
### Datenpfad
|
||||
|
||||
#### Space-Intern
|
||||
|
||||
Der von den Waagen jeweils übertragene Sensorrohwert wird von einem
|
||||
MQTT-Client ([`drinks-storage-mqtt` auf
|
||||
Github](https://github.com/flipdot/drinks-storage-mqtt))
|
||||
eingelesen. An Hand der Konfiguration wird erkannt, wievielen Kästen der
|
||||
Sensorwert entspricht. Hierfür muss einmalig jede Waage einzeln mit
|
||||
zuerst keinem Gewicht und danach mit möglichst vielen Kästen der
|
||||
gleichen Sorte belastet werden. Die gemittelten Werte bieten einem zum
|
||||
Einen einen Nullpunkt und zum andern das spezifische
|
||||
[Tara](https://de.wikipedia.org/wiki/Tara_(Gewicht)) der
|
||||
jeweiligen Getränkesorte angepasst auf den speziellen Sensor. Dieser
|
||||
ermittelte Wert für die Anzahl der Kästen wird dann periodisch im
|
||||
MQTT-Topic `sensors/cellar/drinks_crate_counts` veröffentlicht.
|
||||
|
||||
<!-- {{attachment:waage_mit_eichstein.jpg}} -->
|
||||
|
||||
#### Web-Server
|
||||
|
||||
Das Projekt
|
||||
[`iod-api-bridge`](https://github.com/flipdot/iod-api-bridge)
|
||||
sorgt dafür, dass die Anzahl der Kästen an unsere Space-API übertragen wird,
|
||||
wo sie auch aus dem Internet aus abrufbar sind.
|
||||
|
||||
#### Statistiken
|
||||
|
||||
Die nächste Station ist zum einen unsre
|
||||
[Grafana](/projekte/grafana/)-Instanz, die die Daten von der
|
||||
Space-API minütlich pollt und die historischen
|
||||
Daten der Öffentlichkeit anbietet. Auf dem entsprechenden
|
||||
[Dashboard](https://stats.flipdot.org/dashboard/db/drinks-storage)
|
||||
findet man aktuelle Daten.
|
||||
|
||||
Bevor Grafana integriert war in das System wurde mit einem
|
||||
[Python-Skript](https://github.com/flipdot/drinks-storage-mqtt/blob/master/plot-raw.py)
|
||||
ein Mitschnitt des MQTT-Verkehrs der entsprechenden Channel analysiert.
|
||||
Ziel der Analyse war festzustellen, ob temperaturbedingter Drift
|
||||
vorhanden ist. An folgendem Plot kann man dabei erkennen, dass dem nicht
|
||||
so ist. Da eine einzelne Kiste etwa einen rohen Sensorwert von 25k hat,
|
||||
ist das Rauschen selbst bei `fritz_cola` zu vernachlässigen:
|
||||
|
||||
<!-- {{attachment:no_drift.png}} -->
|
||||
|
||||
#### Bestellungen
|
||||
|
||||
Zum andern gibt es noch ein Skript
|
||||
([drinks-storage-order](https://github.com/flipdot/drinks-storage-order)
|
||||
auf Github) was täglich die von der API gepollten Daten überprüft. Dabei
|
||||
wird der aktuelle Bestand mit einer Soll-Liste abgeglichen. Wenn dann
|
||||
die insgesamte Anzahl der zu bestellenden Kästen einen Schwellwert
|
||||
übersteigt, wird eine Bestellung per Mail Versand. Der PDF-Anhang für
|
||||
unsre allererste Bestellung sah so aus:
|
||||
|
||||
<!-- {{attachment:erste-bestellung.png}} -->
|
||||
|
||||
Diese wird von unserem CEOB (Chief Executive Of Boozyness)
|
||||
entgegengenommen, auf Richtigkeit geprüft und anschliessend an den
|
||||
Getränkehändler weitergereicht.
|
||||
|
||||
### Debugging
|
||||
|
||||
Die Waagen haben das Problem, dass sie regelmäßig neu tariert werden
|
||||
müssen, da einige Sensordrift aufweisen. Das Problem wird bei genauer
|
||||
[Analyse der
|
||||
Rohwerte](https://stats.flipdot.org/d/000000023/drinks-storage-debug)
|
||||
erkennbar. Der Sensordrift kann dadurch entstehen, dass die [Verkabelung
|
||||
der
|
||||
Verstärker](https://github.com/flipdot/drinks-storage-state#hardware)
|
||||
eine lose Verbindung hat, was irgendwann mal zu prüfen ist.
|
||||
|
||||
#### Tarieren
|
||||
|
||||
Um die Waagen zu tarieren muss wie folgt vorgegangen werden:
|
||||
|
||||
1. [Github-Repo](https://github.com/flipdot/drinks-storage-mqtt) klonen
|
||||
2. Betroffene Waagen leeren.
|
||||
3. Werte aufnehmen
|
||||
```
|
||||
mosquitto_sub -h mqtt.fd -t 'sensors/cellar/drinks_scale_measurements_raw' >> drinks-storage-$(date -I).log
|
||||
```
|
||||
4. Werte in einzelne Dateien pro Waage schreiben
|
||||
```
|
||||
DRINKS_STORAGE_MQTT=/path/to/cloned/github/directory
|
||||
while read -r esp_id; do esp_int=$(printf "%i" "$esp_id"); grep $esp_int *.log | sed -r 's/.+scale_value":([0-9]+),".+/\1/' > $esp_id.values; done <<< $(grep -Eo '0x[0-9a-f]+' $DRINKS_STORAGE_MQTT/config.yaml)
|
||||
```
|
||||
5. Mittelwert ausgeben lassen
|
||||
```
|
||||
for esp_id in *.values; do awk "{a+=\$1} END{printf "${esp_id%%.values} %i\n", a/NR}" $esp_id; done
|
||||
```
|
||||
|
||||
Um jetzt den Wert für `crate_raw` zu berechnen, muss das obige
|
||||
Vorgehen wiederholt werden mit `n` Kisten. Dann muss man im
|
||||
Taschenrechner der Wahl jeweils folgendes berechnen:
|
||||
|
||||
```
|
||||
(value_1st - value_2nd) / n_crates
|
||||
```
|
||||
|
||||
Nach dem Tarieren muss nur ein entsprechender Commit für die
|
||||
[Config-Datei](https://github.com/flipdot/drinks-storage-mqtt/blob/master/config.yaml)
|
||||
(`config.yaml`) im Github-Repo erstellt und gepusht werden.
|
||||
|
||||
#### Deployment
|
||||
|
||||
Wenn die Waagen neu tariert wurden, muss neu deployt werden. Hierfür
|
||||
muss man sich auf `power-pi.fd` verbinden, pullen und den Daemon neu
|
||||
starten, in anderen Worten:
|
||||
|
||||
```
|
||||
$ ssh pi@power-pi.fd
|
||||
$ cd ~/iod/drinks-storage-mqtt
|
||||
$ git pull
|
||||
$ sudo systemctl restart drinks-storage-mqtt
|
||||
```
|
||||
|
||||
#### MQTT-Fehlernachrichten
|
||||
|
||||
Nach erfolgreichem Deployment sollte auf Fehlernachrichten im Kanal
|
||||
`errors` geprüft werden. In anderen Worten:
|
||||
|
||||
```
|
||||
$ mosquitto_sub -h mqtt.fd -t "errors" -v
|
||||
```
|
||||
|
||||
Wenn man Wasserfälle mag und mehr Noise sehen will, kann man auch alle
|
||||
Kanäle prüfen:
|
||||
|
||||
```
|
||||
$ mosquitto_sub -h mqtt.fd -t "#" -v
|
||||
```
|
56
einschaltstrombegrenzung.md
Normal file
56
einschaltstrombegrenzung.md
Normal file
|
@ -0,0 +1,56 @@
|
|||
+++
|
||||
title = "Einschaltstrombegrenzung"
|
||||
+++
|
||||
|
||||
## Projekt
|
||||
|
||||
Im Space haben wir einen großen alten Schalter der diverse Lampen, das
|
||||
Flipdot-Display und ein paar Blinkenlights schaltet, dabei fliegt
|
||||
manchmal die Sicherung raus. Eine Einschaltstrombegrenzung wäre da die
|
||||
ideale Lösung...
|
||||
|
||||
## Allgemeine Erklärung
|
||||
|
||||
Eine Einschaltstrombegrenzung (auch Sanftanlauf genannt) verhindert
|
||||
Überströme beim Einschalten elektrischer Lasten. Das ist beispielsweise
|
||||
bei Staubsaugern und großen Netzteilen oftmals wichtig, da der
|
||||
Staubsauger beim Beschleunigen aus dem Stillstand quasi einen
|
||||
Kurzschluss darstellt, so auch beim Netzteil, dessen Netzgleichrichter
|
||||
beim Einschalten große Kondensatoren auflädt.
|
||||
|
||||
Diese Problematik wird mit einer Schutzschaltung verhindert, die diesen
|
||||
Strom begrenzt. Im einfachsten Falle ist dies ein Widerstand in
|
||||
Verbindung mit einem Netzspannungsrelais. Dabei steigt die Lastspannung
|
||||
zunächst nur langsam bis die Lastspannung den Schwellwert des
|
||||
Netzspannungsrelais übersteigt, da der Innenwiderstand des Verbrauchers
|
||||
steigt, sodass das Relais den Widerstand kurzschließt und die Last
|
||||
schließlich bei voller Netzspannung betrieben wird
|
||||
|
||||
<!--
|
||||
\|\|
|
||||
`{{https://upload.wikimedia.org/wikipedia/commons/7/7d/Einschaltverzögerung.png|Schaltplan einer Einschaltstrombegrenzung|width="100%"}}`
|
||||
\|\| \|\|\~-Der im Bild gezeigte Trafo ist nur als Beispiel für eine
|
||||
Last zu verstehen und ist nicht zwingend erforderlich.-\~ \|\|
|
||||
-->
|
||||
|
||||
## Hacker
|
||||
|
||||
- Jesus
|
||||
|
||||
## Fragen/Antworten
|
||||
|
||||
- Im Space haben wir viele kleine Netzteile z.B. für Raspberry-Pis,
|
||||
welche beim Hochfahren häufig abstürzen. Könnte so ein Sanftanlauf
|
||||
dieses Problem beheben? (Was stürzt da ab, NT ? Hm, NT für
|
||||
Prozessoren *langsam* einzuschalten, dh. eine langsame
|
||||
Spannungserhöhung am Ausgang zu erwirken, könnte gerade dann
|
||||
Probleme bereiten - es gibt Boards, die ein mindest dU/dt brauchen,
|
||||
um sauber anzugehen \[typ_o\])
|
||||
|
||||
## Alternative Lösungen
|
||||
|
||||
- Billig Funksteckdosen (3 Stück 10 €) + 433 MHz Sender vom Chinamann
|
||||
(2 €) + vorhandener Pi. Der Pi erkennt wenn Space geschlossen -\>
|
||||
offen, sendet im Sekundenabstand Einschaltcodes an die Dosen - done.
|
||||
|
||||
*siehe weitere [Projekte](/projekte/)*
|
11
fernseher-pi.md
Normal file
11
fernseher-pi.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
+++
|
||||
title = "Fernseher Pi"
|
||||
+++
|
||||
|
||||
- [Eigenen Desktop an den Fernseher streamen](/projekte/bildschirm-an-fernseher/)
|
||||
|
||||
TODO:
|
||||
|
||||
- Medien von der datenschleuder wiedergeben
|
||||
- Kodi?
|
||||
- Browser im Framebuffer starten
|
67
flipdot-display.md
Normal file
67
flipdot-display.md
Normal file
|
@ -0,0 +1,67 @@
|
|||
+++
|
||||
title = "Flipdot-Display"
|
||||
+++
|
||||
|
||||
Das Display hat 48x20 Pixel und einen 1 Bit Farbraum. Du kannst auch
|
||||
Späße übers Netzwerk mit UDP haben: 192.168.3.36:2323
|
||||
|
||||
## Bilder anzeigen
|
||||
|
||||
### Python
|
||||
|
||||
Um Bilder hier anzuzeigen, [dieses
|
||||
Skript](https://gist.github.com/icks/0b5dd6761fa1c27148184abcaff0af9b)
|
||||
zum Laufen bringen, und den Pfad zu einem animierten GIF, oder normalem
|
||||
Bild angeben.
|
||||
|
||||
Das Skript befindet sich neben einigen anderen nützlichen Skripten auch
|
||||
in [unserem GitHub Repository](https://github.com/flipdot/flipdots-wall). Dort
|
||||
findet sich beispielsweise ein flipdot Simulator, um auch zuhause mit
|
||||
dem flipdot Display experimentieren zu können.
|
||||
|
||||
### GIMP
|
||||
|
||||
Für das oben genannte Python-Skript kannst du auch Bilder in GIMP
|
||||
erstellen. Entweder statisch, oder animierte GIFs.
|
||||
Das beste Ergebnis gibts bei purem Schwarz-Weiss in der Auflösung des Displays.
|
||||
|
||||
### Blender
|
||||
|
||||
Alternativ gibts auch die Möglichkeit in 3D Bilder zu erzeugen. Hierfür
|
||||
gibts auch ein paar Demo-Dateien die dir ein bisschen Starthilfe geben
|
||||
sollen: <!-- <attachment:cube.blend>, <attachment:monkey.blend>, <attachment:monkey2.blend> -->
|
||||
|
||||
Du kannst über `Scene \> Render \> Animation` eine Bildfolge
|
||||
exportieren und diese dann unter Linux in der Kommandozeile mit
|
||||
folgendem Befehl in ein animiertes GIF umwandeln: `convert /tmp/\*.png
|
||||
/tmp/BILDNAME.gif`
|
||||
|
||||
## Bilder
|
||||
|
||||
Auf dem Desktop PC (guest Pi) im Space liegt ein Ordner rot umrandet.
|
||||
Alle Bilder die dort hineingelegt werden, werden zufällig auf dem
|
||||
Flipdot Display angezeigt. Außerdem werden folgende Bilder
|
||||
hineingemischt:
|
||||
|
||||
<!--
|
||||
\|\|[{{attachment:box.gif}}](attachment:box.gif)
|
||||
\|\|[{{attachment:auto.gif}}](attachment:auto.gif)
|
||||
\|\|[{{attachment:dickbutt.gif}}](attachment:dickbutt.gif)
|
||||
\|\|
|
||||
\|\|[{{attachment:monkey.gif}}](attachment:monkey.gif)
|
||||
\|\|[{{attachment:black.png}}](attachment:black.png)
|
||||
\|\|[{{attachment:flipdot.png}}](attachment:flipdot.png)
|
||||
\|\|
|
||||
\|\|[{{attachment:monkey2.gif}}](attachment:monkey2.gif)\|\|[{{attachment:link.png}}](attachment:link.png)
|
||||
\|\|[{{attachment:hase.png}}](attachment:hase.png)
|
||||
\|\|
|
||||
-->
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
Manchmal springt der fd-Raspi nicht an. Dann blinkt das grüne Lämpchen
|
||||
nicht und ist er nicht pingbar. Das hat u.a. zur Folge, dass der Space
|
||||
Status als geschlossen angezeigt wird. Dann muss man den Micro USB
|
||||
Stecker hinter dem Display direkt am Pi raus und wieder reinstecken
|
||||
(nicht den 230V Stecker). Dabei darauf achten, dass nicht aus Versehen
|
||||
die GPIO Steckverbindung gelockert wird.
|
276
getränkezähler.md
Normal file
276
getränkezähler.md
Normal file
|
@ -0,0 +1,276 @@
|
|||
+++
|
||||
title = "Getränkezähler"
|
||||
+++
|
||||
|
||||
Unter-Seiten:
|
||||
|
||||
* [Usage](usage/)
|
||||
|
||||
## Benutzer-Guide
|
||||
|
||||
### Anonym Bezahlen
|
||||
|
||||
Um anonym zu bezahlen, kannst du dir kleine Zettel mit einem Barcode
|
||||
ausdrucken. Dieser Barcode verfällt, nachdem sein Guthaben aufgebraucht
|
||||
ist.
|
||||
|
||||
1. Hierzu tippst du am Getränkescanner auf **Geld einwerfen**
|
||||
2. Wirf einen Schein in die Kasse hinter dir.
|
||||
3. Tippe den entsprechenden Betrag auf dem Display an.
|
||||
4. Dein Code wird ausgedruckt. Du kannst jetzt Buchen!
|
||||
|
||||
### Getränk Trinken
|
||||
|
||||
1. Scanne ein Getränk.
|
||||
2. Tippe **Buchen**. Alternativ kannst du deinen Zettel oder Member-Code scannen.
|
||||
1. Wähle deinen Anfangsbuchstaben.
|
||||
2. Wähle deinen Nutzer.
|
||||
3. Drücke **Trinken**!
|
||||
|
||||
Alternativ kannst du auch zuerst deinen Nutzer auswählen (oder
|
||||
Member-Code scannen), und dann dein Getränk scannen. Drücke danach
|
||||
genauso auf **Trinken**.
|
||||
|
||||
## Konzept
|
||||
|
||||
### Idee
|
||||
|
||||
Es soll mithilfe eines Barcode Scanners gezählt werden, wie viele
|
||||
Getränke man getrunken hat. So behält jeder den Überblick, wieviel er
|
||||
dem Verein spenden sollte und wir wissen, wann neue Getränke besorgt
|
||||
werden müssen.
|
||||
|
||||
[github
|
||||
repository](https://github.com/flipdot/drinks-scanner-display)
|
||||
des Getränkezählers.
|
||||
|
||||
### Anleitung
|
||||
|
||||
==> Hier gehts zur [Getränkezähler Usage](usage/)
|
||||
|
||||
### Hacker
|
||||
|
||||
- DoB (Projektmanagement)
|
||||
- Niklas (Datenbank/Modellierung, Externe Schnittstellen (später))
|
||||
- Sören ([Ansteuerung
|
||||
Display](http://www.raspberrypi-spy.co.uk/wp-content/uploads/2012/07/16x2_lcd_module.jpg))
|
||||
- Eike
|
||||
(http://www.raspberrypi-spy.co.uk/2012/07/16x2-lcd-module-control-using-python\|Elektronik\]\])
|
||||
- Anselm (Core-Logik)
|
||||
- Jonas (Core-Logik)
|
||||
- kssoz (Testing, Installation, Buchungsdialoge)
|
||||
- nox_x (Callibration Display)
|
||||
|
||||
### Zeitplan
|
||||
|
||||
```
|
||||
1. Termin: 02.07.2015 18:00 Uhr
|
||||
Technologie entscheiden
|
||||
Setup Raspberry PI
|
||||
Ausgabe Barcode auf Anzeige (HDMI-Bildschirm)
|
||||
2. Termin: 09.07.2015 18:00 Uhr
|
||||
Barcode-Format spezifizieren
|
||||
Hintergrundbeleuchtung, Kontrast einstellen
|
||||
3. Termin: 16.07.2015 18:00 Uhr
|
||||
SQL Datenbank modellieren
|
||||
4. Termin: 27.04.2016
|
||||
Case fertigbauen und im Space installieren
|
||||
RasPi bestellen
|
||||
5. Termin: 28.04.2016
|
||||
Raspi anschliessen und einrichten
|
||||
Barcodes in Datenbank speichern und zählen
|
||||
6. Termin 29.04.2016
|
||||
Flipdot Display ansteuern
|
||||
low-res font implementieren
|
||||
Testing (Hacked) ^^
|
||||
7. Termin: 28.05.2016
|
||||
Touchscreen Interface:
|
||||
Touch-Matrix,
|
||||
homescreen mit Namensauswahl,
|
||||
login Begrüßung mit Piechart-Dummy und Scan Aufforderung
|
||||
8. Termin: 29.05.2016
|
||||
Anbindung an LDAP (User-Datenbank)
|
||||
9. Termin: 11.06.2016
|
||||
Kallibration der Touch-Matrix - fixed!
|
||||
```
|
||||
|
||||
### Details
|
||||
|
||||
#### Buchungsprozesse
|
||||
|
||||
Spenden per Prepaid-Karte soll ermöglicht werden, nicht erzwungen. Das
|
||||
analoge Spendensystem (von \*hel) wird nicht abgeschafft, sondern
|
||||
ergänzt.
|
||||
|
||||
##### Fall 1 - member ohne Digital-Konto
|
||||
|
||||
1\. homescreen with login
|
||||
|
||||
Flipdot
|
||||
Getränkescanner
|
||||
Wer bist du?
|
||||
[a][b][c][d][e][f][g]
|
||||
[h][i][j][k][l][m][n]
|
||||
[o][p][q][r][s][t][u]
|
||||
[v][w][x][y][z][#]
|
||||
[Gast]
|
||||
|
||||
(Ereignis: Tastendruck z.B. wenn \# dann Sonderzeichen Namen zeigen)
|
||||
|
||||
2\. name selection
|
||||
|
||||
Dennis
|
||||
DoB
|
||||
DmB
|
||||
...
|
||||
|
||||
(Ereignis: Namenswahl oder timeout 5s)
|
||||
|
||||
3\. scan demand
|
||||
|
||||
Hallo Dennis,
|
||||
Scanne ein Getränk!
|
||||
|
||||
(Ereignis: Scan! oder timeout 10s)
|
||||
|
||||
4\. scan result & donate prompt
|
||||
|
||||
Club Mate
|
||||
EAN 123456778890
|
||||
Spende bitte 1,00€ in die Kasse!
|
||||
Flaschenaufkleber wird gedruckt...
|
||||
|
||||
(Warten bis timeout 10s oder Touch! -\> home)
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
##### Fall 2 - member mit Digital-Konto und Barcode membercard
|
||||
|
||||
(Ereignis: Scan einer membercard!)
|
||||
|
||||
1\. scan demand & credit balance
|
||||
|
||||
Hallo Banana,
|
||||
Kontostand: 13€
|
||||
Scanne ein Getränk!
|
||||
|
||||
(Ereignis: timeout 10s -\> home oder Scan!)
|
||||
|
||||
2\. scan result & credit balance
|
||||
|
||||
Club Mate
|
||||
EAN 123456778890
|
||||
1,00€ von Dir wurde gespendet!
|
||||
Kontostand: 12€
|
||||
Flaschenaufkleber wird gedruckt...
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
##### Fall 3 - Direkter Scan einer Flasche/Objekts
|
||||
|
||||
(Ereignis: Scan!)
|
||||
|
||||
1\. scan result & donation prompt
|
||||
|
||||
Club Mate
|
||||
EAN 123456778890
|
||||
1,00€ in die Kasse spenden?
|
||||
[Ja] [Nein]
|
||||
|
||||
(Ereignis: "Nein"! oder timeout 10s -\> zurück nach homescreen.
|
||||
"Ja"! -\> Namensauswahl)
|
||||
|
||||
2\. homescreen with login
|
||||
|
||||
Wer bist Du?
|
||||
[a][b][c][d][e][f][g]
|
||||
[h][i][j][k][l][m][n]
|
||||
[o][p][q][r][s][t][u]
|
||||
[v][w][x][y][z][#]
|
||||
[Gast]
|
||||
|
||||
(Ereignis: timeout 5s -\> home; Tastendruck z.B. wenn \# dann
|
||||
Sonderzeichen Namen zeigen)
|
||||
|
||||
3\. name selection
|
||||
|
||||
Dennis
|
||||
DoB
|
||||
DmB
|
||||
...
|
||||
|
||||
(Ereignis: timeout 5s -\> home oder Namenswahl)
|
||||
|
||||
4\. donation prompt
|
||||
|
||||
Hallo DmB,
|
||||
Spende bitte 1,00€ in die Kasse!
|
||||
Flaschenaufkleber wird gedruckt...
|
||||
|
||||
(Warten bis timeout 10s oder Touch! -\> home)
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
#### Spezifikation für den Barcode
|
||||
|
||||
23Z YYYY YYYXX C
|
||||
|
||||
enum Z
|
||||
{
|
||||
Steuerkarte = 0,
|
||||
Guthabenkarte = 1
|
||||
}
|
||||
|
||||
X - Steuerkarte:
|
||||
Anzahl an Elementen/Flaschen
|
||||
Guthabenkarte:
|
||||
Ursprünglicher Betrag
|
||||
|
||||
Y - Steuerkarte:
|
||||
0
|
||||
Guthabenkarte:
|
||||
Random
|
||||
|
||||
C - EAN-Checksum
|
||||
|
||||
Der Barcode startet mit 23, um mit dem EAN-13-Standard kompatibel zu
|
||||
sein (20-29 für In-Store-Functions). Vgl:
|
||||
<http://www.barcodeisland.com/ean13.phtml>
|
||||
|
||||
#### Datenbank
|
||||
|
||||
<!-- {{http://i.imgur.com/QJvq4nW.png}} -->
|
||||
|
||||
#### Feature Ideen
|
||||
|
||||
- Scanpiep ersetzen durch Schraubverschluss Geräusch (Zischhhh)
|
||||
- NFC Bezahl Methode
|
||||
- Nach Scan wird ein selbstklebendes Etikett ausgedruckt zum
|
||||
Flasche markieren (User ID, Datum, Glückskeksspruch ...)
|
||||
- Auf Flipdot Display werden gescannte Getränke gezählt (beta: nur
|
||||
3 stellig, später mehr Infos wie Getränketyp)
|
||||
- Datenbank schlägt Alarm, wenn kritische Lagerbestände
|
||||
unterschritten werden (-\> Getränke-Einkauf)
|
||||
- Statistiken über Getränke :D
|
||||
- Zusätzlich gibt es einen Hardware Knopf mit dem ich alle
|
||||
Aktionen abbrechen kann und wieder zurück in den Initialzustand
|
||||
wechseln kann
|
||||
- Datenbank läuft mit auf dem PI, Daten bleiben im Space
|
||||
|
||||
#### Hack
|
||||
|
||||
Getränkezähler mit Flipdotdisplay verbunden und schöne Invaders
|
||||
lowres-font implementiert.
|
||||
|
||||
"Wir kommen doch nicht über 999 Getränke pro Tag oder?" -\>
|
||||
Getränkezähler geDoSt: Makita, Deutschlandflagge, Krepklebeband,
|
||||
Bier-Etikett, Mate-Ettiket \^\^
|
||||
|
||||
<!-- {{attachment:IMG_20160429_190628.jpg}} -->
|
||||
<!-- {{attachment:IMG_20160429_190844.jpg}} -->
|
||||
<!-- {{attachment:VID_20160429_190711.mp4}} -->
|
||||
<!-- {{attachment:VID_20160429_190901.mp4}} -->
|
||||
<!-- {{attachment:VID_20160501_211820.mp4}} -->
|
||||
<!-- <attachment:VID_20160501_211820.mp4> -->
|
||||
<!-- <attachment:VID_20160429_190711.mp4> -->
|
||||
<!-- <attachment:VID_20160429_190901.mp4> -->
|
28
getränkezähler/usage.md
Normal file
28
getränkezähler/usage.md
Normal file
|
@ -0,0 +1,28 @@
|
|||
+++
|
||||
title = "Getränkezähler: Usage"
|
||||
+++
|
||||
|
||||
## Getränke kaufen
|
||||
|
||||
1. Getränk mit Scanner an der Wand einscannen
|
||||
2. Deinen Username auswählen
|
||||
3. Auf Zuordnen klicken
|
||||
4. Bestätigung wird angezeigt
|
||||
|
||||
## Guthaben aufladen
|
||||
|
||||
1. Die Seite <http://drinks-touch.fd/> während du im Space bist öffnen
|
||||
2. Auswählen, dass du Guthaben aufladen willst
|
||||
3. Den Anweisungen auf dem Bildschirm folgen
|
||||
|
||||
## Neue Getränke-Arten hinzufügen
|
||||
|
||||
1. [Git-Repo](https://github.com/flipdot/drinks-scanner-display) klonen
|
||||
2. Einen SSH-Tunnel bauen, damit du auf die Datenbank kommst
|
||||
(`ssh -L 5432:127.0.0.1:5432 pi@drinks-touch`)
|
||||
3. Das Skript `./tool_add_drink.py --help` ausführen,
|
||||
die Hilfe zeigt dir, welche Parameter eingegeben werden müssen
|
||||
|
||||
## Siehe auch
|
||||
|
||||
<https://flipdot.org/wiki/Getr%C3%A4nke>
|
24
grafana.md
Normal file
24
grafana.md
Normal file
|
@ -0,0 +1,24 @@
|
|||
+++
|
||||
title = "Grafana"
|
||||
+++
|
||||
|
||||
Mit [Grafana](https://stats.flipdot.org/) können wir die gemessenen Daten des Spaces darstellen
|
||||
und analysieren. Vgl. [Neuland/Cyber](Neuland/Cyber)
|
||||
|
||||
## Daten
|
||||
|
||||
- Eingeloggte member im WLAN (security by obscurity)
|
||||
- Eingeloggte Nutzer im flipdot Freifunk
|
||||
- Öffnungszeiten des Space
|
||||
- Internet-Traffic im Space (Up/Down)
|
||||
- [Stromverbrauch](/projekte/watts-up-pi/)
|
||||
- Bewegungsmelder (pro Raum)
|
||||
- Toiletten Besetzt/Freistatus
|
||||
- Toilettenpapierstand
|
||||
- [Getränkefüllstand](/projekte/getränkezähler/) (pro Getränkesorte)
|
||||
- CO2 Werte
|
||||
- Lautstärke (pro Raum)
|
||||
- Öffnungszeiten im Space (vorerst Flipdot Display Ping später Türstatus)
|
||||
- Türsensoren unten
|
||||
- Temperatur im Space (über die Heizung)
|
||||
- [Abluftanlage](/projekte/abluftanlage/)
|
34
inventar.md
Normal file
34
inventar.md
Normal file
|
@ -0,0 +1,34 @@
|
|||
+++
|
||||
title = "Inventar"
|
||||
+++
|
||||
|
||||
Ein Versuch, Ordnung ins Chaos zu bringen:
|
||||
|
||||
- <https://flipdot.org/inventar/>
|
||||
- Passwort und Username kennen die member ;)
|
||||
|
||||
## Hacker
|
||||
|
||||
- Felix
|
||||
- Dennis
|
||||
|
||||
## QR
|
||||
|
||||
Wir haben auf fast alles im Space QR Codes geklebt, die auf eine
|
||||
Inventarseite linken. Jedes Objekt soll seine eigene Internetseite mit
|
||||
Foto bekommen. Dort kann man Anmerkungen zum Inventar eintragen.
|
||||
|
||||
## Einpflege Prozess
|
||||
|
||||
Der Prozess des Einfpflegens ist noch nicht für Smartphones optimiert.
|
||||
Er könnte so aussehen:
|
||||
|
||||
1. QR-Aufkleber auf Objekt kleben
|
||||
2. Foto mit Smartphone machen
|
||||
3. QR mit Smartphone scannen
|
||||
4. Foto auf Objektseite hochladen
|
||||
5. Dateneingabe auf Objektseite per Smartphone
|
||||
|
||||
## Bugs
|
||||
|
||||
- Umlaute machen die Bedienung kaputt (UTF8 implementieren!)
|
23
iot.md
Normal file
23
iot.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
+++
|
||||
title = "IoT"
|
||||
+++
|
||||
|
||||
Unter-Seiten:
|
||||
|
||||
* [Anforderungen](anforderungen/)
|
||||
* [Beschaffung](beschaffung/)
|
||||
* [Etat](etat/)
|
||||
* [Hardware](hardware/)
|
||||
* [MQTT-Topics](mqtt-topics/)
|
||||
* [Netzwerk](netzwerk/)
|
||||
* [Nodes](nodes/)
|
||||
* [Software](software/)
|
||||
* [ToDo](todo/)
|
||||
|
||||
<!-- {{https://flipdot.org/blog/uploads/IoD.jpg|Internet of Dings!}} -->
|
||||
|
||||
Im Space sollen Sensoren und Aktoren ausgebracht werden. Überwachen von
|
||||
Türen und Fenstern, Kühlschrank, Herd usw., Steuern von Heizung
|
||||
(und...).
|
||||
|
||||
Lightning Talk Hackover 2017: <!-- <attachment:Hackover-IoD.zip> -->
|
73
iot/anforderungen.md
Normal file
73
iot/anforderungen.md
Normal file
|
@ -0,0 +1,73 @@
|
|||
+++
|
||||
title = "IoT: Anforderungen"
|
||||
+++
|
||||
|
||||
Entwurf - möglichst kein Feature Creep!
|
||||
|
||||
## Sensoren / Aktoren = Knoten
|
||||
|
||||
- Knoten laufen mit Batterieversorgung
|
||||
- Knoten laufen mit Netz, wenn Spannung verfügbar, oder Knoten immer
|
||||
erreichbar sein muß (Für Aktoren wie Heizung)
|
||||
- Hardware und Software für Batterie- und Netzbetrieb identisch,
|
||||
Auswahl durch Jumper
|
||||
- Batterielebensdauer ~ 1 a
|
||||
- Experiment mit Nachladung der Batterien via PV?
|
||||
- Knoten erfassen
|
||||
- Ihren Batteriestatus
|
||||
- Die Wlan Feldstärke
|
||||
- Mechanische Zustände
|
||||
- Temperaturen (optional)
|
||||
- Wasser (optional)
|
||||
- Stromverbrauch / Aktivität von 230 V Verbrauchern (optional)
|
||||
- (Batterie-)Knoten schlafen immer, wachen auf durch
|
||||
- mechanischen Vorgang (Tür wird geöffnet)
|
||||
- Schwellwertüberschreitung (Helligkeit \< Schwellwert) (optional,
|
||||
Anwendungsfall noch offen, Detektion offener Fenster?)
|
||||
- Knoten übertragen entweder
|
||||
- nur eine Transition (Lichtschranke durchschritten, Klingeltaste
|
||||
gedrückt) => einfacher Aufbau, ESP im
|
||||
DeepSleep, oder
|
||||
- Transition und neuen Status (Tür wurde bewegt, ist jetzt offen)
|
||||
=> Attiny nötig um *Wechsel* zu erkennen, *oder* Lösung mit zwei Schaltern
|
||||
- Knoten sind billig
|
||||
|
||||
## Infrastruktur / Vernetzung
|
||||
|
||||
- Denkbar: Ein separates Wlan nur für IoT ohne Kontakt zum Internet
|
||||
- lokale Zentrale im Space ist in diesem separaten Netz
|
||||
|
||||
## Zentrale / API
|
||||
|
||||
- Es gibt eine lokale Zentrale im Space, die die Knotendaten
|
||||
einsammelt und verteilt (MQTT Broker)
|
||||
- Die Sensorbenamung folgt einem Regelwerk: mögliche Messwerte,
|
||||
Raumbezeichner..
|
||||
|
||||
## Verarbeitung
|
||||
|
||||
- Es kann (einen) Knoten geben, welcher Daten vom Broker erhält
|
||||
(abonniert) und verarbeitet, und der
|
||||
- Die Daten verknüpft (Heizung = an & Fenster = auf),
|
||||
(Kühlschrank > 5 min geöffnet) und Aktionen an die Knoten sendet
|
||||
- Die Daten (zyklisch) an die Space API "draussen" meldet
|
||||
- Befehle entgegennimmt (IRC, HTTP, ...) und an die Knoten sendet
|
||||
- Eine Hardware-Benutzerschnittstelle zur Verfügung stellt
|
||||
- und leitet daraus ggf. Aktionen ab (Anzeige an zentralem
|
||||
Terminal im Space, Mail an Paten) (Space wurde verlassen /
|
||||
abgeschlossen => Heizungen runterfahren)
|
||||
- Mobile Knoten (aka Fernsteuerungen) denkbar mit festgelegten
|
||||
Funktionen
|
||||
|
||||
## Aktoren / Melder
|
||||
|
||||
- Die Daten der Space Knoten finden Aufnahme in den !Status im IRC
|
||||
- Knotenpaten bekommen Mail wenn Batterie alle
|
||||
- Anzeige an der Ausgangstür: Ein Blick - alle Knoten auf grün, Space
|
||||
kann geschlossen werden, und / oder akustische Benachrichtigung wenn
|
||||
noch ein Knoten auf rot steht
|
||||
- Aktionen triggern (Anzeigen am Space-Ausgang: "Dachluken offen",
|
||||
Klopapier alle", "Herd noch an")
|
||||
- Triggern von Einträgen in Einkaufslisten (Klopapier) oder
|
||||
Bestellungen (Bier? ;)
|
||||
- Reaktionen auf besondere Zustände (Einbruch o.ä.) Mail, SMS ...
|
25
iot/beschaffung.md
Normal file
25
iot/beschaffung.md
Normal file
|
@ -0,0 +1,25 @@
|
|||
+++
|
||||
title = "IoT: Beschaffung"
|
||||
+++
|
||||
|
||||
- Geeignete Mikro- / Reed-Schalter für die entspr. Aufgaben
|
||||
- Fenster / Dachluke / Kühlschrank
|
||||
- <https://www.reichelt.de/Schnappschalter-Endschalter/MAR-1006-1001/3/index.html?ACTION=3&GROUPID=7599&ARTICLE=166850&OFFSET=75&>
|
||||
- Schnappschalter 1xUM 10A-400VAC Rollenhebel 2,99 €, Vorlaufweg
|
||||
max. 3,9 mm, Nachlaufweg min. 1,6 mm (Große Wege - einfache
|
||||
Justage)
|
||||
- Beim Chinamann für
|
||||
[1/10](https://www.aliexpress.com/item/10-Pcs-Roller-Lever-Arm-SPDT-NO-NC-Momentary-Micro-Switches-V-156-1C25/32643444249.html)
|
||||
Preis oder für
|
||||
[1/20](https://www.aliexpress.com/item/Wholesale-10pcs-lot-New-Micro-Roller-Lever-Arm-Normally-Open-Close-Limit-Switch-KW12-3/32613291715.html)
|
||||
- Reed Switches NO, für Öffnerkette am Aussenfenstern (Erfordert Pullup weil kein Wechsler)
|
||||
[1](https://www.aliexpress.com/item/5pcs-Adhesived-Security-Door-Window-Magnetic-Contact-Reed-Switch-NO/32795672550.html),
|
||||
[2](https://www.aliexpress.com/item/Free-Shipping-10pc-Normally-open-reed-switch-proximity-switches-plastic-package-with-mounting-hole-and-wire/1342008298.html).
|
||||
- Reed Wechsler, selber in Gehäuse bauen?
|
||||
- Überlegung: Betätigungsstück für Mikroschalter am Fenster etc auf
|
||||
- <https://www.reichelt.de/Kabelbinder-Montagesockel/KAB-SOCKEL-4-8HS/3/index.html?ACTION=3&GROUPID=5737&ARTICLE=45711&OFFSET=75&>
|
||||
- Kabelsockel für Binder 4,8mm, sw 100er-Pack befestigt? Andere Lösung?
|
||||
- Geschirmte Leitung Schalter -\> IoD Knoten
|
||||
- <https://www.reichelt.de/Mikrofon-Videoleitung/ML-209-25/3/index.html?ACTION=3&GROUPID=5032&ARTICLE=13309&OFFSET=75&>
|
||||
Mikrofonleitung, 2x0,08mm², rund, 25m-Ring 14,95 €. (µC Eingang
|
||||
Hochohmig wegen Verzicht auf Pullup/down)
|
10
iot/etat.md
Normal file
10
iot/etat.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
+++
|
||||
title = "IoT: Etat"
|
||||
+++
|
||||
|
||||
Gesamtetat 250 EUR
|
||||
|
||||
- Reichelt "2017-02-IoT" 49,17 EUR (Prototypenmaterial)
|
||||
- Aliexpress 22.01.2017, 17,41 EUR (10 x ESP)
|
||||
- Reichelt "IoD V0.4 x 20" 133,81 EUR (Material für 20 Knoten. n für
|
||||
Space, n für Typ_o, n für And..., n für \[Yourname\])
|
190
iot/hardware.md
Normal file
190
iot/hardware.md
Normal file
|
@ -0,0 +1,190 @@
|
|||
+++
|
||||
title = "IoT: Hardware"
|
||||
+++
|
||||
|
||||
Unter-Seiten:
|
||||
|
||||
* [Change Requests](change-requests/)
|
||||
* [Messungen](messungen/)
|
||||
* [Platine Löten](platine-löten/)
|
||||
|
||||
*Entwurf*
|
||||
|
||||
Knoten (= Sensoren oder Aktoren)
|
||||
|
||||
## Brainstroming
|
||||
|
||||
<!-- [{{attachment:IoD_V0.3.jpg|attachment:IoD_V0.3.jpg|width="600"}}](attachment:IoD_V0.3.jpg) -->
|
||||
|
||||
- ESP8266-01 (billigster Typ), ggf. [Whitty
|
||||
Cloud](http://www.schatenseite.de/2016/04/22/esp8266-witty-cloud-modul/)
|
||||
Modul (schick)
|
||||
- Batterieversorgung Alkaline / Eneloop (ggf. ergänzt durch PV)
|
||||
- Jumper für Dauerstrom (Platz für Low Drop Regler vorsehen?)
|
||||
- Stromsparen durch
|
||||
- Deepsleep (~ 200 µA)
|
||||
- *oder* separater Attiny zum Aufwecken (Interrupt on Port change) (~ 0,2 µA)
|
||||
- *oder* Taster in der Vcc Leitung, der von MOSFET durch ESP
|
||||
überbrückt wird (vermutlich \<\< 0,1 µA)
|
||||
- ESP Module möglichst ohne Modifikation verwenden (Ausser LED für
|
||||
Betriebsspannungsanzeige auslöten)
|
||||
- Einfache Gehäusemontage (Tropfenlöcher zum Einhängen o.Ä.)
|
||||
- Vorhandene Gehäuse? Diese zweiteiligen Schraubdosen von DMB?
|
||||
- Einfacher Batterietausch
|
||||
|
||||
## Schaltung
|
||||
|
||||
<!-- {{attachment:knoten-sch0.4.png}} -->
|
||||
|
||||
## Funktion
|
||||
|
||||
<!-- [{{attachment:20170125_164320.jpg|attachment:20170125_164320.jpg|width="400"}}In](attachment:20170125_164320.jpg) -->
|
||||
In einem ersten Muster haben wir den ESP in Ruhe im Sleep Mode betrieben,
|
||||
und über seine Reset Leitung geweckt (In [Messungen](messungen/)
|
||||
Details zur Akkulaufzeit). An einer Tür ist dazu ein Schleifkontakt
|
||||
nötig, der sowohl bei geschlossener als auch bei offener Tür nicht
|
||||
aktiviert ist, und nur z.B. während der Öffnungsbewegung ein mal
|
||||
aktiviert wird, und den ESP damit weckt.
|
||||
|
||||
Nachteil: Der ESP weiss nicht, ober die Tür nach dem schließen des
|
||||
Kontaktes offen oder geschlossen ist. Gut geeignet ist diese Methode
|
||||
jedoch zb. als Einbruchsalarm. Leider kann man den ESP nicht über Port
|
||||
Change Interrupts wecken. Deswegen haben wir den Attiny vorgesehen, der
|
||||
sowohl bei steigender als auch bei fallender Flanke geweckt wird, und
|
||||
dem ESP die aktuelle Schalterstellung melden kann. Als weiteren Vorteil
|
||||
bekommen wir so einen deutlich geringeren Ruhestromverbrauch, da der ESP
|
||||
komplett abgeschaltet werden kann - nur der Attiny bleibt im Deep Sleep
|
||||
an der Batterie.
|
||||
|
||||
## Betriebszustände
|
||||
|
||||
Ruhezustand:
|
||||
|
||||
- Der Attiny befindet sich im Sleep-Mode
|
||||
- ESP ist abgeschaltet
|
||||
|
||||
Aufwachen:
|
||||
|
||||
- Attiny wird durch Interrupt on Port Change aufgeweckt
|
||||
- und schaltet über den Mosfet den ESP ein
|
||||
|
||||
Daten übertragen:
|
||||
|
||||
- Der ESP stellt mit einer festen IP-Adresse (Schneller als DNS) eine
|
||||
Verbindung zum Access Point her
|
||||
- und überträgt die aktuelle Schalterstellung des Sensors, die er über
|
||||
SWITCH_STATE vom Attiny gemeldet bekommt, zum Server
|
||||
- Am Ende der Übertragung prüft der Attiny, ob die Schalterstellung
|
||||
noch mit jener zu Beginn des Aufwachzyklus identisch ist
|
||||
- Wenn ja: Schlafen. Wenn nein (d.h., die Tür wurde nur ganz kurz
|
||||
geöffnet und sofort wieder geschlossen) wird 5 sec gewartet und die
|
||||
dann herrschende Schalterstellung erneut übertragen. So wird
|
||||
inkonsistente Information über Türzustand vermieden
|
||||
|
||||
Abschalten / schlafen gehen
|
||||
|
||||
- Nach erfolgreicher Übertragung bittet der ESP den Attiny über die
|
||||
Leitung SHUTDOWN, ihn abzuschalten
|
||||
- Attiny schaltet den Mosfet und damit den ESP ab
|
||||
- und legt sich selber wieder schlafen
|
||||
|
||||
## Bestückungs- und Funktionsvarianten
|
||||
|
||||
- ESP in Ruhe abgeschaltet:
|
||||
- Jumper 1 Pwr_Ctrl: 2-3 gesteckt
|
||||
- Jumper 2: offen
|
||||
- Jumper 5: RST via Attiny offen
|
||||
- ESP in Ruhe im Sleep Mode
|
||||
- Jumper 1 Pwr_Ctrl: 1-2 gesteckt
|
||||
- Jumper 2: gesteckt
|
||||
- Jumper 5: RST via Attiny gesteckt
|
||||
|
||||
ESP in Ruhe abgeschaltet: Geringer Ruhestromverbrauch (ca. 0,2 µA),
|
||||
jedoch längere Zeit beim Verbindungsaufbau. Geeignet bei selten
|
||||
betätigten Knoten.
|
||||
|
||||
ESP in Ruhe im Sleep Mode: Höherer Ruhestromverbrauch (ca. 200 µA),
|
||||
deutlich kürzere Zeit beim Verbindungsaufbau. Geeignet bei häufig
|
||||
betätigten Knoten.
|
||||
|
||||
## Stromverbrauch
|
||||
|
||||
Der Verwendete Attiy 45V-10SU (Final 25V-10SU) ist
|
||||
[spezifiziert](http://www.atmel.com/Images/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet-Summary.pdf)
|
||||
mit Power-down Mode: 0,1 μA at 1.8V, Operating Voltage -- 1.8 - 5.5V und
|
||||
Speed Grade 0 -- 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V.
|
||||
|
||||
## Stromversorgungsvarianten
|
||||
|
||||
Die Schaltung ist für Betrieb mit drei AA Eneloop Zellen konzipiert.
|
||||
Eneloops haben eine sehr geringe Selbstentladung und versprechen nach
|
||||
einem Versuch über knapp 200 Tage einen Betrieb in Jahresfrist ohne
|
||||
Akkuwechsel. Dazu wird die Spannung der Eneloops am Pin BATT_HIGH
|
||||
eingespeist. Eine Schottkydiode in Serie verhindert, dass bei frisch
|
||||
geladenen Zellen Vcc max des ESP überschritten wird.
|
||||
|
||||
Alternativ kann die Schaltung mit zwei AA Alkaline-Zellen betrieben
|
||||
werden. Da diese im neuen Zustand nur wenig mehr als 1,5 V je Zelle
|
||||
liefern, ist die Diode unnötig, und die Batteriespannung wird an
|
||||
BATT_LOW eingespeist
|
||||
|
||||
## Bestückungsplan Hardwareversion 0.41
|
||||
|
||||
<!-- {{attachment:Bestueckung-v0.41.png}} -->
|
||||
|
||||
## Material
|
||||
|
||||
\|\|\<tablewidth="100%"\>**Anzahl** \|\|**Bezeichnung** \|\|**Preis**
|
||||
\|\|**Bestell-Link** \|\| \|\|1 \|\|ESP8266-01 \|\|1,41
|
||||
\|\|[ESP-01](https://www.aliexpress.com/item/Free-shipping-ESP8266-serial-WIFI-wireless-module-wireless-transceiver/32267651506.html)
|
||||
\|\| \|\|1 \|\|AO 3413, MOSFET P-CH, 20V, 3A, SOT-23 (Schaltet ESP ein)
|
||||
\|\|0,21 \|\|[AO
|
||||
3413](https://www.reichelt.de/AO-BTS-Transistoren/AO-3413/3/index.html?ACTION=3&LA=5&ARTICLE=166493&GROUPID=7161&artnr=AO+3413)
|
||||
\|\| \|\|1 \|\|ATTINY 25V-10 SU :: Atmel AVR-RISC-Controller, SOIC-8
|
||||
\|\|1,30 \|\|[ATTINY
|
||||
25V-10SU](https://www.reichelt.de/Atmel-Attiny-AVRs/ATTINY-25V-10-SU/3/index.html?ACTION=3&GROUPID=2958&ARTICLE=69298&OFFSET=75&)
|
||||
\|\| \|\|1 \|\|B 140 F, SMD-Schottky-Diode, DO214AC/SMA, 40V, 1A
|
||||
\|\|0,08 \|\|[B 140
|
||||
F](https://www.reichelt.de/BA-BAY-BB-Dioden/B-140-F/3/index.html?ACTION=3&LA=5&ARTICLE=95199&GROUPID=2988&artnr=B+140+F)
|
||||
\|\| \|\|4 \|\|12 kOhm, SMD Widerstand 0805, 100 mW, 1% \|\|0,01
|
||||
\|\|[RND 0805 1
|
||||
12K](https://www.reichelt.de/SMD-0805-von-1-bis-910-kOhm/RND-0805-1-12K/3/index.html?ACTION=3&LA=5&ARTICLE=183253&GROUPID=7971&artnr=RND+0805+1+12K)
|
||||
\|\| \|\|1 \|\|SMD-Kerko, 1210, 100µF, 6,3V, 20%, MLCC \|\|0,25 \|\|[X5R
|
||||
1210 DB
|
||||
100U](https://www.reichelt.de/Vielschicht-SMD-G1210/X5R-1210-DB-100U/3/index.html?ACTION=3&GROUPID=3167&ARTICLE=194475&OFFSET=75&)
|
||||
\|\| \|\|3 \|\|Vielschicht-Kerko, 100nF, 50V (Alternativ in
|
||||
[0603](https://www.reichelt.de/Vielschicht-SMD-G0603/KEM-Y5V0603-100N/3/index.html?ACTION=3&GROUPID=3166&ARTICLE=207005&OFFSET=75&))
|
||||
\|\|0,02 \|\|[KEM X7R0805
|
||||
100N](https://www.reichelt.de/Vielschicht-SMD-G0805/KEM-X7R0805-100N/3/index.html?ACTION=3&GROUPID=8048&ARTICLE=207073&OFFSET=75&)
|
||||
\|\| \|\|0,5 \|\|2x10pol. Buchsenleiste, gerade, RM 2,54 (Halbiert für
|
||||
ESP Anschluß) \|\|0,56 \|\|[BL 2X10G
|
||||
2,54](https://www.reichelt.de/Buchsenleisten/BL-2X10G-2-54/3/index.html?ACTION=3&GROUPID=7435&ARTICLE=6074&OFFSET=75&)
|
||||
\|\| \|\|3 \|\|Batteriehalter, 1x Mignon "AA" \|\|0,24 \|\|[HALTER
|
||||
1XAAK](https://www.reichelt.de/Batteriehalter-fuer-Mignon/HALTER-1XAAK/3/index.html?ACTION=3&LA=5&ARTICLE=113154&GROUPID=4255&artnr=HALTER+1XAAK)
|
||||
\|\| \|\|0,1 \|\|Jumper 40pol. Stiftleiste, gewinkelt, RM 2,54 (Jumper
|
||||
für Aktivierung des Wifi Manager im Betrieb) \|\|0,22 \|\|[SL 1X40W
|
||||
2,54](https://www.reichelt.de/Stiftleisten/SL-1X40W-2-54/3/index.html?ACTION=3&GROUPID=7434&ARTICLE=19507&OFFSET=75&)
|
||||
\|\| \|\|1 \|\|Kurzschlussbrücke, rot, mit Grifflasche (Jumper für
|
||||
Aktivierung des Wifi Manager im Betrieb) \|\|0,04 \|\|[JUMPER 2,54GL
|
||||
RT](https://www.reichelt.de/Stiftleisten/JUMPER-2-54GL-RT/3/index.html?ACTION=3&GROUPID=7434&ARTICLE=9018&OFFSET=75&)
|
||||
\|\| \|\|1 \|\|Stiftleiste 2,54 mm, 2X03, gerade (Für ISP Anschluß)
|
||||
\|\|0,14 \|\|[MPE
|
||||
087-2-006](https://www.reichelt.de/Stiftleisten/MPE-087-2-006/3/index.html?ACTION=3&GROUPID=7434&ARTICLE=119893&OFFSET=75&)
|
||||
\|\| \|\|1 \|\|Stiftleiste 2,54 mm, 1X06, gerade (für Batterie und
|
||||
Schalter Anschluß, die drei Pins für Schalter werden nachträgl. um 90°
|
||||
gebogen) \|\|0,14 \|\|[MPE
|
||||
087-1-006](https://www.reichelt.de/Stiftleisten/MPE-087-1-006/3/index.html?ACTION=3&GROUPID=7434&ARTICLE=119883&OFFSET=75&)
|
||||
\|\| \|\|1 \|\|MPE 094-1-003 :: Buchsenleisten 2,54 mm, 1X03, gerade
|
||||
(Schalter Anschluß, kommt am die Leitung zum Schalter) \|\|0,13 \|\|[MPE
|
||||
094-1-003](https://www.reichelt.de/Buchsenleisten/MPE-094-1-003/3/index.html?ACTION=3&GROUPID=7435&ARTICLE=119912&OFFSET=75&)
|
||||
\|\| \|\| \|\|1 \|\|Platine (0,20 Basismaterial, 0,10 Chemie geschätzt)
|
||||
\|\|0,30 \|\| \|\| \|\| \|\| \|\|**Summe ca.** \|\|**5,00** \|\| \|\|
|
||||
\|\|
|
||||
|
||||
## Änderungen für kommende Hardware Revision 0.5
|
||||
|
||||
- Elko 330 µF ersetzt durch Kerko 100 µF
|
||||
- Zusätzlicher Kerko 100 nF am Reset Pin Attiny (Fix für
|
||||
Startprobleme)
|
||||
- Kerko 100 nF an Vcc Attiny ersetzt durch Kerko 10 µF (Fix für
|
||||
Startprobleme)
|
15
iot/hardware/change-requests.md
Normal file
15
iot/hardware/change-requests.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
+++
|
||||
title = "IoT-Hardware: Change Requests"
|
||||
+++
|
||||
|
||||
Aktuell PCB V0.4
|
||||
|
||||
- Footprint von C1 von Elko auf Kerko ändern
|
||||
- Footprint von C2 - C4 von Kunnstofffolie auf Kerko ändern
|
||||
- Iso-Spalt bei den Lötjumpern wesentlich kleiner
|
||||
- Dünne Tracks bei den Lötjumpern für default Brücken legen
|
||||
- J3 durch Taster ersetzen?
|
||||
- Funktionsvariante "Attiny nicht bestückt, Sensortaster über Mosfet, ESP steuert Mosfet zur
|
||||
Selbsthaltung" vorsehen. Das geht aktuell mit J1 und J5 schon wenn der Attiny nicht bestückt ist,
|
||||
es fehlt nur Taster-Anschluss über dem Mosfet.
|
||||
- Eine WS2812 LED aufs Board für chique Signalisierung?
|
63
iot/hardware/messungen.md
Normal file
63
iot/hardware/messungen.md
Normal file
|
@ -0,0 +1,63 @@
|
|||
+++
|
||||
title = "IoT-Hardware: Messungen"
|
||||
+++
|
||||
|
||||
## Messungen, Hardwarestand 0.4
|
||||
|
||||
330 µF Elko an der Batterie und 100 nF Kunsstoffolienkondensator direkt
|
||||
am ESP.
|
||||
|
||||
### Betriebsspannung nach der Schottky-Diode (Leitung BATT_LOW) DC Coupling
|
||||
|
||||
<!-- [{{attachment:Supply_DC_coupling.bmp|attachment:Supply_DC_coupling.bmp|width="600"}}](attachment:Supply_DC_coupling.bmp) -->
|
||||
Bei abgeschaltetem ESP und Attiny im Sleep Mode ist die Stromaufnahme so
|
||||
gering, dass an der Diode keine nennenswerte Spannung abfällt. Mit
|
||||
aktiviertem Attiny und ESP sinkt die Spannung nach der Diode um ~ 0,3 V,
|
||||
die Schwellspannung der Diode.
|
||||
|
||||
### Betriebsspannung nach der Schottky-Diode (Leitung BATT_LOW) AC Coupling
|
||||
|
||||
<!-- [{{attachment:Supply_AC_coupling.bmp|attachment:Supply_AC_coupling.bmp|width="600"}}](attachment:Supply_AC_coupling.bmp) -->
|
||||
Die Betriebsspannung bricht beim Verbindungsaufbau zyklisch um ca 50 mV
|
||||
ein, in der Übertragungsphase um ca 100 mV.
|
||||
|
||||
Mit 10 µF Kerko an der Batterie und 100 nF Kunsstoffolienkondensator
|
||||
direkt am ESP: Die Betriebsspannung bricht max. um ca 200 mV ein.
|
||||
|
||||
## Messungen zur Akkulaufzeit
|
||||
|
||||
### Nur ESP im Deep Sleep
|
||||
|
||||
<!-- [{{attachment:20170125_164320.jpg|attachment:20170125_164320.jpg|width="400"}}](attachment:20170125_164320.jpg) -->
|
||||
|
||||
Im Vorlauf haben wir eine einfache Schaltung verwendet, bei der der ESP
|
||||
im Deep Sleep Modus ca. 300 µA Strom aufnimmt. An einer Haustür
|
||||
angebracht wurde die Schaltung im Mittel ca. sechs mal am Tag aktiviert.
|
||||
Der Verlauf der Akkuspannung läßt einen Betrieb für ein Jahr ohne
|
||||
Akkuwechsel möglich erscheinen. Das Auf und Ab der Akkuspannung
|
||||
korreliert mit dem Temperaturverlauf am Montageort - wärmer => höhere
|
||||
Zellenspannung.
|
||||
|
||||
### Eneloop Akkutest
|
||||
|
||||
<!-- [{{attachment:Eneloop-Test.jpg|attachment:Eneloop-Test.jpg}}](attachment:Eneloop-Test.jpg) -->
|
||||
|
||||
## Messungen zum Stromverbrauch
|
||||
|
||||
- Attiny 45V-10SU
|
||||
- Versorgung 3 x Eneloop AA via Schottky Diode
|
||||
- Messung mit Hameg HM 8011-3
|
||||
|
||||
Laut Datenblatt zieht der Attiny im Power-down Mode: 0,1 μA at 1.8V.
|
||||
|
||||
Gemessen habe ich 0,12 µA bei 3,92 V Akkuspannung, 3,91 V am Tiny (keine
|
||||
nennenswerte Schwellspannung an der Schottky Diode bei dem kleinen
|
||||
Strom). Sobald der ESP arbeitet, sinkt die Spannung an Tiny und ESP auf
|
||||
ca. 3,2 V.
|
||||
|
||||
<!-- [{{attachment:current.bmp|attachment:current.bmp|width="600"}}](attachment:current.bmp) -->
|
||||
|
||||
Messung über einen 1 Ohm Shunt, 50 mV entspricht 50 mA. Ähnlich wie
|
||||
andernorts im Netz beschrieben ist der Verbrauch des Digitalteils ca. 70
|
||||
mA, Stromspitzen durch den Transceiver ~ 270 mA.
|
||||
|
66
iot/hardware/platine-löten.md
Normal file
66
iot/hardware/platine-löten.md
Normal file
|
@ -0,0 +1,66 @@
|
|||
+++
|
||||
title = "IoT-Hardware: Platine Löten"
|
||||
+++
|
||||
|
||||
Schritte der Bestückung
|
||||
|
||||
## Leere Platine:
|
||||
|
||||
<!-- {{attachment:IoD-00.jpg}} -->
|
||||
|
||||
## Brücken aus 0,6 mm versilbertem Schaltdraht:
|
||||
|
||||
<!-- {{attachment:IoD-01.jpg}} -->
|
||||
|
||||
## Brücken gelötet:
|
||||
|
||||
<!-- {{attachment:IoD-02.jpg}} -->
|
||||
|
||||
## Widerstände:
|
||||
|
||||
<!-- {{attachment:IoD-03.jpg}} -->
|
||||
|
||||
## Kondensatoren 100 nF
|
||||
|
||||
Wenn die Controller noch nicht programmiert sind ( = auf der Platine
|
||||
programmiert werden sollen), dann den Kondensator C3 links an der
|
||||
sechspoligen Steckerleiste erstmal nicht bestücken - der liegt an der
|
||||
ISP - Leitung MOSI, und stört manche Programmer.
|
||||
|
||||
<!-- {{attachment:IoD-05.jpg}} -->
|
||||
|
||||
## Schottky - Diode. Kathodenstrich rechts
|
||||
|
||||
<!-- {{attachment:IoD-06.jpg}} -->
|
||||
|
||||
## Kondensator 100 µF und Lötbrücke für Jumper 1
|
||||
|
||||
<!-- {{attachment:IoD-07.jpg}} -->
|
||||
|
||||
## Mikrocontroller, Pin 1 unten rechts
|
||||
|
||||
<!-- {{attachment:IoD-08.jpg}} -->
|
||||
|
||||
## Jumper 3 (WiFi Setup)
|
||||
|
||||
<!-- {{attachment:IoD-09.jpg}} -->
|
||||
|
||||
## Buchsenleiste, 2x4 Pole abschneiden und anwinkeln
|
||||
|
||||
<!-- {{attachment:IoD-10.jpg}} -->
|
||||
|
||||
## Buchsenleiste eingelötet
|
||||
|
||||
<!-- {{attachment:IoD-11.jpg}} -->
|
||||
|
||||
## ISP - Stecker
|
||||
|
||||
<!-- {{attachment:IoD-12.jpg}} -->
|
||||
|
||||
## Stecker für Sensor und Batterie
|
||||
|
||||
Je nach Gehäuse kann es sinnvoll sein, die drei Pins für den Anschluß
|
||||
des Sensors (Umschalter) abzuwinkeln.
|
||||
|
||||
<!-- {{attachment:IoD-13.jpg}} -->
|
||||
|
144
iot/mqtt-topics.md
Normal file
144
iot/mqtt-topics.md
Normal file
|
@ -0,0 +1,144 @@
|
|||
+++
|
||||
title = "IoT: MQTT-Topics"
|
||||
+++
|
||||
|
||||
Grundlegende Aufteilung der MQTT-Topics in Quellen und Senken (Sensoren
|
||||
= Quellen, Aktoren = Senken). Ein Topic-Namensraum gehört den Sensoren,
|
||||
ein Topic-Namensraum den Aktoren. Ein Verknüpfungs-Layer abonniert die
|
||||
Sensor-Namensräume, und postet in den Aktor-Namensräumen. Klartext
|
||||
Topics erlauben z.B. auf einem Bedienpanel lesbare Logs anzuzeigen.
|
||||
(vgl.:
|
||||
[Bamberg](https://www.hackerspace-bamberg.de/Space_Automation))
|
||||
|
||||
~~(Ein besonderer Topic-namensraum ist *Device Presence Control*. Hier
|
||||
können kritische Nodes wie z.B. Einbruchssensoren etc. zyklisch ihre
|
||||
Funktionsfähikeit melden)~~ Ist in MQTT schon eingebaut
|
||||
|
||||
## Raumnamen
|
||||
|
||||
- `lounge` (Sofaecke, ...)
|
||||
- `work_el` (Elektronikwerkstatt, Netzwerkschrank, ...)
|
||||
- `work_mech` (Mechanikwerkstatt, Fräsraum, ...)
|
||||
- `raum4` (Beamer, Regalreihe, Workshops, ...)
|
||||
- `kitchen` (Küche, Besteck, Dusche, ...)
|
||||
- `hall` (Flur, Ofen, Geschirr, ...)
|
||||
- `restroom` (Toiletten, Reinigungsmittel, ...)
|
||||
- `cellar` (Ebenerdiger "Keller", Getränkelager, ...)
|
||||
- `entrance_front` (Gelbe Eingangstür, Südwestseite, Klingel, Abstellgleis, ...)
|
||||
- `entrance_back` (Orange Eingangstür, Nordortseite, Hof, Pennertonne, ...)
|
||||
- `all` (Spezialfall für Sensoren/Aktoren die in allen Räumen gleich
|
||||
sind, z.B. `sensor/audio/all/mpd`)
|
||||
|
||||
## Beispiel Topics
|
||||
|
||||
- `sensors/`
|
||||
- `lounge/`
|
||||
- `light_state`
|
||||
- `window_state`
|
||||
- `work_el/`
|
||||
- `door_state`
|
||||
- `light_state`
|
||||
- `soldering_iron_state`
|
||||
- `work_mech/`
|
||||
- `light_state`
|
||||
- `window_state`
|
||||
- `kitchen/`
|
||||
- `light_state`
|
||||
- `hall/`
|
||||
- `light_state`
|
||||
- `restroom/`
|
||||
- `light_state`
|
||||
- `smell_state`
|
||||
- `toilet_flush`
|
||||
- `urinal_flush`
|
||||
- `cellar/`
|
||||
- `drinks_crate_counts`
|
||||
- `drinks_scale_measurements_metric`
|
||||
- `drinks_scale_measurements_raw`
|
||||
- `light_state`
|
||||
- `entrance_front/`
|
||||
- `door_state`
|
||||
- `entrance_back/`
|
||||
- `door_state`
|
||||
- `all/`
|
||||
- `music_info`
|
||||
- `actors/`
|
||||
- `lounge/`
|
||||
- `light_state`
|
||||
- `window_state`
|
||||
- `work_el/`
|
||||
- `light_state`
|
||||
- `work_mech/`
|
||||
- `light_state`
|
||||
- `window_state`
|
||||
- `raum4/`
|
||||
- `light_state`
|
||||
- `window_state`
|
||||
- `kitchen/`
|
||||
- `light_state`
|
||||
- `window_state`
|
||||
- `hall/`
|
||||
- `light_state`
|
||||
- `window_state`
|
||||
- `restroom/`
|
||||
- `light_state`
|
||||
- `toilet_flush`
|
||||
- `urinal_flush`
|
||||
- `cellar/`
|
||||
- `light_state`
|
||||
- `entrance_front/`
|
||||
- `entrance_back/`
|
||||
- `all/`
|
||||
- `music_next_track`
|
||||
- `music_previous_track`
|
||||
- `music_play_pause`
|
||||
- `music_volume_up`
|
||||
- `music_volume_down`
|
||||
|
||||
## Sammlung möglicher Sensoren
|
||||
|
||||
### Mit Schaltern zu realisieren
|
||||
|
||||
- Dachluke Lounge und Küche
|
||||
- Fenster in den einzelnen Räumen (Einfachversion: Schalter in Reihe für Fenster auf / zu).
|
||||
Erfordert dann statt Umschalter eine Kette aus Öffnern + Pullup-Widerstand
|
||||
- Mechanik-Werkstatt
|
||||
- Lounge
|
||||
- Raum 4
|
||||
- Tür Raum 2 (E-Werkstatt / Haupteingang), Erfassung Verriegelungsstatus. Speziell: Sowohl
|
||||
Motorschloß-Riegel als auch Abus-Knebelschloß-Riegel müssen überwacht werden
|
||||
- Tür Raum 4, Erfassung Schließriegel (Öffner gegen Wechsler tauschen)
|
||||
- Kühlschranktür
|
||||
- Klopapierlager (Spender mit senkrechtem Rollenstapel, vorletzte Rolle => Sensorsignal)
|
||||
- Klo besetzt / frei
|
||||
- Außentüren zugezogen (schwierig wegen abgeranzter Mechanik)
|
||||
- Klingelschalter (Ersatz für ISM - Funkklingeln) - ermöglicht
|
||||
automatisches Türöffnen wenn Space auf
|
||||
|
||||
### Besondere Sensoren
|
||||
|
||||
- Bewegungsmelder (Versorgung aus Akku sollte gehen)
|
||||
- Der über dem Kücheneingang
|
||||
- Innenräume im Space?
|
||||
- Wasseralarm (Am Fenster oder auf dem Boden?)
|
||||
- Temperatur in den einzelnen Räumen
|
||||
- In Raummitte
|
||||
- Auf dem Fensterbrett (Detektion offener Fenster zusätzlich zum Fenstersensor?)
|
||||
- Herd / Pizzaofen
|
||||
- Anschluss an Kontrollampe, also Erfassung ob an / aus
|
||||
- Stromerfassung über Wandler / Shunt?
|
||||
- Lötstationen
|
||||
|
||||
## Sammlung möglicher Aktoren
|
||||
|
||||
- 230 V - Lasten (China Relaisplatinen, günstiger 433 MHz Gateway auf
|
||||
Funksteckdosen, spart ausserdem Aufwand für Berührschutz)
|
||||
- Türöffner unten (Relais wie GSM Schloss)
|
||||
- Audio (MPD Ansteuerung)
|
||||
- flipdots
|
||||
- Lüftung
|
||||
- Vorhandener Lüfter im Klo
|
||||
- Motoren an den Dachluken
|
||||
- flipdot - Leuchtkasten vor der M-Werkstatt
|
||||
- Posting im IRC
|
||||
- Mail (Vor allem bei niedrigem Batteriestand wichtig)
|
32
iot/netzwerk.md
Normal file
32
iot/netzwerk.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
+++
|
||||
title = "IoT: Netzwerk"
|
||||
+++
|
||||
|
||||
- Subnetz: 192.168.42.0/24
|
||||
- Gateway: 192.168.42.254
|
||||
- DHCP-Range: .100 - 250
|
||||
- SSID: security-by-iod
|
||||
- Key: \<siehe Forum\>
|
||||
|
||||
<!--
|
||||
## Statische IP-Adressen
|
||||
|
||||
muss \< .100 \|\|IP \|\|ESP-ID = MAC\|\|Geraet \|\|Ort \|\|Bemerkung
|
||||
\|\|Verantwortlicher \|\| \|\|192.168.42.1 \|\| \|\|iod-cellar-lede
|
||||
\|\|Raum hinter oranger Tür \|\| \|\|feliks \|\| \|\|192.168.42.10 \|\|
|
||||
\|\|sensor/door/test \|\|Lounge neben Tür \|\| \|\|typ_o \|\|
|
||||
\|\|192.168.42.11 \|\| \|\|sensor/button/test \|\|Lounge neben Tür \|\|
|
||||
\|\|typ_o \|\| \|\|192.168.42.12\|\|2c:3a:e8:27:3b:a8\|\| \|\| \|\|
|
||||
\|\|typ_o\|\| \|\|192.168.42.13\|\|60:01:94:49:de:4e\|\| \|\| \|\|
|
||||
\|\|typ_o\|\| \|\|192.168.42.14\|\|60:01:94:49:e4:98\|\| \|\| \|\|
|
||||
\|\|typ_o\|\| \|\|192.168.42.15\|\|2c:3a:e8:27:3c:1f\|\| \|\| \|\|
|
||||
\|\|typ_o\|\| \|\|192.168.42.16\|\|2c:3a:e8:27:44:01\|\| \|\| \|\|
|
||||
\|\|typ_o\|\| \|\|192.168.42.17\|\|a0:20:a6:10:6e:17\|\| \|\| \|\|
|
||||
\|\|typ_o\|\| \|\|192.168.42.18\|\|60:01:94:49:e1:4b\|\| \|\| \|\|
|
||||
\|\|typ_o\|\| \|\|192.168.42.19\|\|a0:20:a6:10:6e:18\|\| \|\| \|\|
|
||||
\|\|typ_o\|\| \|\|192.168.42.20\|\|60:01:94:49:d9:40\|\| \|\| \|\|
|
||||
\|\|typ_o\|\| \|\|192.168.42.21\|\|a0:20:a6:10:6e:03\|\| \|\| \|\|
|
||||
\|\|typ_o\|\| \|\|192.168.42.22\|\| \|\| Sonoff \|\| M-Werkstatt \|\|
|
||||
\|\|malled \|\| \|\| \|\| \|\| \|\| \|\| \|\| \|\| \|\| \|\| \|\| \|\|
|
||||
\|\| \|\| \|\|
|
||||
-->
|
51
iot/nodes.md
Normal file
51
iot/nodes.md
Normal file
|
@ -0,0 +1,51 @@
|
|||
+++
|
||||
title = "IoT: Nodes"
|
||||
+++
|
||||
|
||||
Nodes sind alle Teilnehmer am IoT Netz.
|
||||
|
||||
## Sechseck-Lampe
|
||||
|
||||
Basiert auf der [WS2812FX
|
||||
Lib](https://github.com/kitesurfer1404/WS2812FX).
|
||||
|
||||
- Node subscribed Topic: actors/misc/honeycomb0
|
||||
- Funktionen
|
||||
- mode \[0..46\]
|
||||
- speed \[0..255\]
|
||||
- brightness \[0..255\]
|
||||
- color \[#rrggbb\] Hex Werte
|
||||
|
||||
Nette modes:
|
||||
|
||||
- FX_MODE_FIREWORKS, **mode 42, speed 255**
|
||||
- FX_MODE_STROBE_RAINBOW, **mode 24, speed 190**
|
||||
- FX_MODE_HYPER_SPARKLE,**mode 22, speed 0**
|
||||
- FX_MODE_FADE, **mode 12, speed 20**
|
||||
- X_MODE_RAINBOW_CYCLE, **mode 9, speed 0**
|
||||
- FX_MODE_STATIC **mode 0**
|
||||
|
||||
## Panel
|
||||
|
||||
(Neben der Lounge - Tür, 5 LEDs als Demo für ein
|
||||
späteres Status - Panel
|
||||
|
||||
- Node subscribed Topic: actors/lounge/panel
|
||||
- Funktionen: \[n m\]
|
||||
- n = LED \[0..4\]
|
||||
- m = Zustand \[0..1\]
|
||||
|
||||
## Strassenlicht
|
||||
|
||||
- Topic: actors/work_mech/stolperlicht/cmnd/POWER
|
||||
- Nachricht
|
||||
- 0 -\> Aus
|
||||
- 1 -\> Ein
|
||||
|
||||
## Sensor
|
||||
|
||||
(Neben der Lounge - Tür, Rollen-Mikroschalter als Demo für späteren
|
||||
Fenstersensor o.ä.)
|
||||
|
||||
- Topic:
|
||||
- Funktionen:
|
87
iot/software.md
Normal file
87
iot/software.md
Normal file
|
@ -0,0 +1,87 @@
|
|||
+++
|
||||
title = "IoT: Software"
|
||||
+++
|
||||
|
||||
Das "Internet of Dings" Setup im flipdot gruppiert sich um einen
|
||||
zentralen MQTT Server, den Broker. Es gibt ein benutzerfreundliches
|
||||
Web-Fontend und Schnittstellen in den IRC und zur Space API.
|
||||
|
||||
## Fertige Software
|
||||
|
||||
### Mosquitto
|
||||
|
||||
Zentraler MQTT Broker
|
||||
|
||||
- Läuft auf power-pi.fd
|
||||
|
||||
### NodeRed
|
||||
|
||||
Stell das GUI für die wesentlichen Funktionen des Space bereit.
|
||||
Einfaches Web-Frontend, einfache "Programmierung" der Funktionen in
|
||||
Form einer Flow basierten Verdrahtung.
|
||||
|
||||
- Läuft auf power-pi.fd
|
||||
|
||||
## Unser selbst geschriebener Kram
|
||||
|
||||
### iod-esp8266-sensor
|
||||
|
||||
Software für selbst gebaustelte Sensoren. Sendet Status ins Netz,
|
||||
nachdem der ESP von einem Attiny aufgeweckt wurde (siehe auch
|
||||
iod-nodes).
|
||||
|
||||
- Repo: <https://github.com/flipdot/iot-esp8266-sensor>
|
||||
- Verwendete Technik: C++, Arduino
|
||||
- Läuft auf den einzelnen Sensor-Platinen
|
||||
|
||||
### iod-nodes
|
||||
|
||||
Software für selbst gebaustelte Sensoren. Wartet im Standby, bis
|
||||
Schalter An oder Aus geht. Schaltet dann den größeren, stromhungrigeren,
|
||||
WLAN-fähigen ESP8266 ein um die Statusänderung zu
|
||||
übermitteln. Nimmt schließlich nach der Übertragung den Strom wieder weg
|
||||
und legt sich schlafen.
|
||||
|
||||
- Repo: <https://github.com/flipdot/iod-nodes>
|
||||
- Verwendete Technik: C++, Arduino
|
||||
- Läuft auf den einzelnen Sensor-Platinen
|
||||
|
||||
### drinks-storage-mqtt
|
||||
|
||||
Wertet Messungen von Getränkewaagen aus.
|
||||
|
||||
- Repo: <https://github.com/flipdot/drinks-storage-mqtt>
|
||||
- Verwendete Technik: Python 3
|
||||
|
||||
### drinks-storage-state
|
||||
|
||||
Führt Waagen-Messungen durch und schickt die Ergebnisse ins Netz.
|
||||
|
||||
- Repo: <https://github.com/flipdot/drinks-storage-state>
|
||||
- Verwendete Technik: C++, platform.io
|
||||
|
||||
### flipbot
|
||||
|
||||
Unser IRC-Bot. Seit einer Weile auch ans IoD-Netz angeschlossen. Lauscht
|
||||
auf `actors/all/flipbot` und leitet alle Nachrichten von dort in
|
||||
unseren IRC-Channel weiter.
|
||||
|
||||
- Repo: <https://github.com/flipdot/sopel-modules>
|
||||
- Verwendete Technik: Python (FIXME: Version?)
|
||||
|
||||
### iod-api-bridge
|
||||
|
||||
Sammelt Daten im MQTT-Netz und schickt sie zu
|
||||
<https://api.flipdot.org/>.
|
||||
|
||||
- Repo: <https://github.com/flipdot/iod-api-bridge>
|
||||
- Verwendete Technik: Python 3
|
||||
|
||||
### iod-error-spam
|
||||
|
||||
Empfängt Fehlermeldungen anderer MQTT-Teilnehmer und spammt damit den
|
||||
IRC zu (via sopel). Jetzt auch mit Rate Limiting! Zusätzlich bald auch
|
||||
persistente, einfacher zu durchsuchende Logs.
|
||||
|
||||
- Repo: <https://github.com/flipdot/iod-error-spam>
|
||||
- Verwendete Technik: Rust
|
84
iot/todo.md
Normal file
84
iot/todo.md
Normal file
|
@ -0,0 +1,84 @@
|
|||
+++
|
||||
title = "IoT: ToDo"
|
||||
+++
|
||||
|
||||
## Mech
|
||||
|
||||
- ~~(Leitungs-Einlaß für Sensor auf Gehäuseunterseite verlegen)~~
|
||||
- ~~(Zugang zum Wifi-Manager-Jumper auf Gehäuse Unterseite
|
||||
schaffen)~~
|
||||
- ~~(Alternative Deckelmontage ohne Magnete? (Ggf 2 x M3 ins
|
||||
Holz))~~
|
||||
- Schild (Sensorname, Topic, IP, Batteriewechseldatum)
|
||||
|
||||
## Elektro
|
||||
|
||||
- Stromverbrauch Messen bei 0.4
|
||||
- Platinenvariante (bzw. Rework-Anleitung) für Betrieb ohne Attiny
|
||||
machen - ESP hält sich Vcc über MOSFET selber
|
||||
- Platinenvariante für Wemos ESP Platine machen - Schottky raus, mehr
|
||||
Vcc -\> LDO auf dem Wemos
|
||||
- [Variante mit 6 fach Schmitt
|
||||
Trigger](https://github.com/tstoegi/microWakeupper).
|
||||
Ruhestrom für den CMOS Chip 20nA.
|
||||
([Datasheet](http://www.ti.com/lit/ds/symlink/cd40106b.pdf))
|
||||
|
||||
## Software
|
||||
|
||||
- Modul, das Fehlermeldungen der anderen MQTT-Teilnehmer abfängt und
|
||||
in IRC postet / irgendwem als Email schickt
|
||||
- Niedriger Batteriestand **(must)**
|
||||
- Schlechte Feldstärke / häufige Abrüche (nice to have)
|
||||
- Ausbleiben zyklischer I\'m alive Meldungen kritischer
|
||||
MQTT-Teilnehmer (für Knoten, die dauernd online sind / sein
|
||||
müssen, dazu sinnvoll: Topic nur für diese Meldungen)
|
||||
- Modul, das die Meldungen kritischer MQTT-Teilnehmer auswertet und
|
||||
auf dem Leuchtmelder-Tableau an der Ausgangstür anzeigt (Also
|
||||
Dachluken, Fenster, Raum4, etc.) **(must)**
|
||||
- Lesen kritischer MQTT-Teilnehmer-Topics
|
||||
- Lesen des Space Status
|
||||
- Wenn Space Status von offen -\> geschlossen wechselt, und
|
||||
kritische Nodes noch offene Türen etc. melden, lauter Alarm über
|
||||
\$Gerät (Leuchtmelder-Tableau) **(must)**
|
||||
- Modul, das Verknüpfungen realisieren kann
|
||||
- Klingelknopf außen bewirkt Türöffnung wenn Spacestatus = offen
|
||||
(nice to have)
|
||||
- Sensor Klopapier alle bewirkt Bestellung bei Amazon (cherz) ...
|
||||
Aber Eintrag in eine Einkaufsliste?! (nice to have)
|
||||
- Modul, das Steuerung von Aktoren im IoD Netz von außen sicher
|
||||
realisiert. Aktoren:
|
||||
- Heizung
|
||||
- Modul, das Daten aus dem MQTT Netz nach Grafana liefert. Was soll
|
||||
aufgezeichnet werden?
|
||||
([Liste](http://github.com/freifunkks/salt-conf/blob/master/state/graphite/fd-spacestats.py#L44-L92))
|
||||
|
||||
### Attiny
|
||||
|
||||
- ~~(Interrupt Glitch abstellen)~~ Waren tatsächlich mal wieder zu
|
||||
wenig Angstkondensatoren.
|
||||
- ~~(Alle unnötinen Peripherials auf dem Chip abschalten)~~
|
||||
[1](https://playground.arduino.cc/Learning/ArduinoSleepCode)
|
||||
[2](http://www.arduino-hausautomation.de/2014/emils-ampel-attiny45-im-tiefschlaf/)
|
||||
[3Strombedarf](https://learn.sparkfun.com/tutorials/reducing-arduino-power-consumption)
|
||||
entspricht jetzt den Specs aus dem Datasheet.
|
||||
|
||||
### ESP
|
||||
|
||||
- Codevariante für Betrieb ohne Attiny machen - ESP hält sich Vcc über
|
||||
MOSFET selber
|
||||
- Prüfen, welchen Unterschied die interne Vcc Messung im ESP mit und
|
||||
ohne Radio macht
|
||||
- ~~(MQTT Client bauen, der Topics abonnieren kann, und die Inhalte
|
||||
auf WS2811 LED String anzeigt (für Display an der Tür) )~~
|
||||
|
||||
### GetränkeKistenStatistik - Mikrocontroller-Mess-Software (drinks-storage-state)
|
||||
|
||||
- WebGUI
|
||||
- ESP ID \[r\]
|
||||
- Netzwerk-SSID, Passwort \[rw\]
|
||||
- MQTT host \[rw\]
|
||||
|
||||
### GetränkeKistenStatistik - Messwert-KistenAnzahl-Konvertierung (drinks-storage-mqtt)
|
||||
|
||||
- crate_count per Getränke-Art zählen, nicht per Stapel
|
||||
- Aktuell gibt es keine Getränkesorten, für die mehrere Stapel benötigt werden
|
79
klobot.md
Normal file
79
klobot.md
Normal file
|
@ -0,0 +1,79 @@
|
|||
+++
|
||||
title = "Klobot"
|
||||
+++
|
||||
|
||||
Der klobot ist ein Teil der [Hackerspace Kybernetik](Neuland/Cyber/).
|
||||
|
||||
## Hacker
|
||||
|
||||
- Dennis (Projektmanagement)
|
||||
- Wolfi (Lüfter)
|
||||
- Jonas (Spiele Engine, Pi)
|
||||
- Jaro (Kapazitiver Sensor, Arduino)
|
||||
- Malte (Lüfter, Monitor, Papierzähler Gehäuse fräsen)
|
||||
- Felix (google dreams)
|
||||
- Helmut (blinkenbürste)
|
||||
- Dino (Papierzähler Arduino)
|
||||
|
||||
## Aktueller Stand
|
||||
|
||||
- Industrielüfter bläst Gerüche aus dem Dach hinaus
|
||||
- Bewegungsmelder (montiert, verkabelt, "Besetzt"-Status noch nicht)
|
||||
- Monitor (in Sichthöhe montiert, verkabelt)
|
||||
- Kabel für Türsensor (unangeschlossen)
|
||||
- Berührungsfreies Interface mit Arduino! (unangeschlossen)
|
||||
- Raspberry Pi mit VGA Adapter (vorerst mit [google
|
||||
dreams](http://deepdreamgenerator.com/) bespielt)
|
||||
- Stromversorgung (Wanddurchbohrung)
|
||||
- Angewärmte Zuluft aus Spülküche (mit 12V Ventilator, Bewegungsmelder
|
||||
gesteuert)
|
||||
- Schwarzlicht für Cybertoilette (Bewegungsmelder gesteuert)
|
||||
|
||||
## Final Form
|
||||
|
||||
- Cooles Schwarzlicht für Cybertoilette *aktuell kaputt*
|
||||
- Bewegungsmelder startet Lüfter, Spiel und Monitor.
|
||||
- Klo-Highscore wird auch per Interface eingebbar
|
||||
- Interface neben dem Klo zum Spielen des Klo-Spiels
|
||||
- Türsensor an Klotür misst, ob abgeschlossen ist
|
||||
- Leuchtschild zeigt "Besetzt"-Status im großen Raum
|
||||
- Papierspender/-zähler meldet den Nachfüllbedarf und zählt mit
|
||||
Ultraschall
|
||||
- Messung der Sitzungszeit. Wenn > 30 sec., nach dem Spülen
|
||||
Notification: "Bitte Toilette reinigen", um die Klobürste und um
|
||||
den WC - Reiniger herum blinken LED, bis beide aus ihren
|
||||
Sensorhalterungen entnommen und benutzt worden sind.
|
||||
|
||||
## Fehlende Komponenten
|
||||
|
||||
- <https://github.com/flipdot/shit> das Spiel
|
||||
- Papierspender/-zähler (funktionierendes Design und Zählelektronik)
|
||||
- 220V Relais, dass den Bewegungsmelder auslesen kann für Besetzt-Schild
|
||||
- Drucktaster im Schloss
|
||||
- ~~(vielleicht 2 Lüfter verbauen, die mit einem Y-Rohr Adapter addiert werden)~~
|
||||
stattdessen Zuluftventilator in Tür verbaut
|
||||
- V Trichter (Diffusor) oberhalb vom Lüfter im Blechrohr (max. 10°,
|
||||
möglichst glatt -\> 3d Druck?)
|
||||
- Anströmdüse vor dem Ventilator
|
||||
|
||||
<!--
|
||||
\|\|`{{attachment:luefter.png|Lüfter|heigth="400px"}}`\|\|`{{attachment:papierzähler.png|Papierzähler|height="400px"}}`\|\|
|
||||
\|\|Lüfter\|\|Papierzähler\|\|
|
||||
-->
|
||||
|
||||
## Infos
|
||||
|
||||
- <http://www.trox-tlt.de/de2/service/download_center/structure/Fachartikel/07fachartikel_grundlagen_der_ventilatorentechnik.pdf>
|
||||
(siehe Seite 11)
|
||||
- <http://www.druckverlust.de/Online-Rechner/Luft.html> (aktuell:
|
||||
scharfkantiges T-Stück nach oben auf dem Dach 200x200mm -\> zweimal
|
||||
50x200mm)
|
||||
- Maltes Lüfter hat 130
|
||||
[cfm](https://en.wikipedia.org/wiki/Actual_cubic_feet_per_minute),
|
||||
der verbaute von Wolfi 160 cfm ([= 271
|
||||
m³/h](http://www.endmemo.com/sconvert/m3_hft3_min.php),
|
||||
Vgl. [100€ Baumarktlüfter 295
|
||||
m³/h](http://www.obi.de/decom/product/OBI_Ventilator_Air-Style_System_150/5168802))
|
||||
- Klo plus Pissoir Raum ca. 10m³ (bei 160 cfm ca. 2:13 min. um die
|
||||
Toilettenluft komplett auszutauschen)
|
||||
- Github Repository: <https://github.com/flipdot/shit>
|
66
küche.md
Normal file
66
küche.md
Normal file
|
@ -0,0 +1,66 @@
|
|||
+++
|
||||
title = "Küche"
|
||||
+++
|
||||
|
||||
Unsere Küche teilt sich in eine \'Tee\'küche und eine Spülküche.
|
||||
|
||||
## Hacker
|
||||
|
||||
- Dennis (Projektmanagement)
|
||||
- BananaJoe (Smutje, Wasser-Anschluss)
|
||||
- Wolfi (Wasser-Anschluss)
|
||||
|
||||
## Teeküche
|
||||
|
||||
Die Teeküche soll eine richtige Kochküche werden mit Abluft und
|
||||
Kochplatten. Sie befindet sich im Flur und ist auch zugänglich für
|
||||
Nachbarn und Gäste.
|
||||
|
||||
### Geräte/Schränke
|
||||
|
||||
- Kühlschrank (geliehen von Nachrichtenmeisterei)
|
||||
- Campingkochplatten (geliehen von Dennis)
|
||||
- Wasserkocher
|
||||
- Holzschieber für Pfanne (selbst gemacht mit Invaderlogo)
|
||||
- Pfanne (gusseisern repariert)
|
||||
- Töpfe (geliehen von Helmut)
|
||||
- Messer (BananaJoe)
|
||||
|
||||
### Nahrung
|
||||
|
||||
- Tee
|
||||
- Salz und Pfeffer
|
||||
- Zucker
|
||||
- Fettbalken
|
||||
- Kartoffeln
|
||||
- Zwiebeln
|
||||
- Möhren
|
||||
|
||||
### Fehlendes
|
||||
|
||||
- Dunstabzugshaube und [Abluftanlage](/projekte/abluftanlage/)
|
||||
- Oberschränke für Gewürze und Essen
|
||||
- Schloss für Kühlschrank
|
||||
- Spendenbox für Essen
|
||||
- Richtig gutes Küchenmesser (vielleicht bringt der Nachbar eines ein)
|
||||
- Guter Salzstreuer
|
||||
- Pfeffermühle
|
||||
- ~~(Klobürste zum Kartoffelschälen)~~ normaler Kartoffelschäler
|
||||
|
||||
## Spülküche
|
||||
|
||||
Sie befindet sich im Bad und ist auch zugänglich für Nachbarn und Gäste.
|
||||
|
||||
### Geräte/Schränke
|
||||
|
||||
- Spülmaschine
|
||||
- Spülbecken mit Warmwasseranschluss
|
||||
- Unterschrank mit Putzzeug
|
||||
- Spüllmittel
|
||||
- Schwämme und Stahlwolle
|
||||
|
||||
### Fehlendes
|
||||
|
||||
- Systematisch Besteck und Geschirr für ca. 30 Leute
|
||||
- Oberschränke für Geschirr
|
||||
- Schubladensortiersystem für Besteck
|
4
linux-boot-stick/_index.md
Normal file
4
linux-boot-stick/_index.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
+++
|
||||
render = false
|
||||
transparent = true
|
||||
+++
|
132
linux-boot-stick/efi-tricks-wenn-bootstick-nicht-startet.md
Normal file
132
linux-boot-stick/efi-tricks-wenn-bootstick-nicht-startet.md
Normal file
|
@ -0,0 +1,132 @@
|
|||
+++
|
||||
title = "Linux Boot Stick: EFI-Tricks - Wenn Bootstick nicht startet"
|
||||
+++
|
||||
|
||||
Manche alte Laptops wie Convertibles sind im Bios kastriert, so dass man
|
||||
einen normalen Linux Boot Stick nicht ohne weiteres starten kann.
|
||||
|
||||
Übersicht
|
||||
|
||||
1\. Bootstickgröße
|
||||
|
||||
2\. Bios Einstellungen zu Secure Boot...
|
||||
|
||||
3\. Partition Table speziell
|
||||
|
||||
1\. Bootstickgröße oft max 4gb oder 8gb oder Partitionsgröße begrenzen
|
||||
|
||||
2\. Secure Boot: ENABLED
|
||||
|
||||
Secure Boot Status: Disabled Platform Mode: Setup Mode Secure Boot Mode:
|
||||
Custom Mode
|
||||
|
||||
IPM Support: Enabled
|
||||
|
||||
3\.
|
||||
|
||||
Der Stick muss ein spezielles Format haben und eine spezielle neue efi
|
||||
Datei soll dabei sein:
|
||||
|
||||
Weiter unten zitiert die Komplette Anleitung von
|
||||
<https://forums.linuxmint.com/viewtopic.php?f=42&t=216857>
|
||||
|
||||
Bei einem alten medion e1240t mit abnehmbarem Bildschirm, scheint die
|
||||
Installation nur zu klappen, wenn man beim Ziellaufwerk vorher die
|
||||
Partition Table als GPT schreibt. Löscht vorher alles wenn man mit
|
||||
gparted die Table neu schreibt. Auch braucht man zwei PArtitionen: Eine
|
||||
kleine bsp 750MB als efi laufwerk, das auch mit flag als"esp" und
|
||||
dadurch gleichzeitig als ""boot" setzt. Die zweite z.B. als ext4 für
|
||||
das Linux, was als / eigehangen werden muß (option wählen).
|
||||
|
||||
Dadurch scheint er beim neu schreiben der Partitionen etwas anders zu
|
||||
machen als bei der normalen Installation.
|
||||
|
||||
The Linux Mint team say that the Linux Mint 17.x 32bit version can\'t be
|
||||
use in UEFI mode. Only in BIOS mode. Now it is possible because I found
|
||||
a solution with the help of internet.
|
||||
|
||||
Here is the solution
|
||||
|
||||
You need four things:
|
||||
|
||||
\- An Usb key. - The bootia32.efi file. - The Linux Mint 17.x 32bit
|
||||
version. - Gdisk must be installed.
|
||||
|
||||
1\. Download the Linux Mint 17.x 32bit version in one of your home
|
||||
directory (for example: Downloads).
|
||||
|
||||
2\. Find the bootia32.efi file on internet. You can find it here :
|
||||
<http://webativo.com/uploads/files/usb-pack_efi.zip> (unzip this file
|
||||
and search bootia32.efi in /usb-pack_efi/EFI/BOOT/ directory). Or here :
|
||||
<https://github.com/jfwells/linux-asus-t> ... otia32.efi (click on the
|
||||
raw button). If you want to create your own bootia32.efi file, check in
|
||||
the first source link below.
|
||||
|
||||
3\. Plug your usb key. Check the letter of your device (via menu -\>
|
||||
preferences -\> disks).
|
||||
|
||||
4\. Open a terminal window and make the following lines :
|
||||
|
||||
Code:
|
||||
|
||||
```
|
||||
sudo sgdisk --zap-all /dev/sdx
|
||||
sudo sgdisk --new=1:0:0 --typecode=1:ef00 /dev/sdx
|
||||
sudo mkfs.vfat -F32 /dev/sdx1
|
||||
```
|
||||
|
||||
Note: x must be the letter of your usb key. These commands create the
|
||||
GPT partition table on the usb key, an efi partition for the whole usb
|
||||
key (ef00) and a fat32 partition for sdx1.
|
||||
|
||||
5\. Mount the fat32 partition on /mnt mount point via that command line:
|
||||
|
||||
Code:
|
||||
|
||||
```
|
||||
sudo mount -t vfat /dev/sdx1 /mnt
|
||||
```
|
||||
|
||||
Note: x must be the letter of your usb key.
|
||||
|
||||
6\. Unzip the 32bit version iso on /mnt :
|
||||
|
||||
Code:
|
||||
|
||||
```
|
||||
sudo 7z x /home/nameofyouruser/Downloads/linuxmint-17.x-xxxx-32bit.iso
|
||||
-o/mnt/
|
||||
```
|
||||
|
||||
7\. Create the /EFI/BOOT/ directory in /mnt mount point :
|
||||
|
||||
Code:
|
||||
|
||||
```
|
||||
sudo mkdir /mnt/EFI sudo mkdir /mnt/EFI/BOOT/
|
||||
```
|
||||
|
||||
Now you\'ve got an /EFI/BOOT/ directory that didn\'t exist before.
|
||||
|
||||
8\. Copy the bootia32.efi file in `/EFI/BOOT/`:
|
||||
|
||||
Code:
|
||||
|
||||
```
|
||||
sudo cp bootia32.efi /mnt/EFI/BOOT/
|
||||
```
|
||||
|
||||
9\. Umount the /mnt mount point :
|
||||
|
||||
Code:
|
||||
|
||||
```
|
||||
sudo umount /mnt
|
||||
```
|
||||
|
||||
10\. Reboot the computer.
|
||||
|
||||
Enjoy !!!!
|
||||
|
||||
The links that help me: <https://github.com/lopaka/instructions/> ...
|
||||
-x205ta.md <http://ubuntuforums.org/showthread.php?t=2276498>
|
27
linux-neuinstallation.md
Normal file
27
linux-neuinstallation.md
Normal file
|
@ -0,0 +1,27 @@
|
|||
+++
|
||||
title = "Linux-Neuinstallation"
|
||||
+++
|
||||
|
||||
Sammlung:
|
||||
|
||||
**Hibernate aktivieren**: (Stromloses Speichern und pausieren momentaner
|
||||
Arbeitsvorgänge, nötig für Laptops ohne Akku)
|
||||
|
||||
a\) Swap datei für Hibernate **vor Installation** (auch SSD ...)
|
||||
|
||||
b\) ???? funktioniert nicht ganz?
|
||||
Nachträglich aktivieren <http://www.linuxandubuntu.com/home/how-to-enable-hibernate-in-ubuntu-linux>
|
||||
startet trotzdem nur neu, Lösung <https://askubuntu.com/questions/548015/ubuntu-14-04-sudo-pm-hibernate-doesnt-work>
|
||||
|
||||
**Grub Boot Reihenfolge ändern:**
|
||||
|
||||
editieren: `gksu gedit /etc/default/grub`
|
||||
|
||||
danach updaten: `sudo update-grub2`
|
||||
|
||||
<https://www.howtogeek.com/196655/how-to-configure-the-grub2-boot-loaders-settings/>
|
||||
|
||||
**Automatisches Login beim ersten Start** (Sicherer als kein
|
||||
Passwort...)
|
||||
|
||||
Mint: Settings -\> login window (suchen )
|
59
merge.md
Normal file
59
merge.md
Normal file
|
@ -0,0 +1,59 @@
|
|||
+++
|
||||
title = "Merge"
|
||||
+++
|
||||
|
||||
## Abgeschlossen
|
||||
|
||||
flipdot ist ERFA Kassel, entsendet Vertreter zu den ERFA Treffen, etc.
|
||||
|
||||
Die Unigruppe in der Ingschule bleibt als Chaostreff bestehen
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
**Ziel:**Zusammenschluss von CCCKS und fd // **Zweck:**Beseitigung von
|
||||
Problem im CCCKS (ist kein Verein), gemeinsame Mittel für CCCKS-fd aus
|
||||
CCC Topf
|
||||
|
||||
**Was ist nötig für einen Zusammenschluss?**
|
||||
|
||||
- Beschluss der CCCKS Member
|
||||
- Beschlus der fd Member
|
||||
- Satzungsänderung fd Satzung
|
||||
|
||||
**Was verändert sich für CCCKS?**
|
||||
|
||||
- CCCKS wird gemeinnütziger Verein
|
||||
- ERFA-Rückerstattung steht auf sauberer Grundlage
|
||||
- CCCKS Member werden Member des neuen Vereins
|
||||
- Aussicht auf neue, gemeinsame Räume, die 24/7 zugänglich sind und
|
||||
mehr Möglichkeiten bieten
|
||||
|
||||
**Was verändert sich für CCCKS nicht?**
|
||||
|
||||
- Räume in der Uni bleiben (wäre dumm, die aufzulösen)
|
||||
|
||||
**Was verändert sich für fd?**
|
||||
|
||||
- fd wird CCC ERFA Kreis
|
||||
- Möglichkeit, mit gemeinsamer Kraft und Mitteln endlich größere Räume
|
||||
zu suchen
|
||||
|
||||
**Was verändert sich für fd nicht?**
|
||||
|
||||
- Ziele des Vereins
|
||||
- Vermutlich nicht mal die Satzung, da Quelle CCC Bremen
|
||||
|
||||
**Was muss noch geklärt werden?**
|
||||
|
||||
- Ist eine Satzungsänderung überhaupt nötig?
|
||||
- Welche Mitgliedsbeiträge sollen in Zukunft gelten, ist für
|
||||
CCCKS-Member, im besonderen Studenten, eine Regelung nötig, oder
|
||||
reicht die fd-Ermäßigung?
|
||||
- Wer stimmt ab und entscheidet über den Zusammenschluss
|
||||
- fd Member
|
||||
- CCCKS Member
|
||||
- Ist eine Namensänderung nötig?
|
||||
- Aufwand?
|
||||
- Folgen davon?
|
||||
- Ist der Uni-Raum dann noch offizieller CCC Treff, oder sollte der
|
||||
eher so unter dem Radar fliegen?
|
34
mpd.md
Normal file
34
mpd.md
Normal file
|
@ -0,0 +1,34 @@
|
|||
+++
|
||||
title = "MPD"
|
||||
+++
|
||||
|
||||
Im Space wird aktuelle per `mpd` ([Music Player
|
||||
Daemon](https://de.wikipedia.org/wiki/Music_Player_Daemon))
|
||||
Musik gehört. Um dich damit zu verbinden, brauchst du einen
|
||||
entsprechenden Client.
|
||||
[Hier](http://mpd.wikia.com/wiki/Clients) gibt es eine lange
|
||||
Liste an möglichen Clients.
|
||||
|
||||
## ncmpcpp
|
||||
|
||||
Das unaussprechliche `ncmpcpp` ist ein Kommandozeilen-Client für MPD.
|
||||
Der Vorteil darin besteht, dass es (wie ein paar andere Clients auch)
|
||||
mehrere Configs lesen kann.
|
||||
|
||||
Lege die Config `~/.ncmpcpp/config-pixelfun` für den flipdot mit
|
||||
folgendem Inhalt an:
|
||||
|
||||
mpd_host = pixelfun.fd
|
||||
mpd_port = 6600
|
||||
|
||||
Nun kannst du, solange du im flipdot-Netzwerk bist `ncmpcpp` mit dem
|
||||
MPD-Server verbinden mit folgendem Befehl:
|
||||
|
||||
ncmpcpp -c ~/.ncmpcpp/config-pixelfun
|
||||
|
||||
## Windows-Client
|
||||
|
||||
<https://auremo.codeplex.com/>
|
||||
|
||||
mpd_host = pixelfun.fd
|
||||
mpd_port = 6600
|
24
otp-controller.md
Normal file
24
otp-controller.md
Normal file
|
@ -0,0 +1,24 @@
|
|||
+++
|
||||
title = "OPT Controller"
|
||||
+++
|
||||
|
||||
Common crypto software runs on systems with an OS. Our approach is to
|
||||
reduce the attack surface of an operating system with its user programs
|
||||
by delegating the crypto part to a system as simple as possible.
|
||||
|
||||
## System scetch:
|
||||
|
||||
<!-- {{attachment:sketch.gif|system setup|width="500"}} -->
|
||||
|
||||
An AVR controller with keyboard and display is used to gather the plain
|
||||
text which is held only in the controllers RAM. An One Time Pad
|
||||
encryption is performed using a large keyfile stored on the SDCARD
|
||||
attached to the AVR.
|
||||
|
||||
The AVR communicates using an ES8266 module.
|
||||
|
||||
The encrypted text is sent to an central server. That could be done via
|
||||
SMTP or an simple HTTP request.
|
||||
|
||||
The encrypted answer is downloaded and decrypted in the AVR. the plain
|
||||
text is shown on the display attached to the AVR.
|
25
pixelfun-streaming.md
Normal file
25
pixelfun-streaming.md
Normal file
|
@ -0,0 +1,25 @@
|
|||
+++
|
||||
title = "Pixelfun Streaming"
|
||||
+++
|
||||
|
||||
*Eigenes Audio auf den pixelfun streamen*
|
||||
|
||||
Pulseaudio hat tolle Netzwerkfeatures, mit denen man zB auch seine
|
||||
lokalen Audiostreams auf andere Rechner streamen kann. (Natürlich nur,
|
||||
wenn die es auch explizit zulassen)
|
||||
|
||||
Um das ganze bei Euch lokal einzurichten müsst Ihr erst mal die GUI
|
||||
Anwendung *paprefs* installieren. Die gibt\'s in den meisten
|
||||
Paketrepositories unter gleichem Namen. Direkt im ersten Tab müsst Ihr
|
||||
dann nur noch das Häkchen bei "Make discoverable pulseaudio network
|
||||
sound devices available locally" setzen. ACHTUNG: Sollte es bei euch
|
||||
ausgegraut sein, müsst Ihr noch das *pulseaudio-module-zeroconf* Paket
|
||||
installieren. (Name kann je nach Paketmanager abweichen)
|
||||
|
||||
Danach startet Ihr am besten kurz Euren Rechner neu.
|
||||
|
||||
Zuletzt müsst ihr noch die GUI Anwendung *pavucontrol* installieren.
|
||||
Dort solltet Ihr jetzt unter "Output devices" ganz unten devices mit
|
||||
"pi@pixelfun.fd" im Namen haben.
|
||||
|
||||
An diese könnt Ihr jetzt einfach Euer Audio Routen. \\o/
|
21
pixelfun.md
Normal file
21
pixelfun.md
Normal file
|
@ -0,0 +1,21 @@
|
|||
+++
|
||||
title = "Pixelfun"
|
||||
+++
|
||||
|
||||
Der Pixelfun ist ein Raspberry Pi, auf dem
|
||||
[YMPD](https://github.com/notandy/ympd) läuft. Über die
|
||||
Website [pixelfun.fd](http://pixelfun.fd) lässt sich im
|
||||
Space-Netzwerk die Wiedergabe steuern.
|
||||
|
||||
## Streaming
|
||||
|
||||
Folgendes muss unter Arch Linux installiert und konfiguriert werden, um
|
||||
auf den pixelfun-Pi streamen zu können:
|
||||
|
||||
- "paprefs" installieren und "Make discoverable PulseAudio
|
||||
network sound devices available locally" aktivieren
|
||||
- "pulseaudio-zeroconf" installieren und "avahi-daemon.service"
|
||||
starten / aktivieren (systemctl)
|
||||
- "pavucontrol" installieren und unter "Playback" das Ausgabegerät
|
||||
wählen ("snd_rpi\_..." statt "Built-in Audio Analog Stereo"
|
||||
oder dergleichen)
|
4
raspberry-pi/_index.md
Normal file
4
raspberry-pi/_index.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
+++
|
||||
render = false
|
||||
transparent = true
|
||||
+++
|
36
raspberry-pi/als-desktop-pc.md
Normal file
36
raspberry-pi/als-desktop-pc.md
Normal file
|
@ -0,0 +1,36 @@
|
|||
+++
|
||||
title = "Raspberry Pi als Desktop-PC"
|
||||
+++
|
||||
|
||||
**Raspberry Pi 3/4 als Desktop Computer, Overclocked mit Kühlkörper,
|
||||
Zutaten:**
|
||||
|
||||
Schnelle(!) SD-Karte, auch für viele kleine OS Zugriffe. z.B.:
|
||||
|
||||
- SAMSUNG EVO plus (2017+)
|
||||
|
||||
OS:
|
||||
|
||||
! Bei Pi4 geht nur ein HDMI Anschluss während der Installation, der
|
||||
andere zeigt nur das "Regenbogenbild"
|
||||
|
||||
- Dualboot für Raspberry Linux "Raspian" und Mediaplayer "Kodi"
|
||||
oder andere unterstützte OS: <https://www.raspberrypi.org/downloads/noobs>
|
||||
Inhalt des gezippten Ordners entpackt auf leere SD-Karte kopieren
|
||||
- Raspian alleine in verschiedenen Austattungen: <https://www.raspberrypi.org/downloads/>
|
||||
Balena Etcher runterladen und nutzen um Image auf SD-Karte zu bringen, oder Anleitung.
|
||||
|
||||
How to Overclock:
|
||||
|
||||
- [Pi3](/projekte/raspberry-pi/raspberry-pi-3-overclock/)
|
||||
- [Pi4](/projekte/raspberry-pi/raspberry-pi-4-overclock/)
|
||||
|
||||
Bildschirm Adapter:
|
||||
|
||||
- Pi3
|
||||
Für alte VGA-Bildschirme an dem Pi3 reicht ein normaler HDMI zu VGA Adpater
|
||||
für 3-5 Euro aus ähnlich diesem <https://www.amazon.de/dp/B07T14DXN5/>
|
||||
- Pi4 (kann zwei Bildschirme)
|
||||
Für den pi4 brauch man zwei von obigen Adapternn und noch zusätzlich je Bildschirm
|
||||
- 1x micro Hdmi zu HDMI Adapterkabel und <https://www.idealo.de/preisvergleich/OffersOfProduct/4426151_-hdmi-auf-micro-hdmi-logilink.html>
|
||||
- 1x Buchse-Buchse HDMI Adapater <https://www.idealo.de/preisvergleich/OffersOfProduct/1873250_-65049-adapter-hdmi-buchse-buchse-delock.html>
|
20
raspberry-pi/pi-3-overclock.md
Normal file
20
raspberry-pi/pi-3-overclock.md
Normal file
|
@ -0,0 +1,20 @@
|
|||
+++
|
||||
title = "Raspberry Pi 3 Overclock"
|
||||
+++
|
||||
|
||||
Nach Kühlkörper (klein) installation in config.txt (Boot) einfügen:
|
||||
|
||||
```
|
||||
arm_freq=1250
|
||||
force_turbo=1
|
||||
over_voltage=2
|
||||
temp_limit=75
|
||||
```
|
||||
|
||||
Frequenz ab bootstart auf 1250, Governour max, limitiert ab 75grad auf
|
||||
?700mhz. Falls Spannungsfall zu hoch, eventuell Polyfuse brücken
|
||||
(Strom-/Hitzeabhängige, rückstellbare Sicherung, die Kurzschlüssschäden
|
||||
verhindern soll, nähe Netzteilanschluss, unterseite Platine) Direkte
|
||||
Spannungsversorgung über GPIO-Pins scheint auch möglich.
|
||||
|
||||
<https://www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md>
|
18
raspberry-pi/pi-4-overclock.md
Normal file
18
raspberry-pi/pi-4-overclock.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
+++
|
||||
title = "Raspberry Pi 4 Overclock"
|
||||
+++
|
||||
|
||||
Nach Kühlkörper (klein) installation in config.txt (Boot) einfügen:
|
||||
|
||||
```
|
||||
arm_freq=1600
|
||||
force_turbo=1
|
||||
over_voltage=4
|
||||
temp_soft_limit=80
|
||||
```
|
||||
|
||||
Frequenz ab bootstart auf 1600, SPannung für CPU erhöht für mehr
|
||||
stabilität, Governour max, limitiert ab 80grad Stufenweise runter.
|
||||
Direkte Spannungsversorgung über GPIO-Pins scheint möglich.
|
||||
|
||||
<https://www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md>
|
15
raspberry-pi/pi-4-ubuntu-server-64bit.md
Normal file
15
raspberry-pi/pi-4-ubuntu-server-64bit.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
+++
|
||||
title = "Raspberry Pi 4 Ubuntu Server 64bit"
|
||||
+++
|
||||
|
||||
Es gibt momentan (2020-02-25) ein 64Bit Ubuntu für RAspi 4, Ubuntu
|
||||
Server: <https://ubuntu.com/download/raspberry-pi>
|
||||
|
||||
- Image:
|
||||
<https://ubuntu.com/download/raspberry-pi/thank-you?version=19.10.1&architecture=arm64+raspi3>
|
||||
- Seite zeigt auch Desktop Install-beschreibung (Lan am Pi benötigt)
|
||||
- und Infos zu Deskop Versionen
|
||||
<https://www.linuxtrainingacademy.com/install-desktop-on-ubuntu-server/>
|
||||
- Bei der Passworteingabe auf Zahnrad und Desktop einstellen!!!
|
||||
- Info Sammlung:
|
||||
<https://jamesachambers.com/raspberry-pi-ubuntu-server-18-04-2-installation-guide/>
|
124
schaltzentral.md
Normal file
124
schaltzentral.md
Normal file
|
@ -0,0 +1,124 @@
|
|||
+++
|
||||
title = "Schaltzentral"
|
||||
+++
|
||||
|
||||
Schaltzentral ist unser Setup von Zigbee und WLAN Lampen, koordiniert
|
||||
über einen MQTT Broker, gesteuert über ein Android Tablet.
|
||||
|
||||
## MQTT Broker
|
||||
|
||||
- <https://mosquitto.org/> installieren (apt install mosquitto,
|
||||
fertig!)
|
||||
|
||||
## Zigbee Ikea Leuchten
|
||||
|
||||
- An einem Raspberry ein Zigbee Modul anschließen (TODO: Was für ein Modul?)
|
||||
- <https://www.zigbee2mqtt.io/> auf dem Raspberry installieren
|
||||
|
||||
## WLAN Sonoff Lampen
|
||||
|
||||
- Tasmota Firmware draufflashen
|
||||
- Mit nmap Netzwerk scannen und IP direkt im Browser eingeben
|
||||
(Standard Port 80). Im UI Hostname vom MQTT Broker eingeben
|
||||
|
||||
## Android Tablet
|
||||
|
||||
- <https://play.google.com/store/apps/details?id=net.routix.mqttdash&hl=de>
|
||||
installieren
|
||||
- Tablet an die Wand motieren
|
||||
- Konfiguration lässt sich mit dieser App direkt über metrics/exchange
|
||||
teilen oder hier herunterladen:
|
||||
<https://gist.github.com/soerface/7c5cef151a4973614899d39787afa382>
|
||||
|
||||
## FAQ
|
||||
|
||||
### Wie füge ich eine neue Zigbee Lampe hinzu?
|
||||
|
||||
- Halte die Lampe ca. 3cm vom Zigbee Sender entfernt
|
||||
- Schalte sie ein
|
||||
- [Hol dir die device
|
||||
config](https://www.zigbee2mqtt.io/information/mqtt_topics_and_message_structure.html#zigbee2mqttbridgeconfigdevicesget),
|
||||
indem du:
|
||||
- Horche auf die device config: `mosquitto_sub -t
|
||||
"zigbee2mqtt/bridge/config/devices" -h mqtt.fd`
|
||||
- Lass dir eine device config schicken: `mosquitto_pub -t
|
||||
"zigbee2mqtt/bridge/config/devices/get" -m "" -h mqtt.fd`
|
||||
- Tipp: Schreibe dir die config in eine Datei (`> config.json` am Ende des
|
||||
Befehls).Du kannst dir eine Funktion
|
||||
[jless](https://gist.github.com/soerface/8e44ebd495be72aee481d65c1003a015)
|
||||
definieren oder
|
||||
[jq](https://stedolan.github.io/jq/) verwenden,
|
||||
dann `jless config.json`
|
||||
- Suche aus der config die neue Lampe heraus. Benutze den
|
||||
friendly_name ("0x..."). Versuche, die Lampe ein- und
|
||||
auszuschalten: `mosquitto_pub -t "zigbee2mqtt/FRIENDLY_NAME/set"
|
||||
-m "ON" -h mqtt.fd`
|
||||
- Wenn du die richtige Lampe gefunden hast,
|
||||
[ändere](https://www.zigbee2mqtt.io/information/mqtt_topics_and_message_structure.html#zigbee2mqttbridgeconfigrename)
|
||||
den "friendly_name" auf etwas sinnvolles:
|
||||
- `mosquitto_pub -t "zigbee2mqtt/bridge/config/rename" -m
|
||||
\'{"old": "OLD_FRIENDLY_NAME", "new":
|
||||
"NEW_FRIENDLY_NAME"}\' -h mqtt.fd`
|
||||
|
||||
### Wie steuere ich die Tasmota Lampen via MQTT?
|
||||
|
||||
Am Beispiel "tasmota/buntsofa". Der Name der Lampe wird über das
|
||||
Webinterface der Lampe geändert.
|
||||
|
||||
- An: `mosquitto_pub -t "cmnd/tasmota/buntsofa/power" -m "ON" -h
|
||||
mqtt.fd`
|
||||
- Aus: `mosquitto_pub -t "cmnd/tasmota/buntsofa/power" -m "OFF"
|
||||
-h mqtt.fd`
|
||||
- Farbe: `mosquitto_pub -t "cmnd/tasmota/buntsofa/color" -m
|
||||
"#ff0000" -h mqtt.fd`
|
||||
- Kalt-weiß volle Helligkeit: `mosquitto_pub -t
|
||||
"cmnd/tasmota/buntsofa/color" -m "#000000ff00" -h mqtt.fd`
|
||||
- Warm-weiß volle Helligkeit: `mosquitto_pub -t
|
||||
"cmnd/tasmota/buntsofa/color" -m "#00000000ff" -h mqtt.fd`
|
||||
- Dimmer (Farbe ändern hat gleichen Effekt): `mosquitto_pub -t
|
||||
"cmnd/tasmota/buntsofa/dimmer" -m "100" -h mqtt.fd`
|
||||
|
||||
### Wie finde ich das Webinterface der Tasmota Lampen?
|
||||
|
||||
`nmap -sP 192.168.3.0/24`, der Hostname der Lampen ist by default
|
||||
tasmota, wir haben aber zwei bereits in "buntsofa" und "buntkino"
|
||||
umbenannt. Das Webinterface lauscht auf dem Standard HTTP Port 80, also
|
||||
einfach die IP Adresse im Browser eingeben.
|
||||
|
||||
### Wie liste ich alle Tasmota Lampen auf?
|
||||
|
||||
Nutze folgendes Python Skript:
|
||||
|
||||
#!/usr/bin/env python3
|
||||
import json
|
||||
import sys
|
||||
import paho.mqtt.client as mqtt
|
||||
|
||||
MQTT_HOST = 'mqtt.fd'
|
||||
MQTT_PORT = 1883
|
||||
TOPIC_BASE = 'zigbee2mqtt/bridge/config/devices'
|
||||
TOPIC_GET = f'{TOPIC_BASE}/get'
|
||||
|
||||
def on_connect(client, userdata, flags, rc):
|
||||
client.subscribe(TOPIC_BASE)
|
||||
client.publish(TOPIC_GET)
|
||||
|
||||
def on_message(client, userdata, msg):
|
||||
things = json.loads(msg.payload.decode('utf-8'))
|
||||
for thing in things:
|
||||
if thing['type'] == 'Router':
|
||||
print(thing['friendly_name'])
|
||||
sys.exit(0)
|
||||
|
||||
client = mqtt.Client()
|
||||
client.on_connect = on_connect
|
||||
client.on_message = on_message
|
||||
client.connect(MQTT_HOST, MQTT_PORT, 60)
|
||||
client.loop_forever()
|
||||
|
||||
### Wie spiele ich einen Regenbogen auf allen Lampen ab?
|
||||
|
||||
Wenn du obiges Python-Skript als `asdf.py` gespeichert hast und es
|
||||
ausführbar ist, kannst du mit folgendem Bash-Oneliner steil gehen:
|
||||
|
||||
for c in {0..360..10}; do col=$(python3 -c "import colorsys; print('#' + ''.join([f'{int(c * 255):02x}'.upper() for c in colorsys.hsv_to_rgb($c / 360, 1, 1)]))"); while read -r lamp; do echo "$lamp $col"; mosquitto_pub -t "cmnd/tasmota/$lamp/color" -h mqtt.fd -m "$col"; sleep 1; done <<< $(./asdf.py); done
|
7
touchscreen.md
Normal file
7
touchscreen.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
+++
|
||||
title = "Touchscreen"
|
||||
+++
|
||||
|
||||
Touchscreen drehen
|
||||
|
||||
xinput set-prop "eGalax Inc. USB [[TouchController]]" "Coordinate Transformation Matrix" 0 1.15 0 1.15 0 0 0 0 1
|
119
tür.md
Normal file
119
tür.md
Normal file
|
@ -0,0 +1,119 @@
|
|||
+++
|
||||
title = "Tür"
|
||||
+++
|
||||
|
||||
## Schloss in der Nachrichtenmeisterei
|
||||
|
||||
### How-To Tuer
|
||||
|
||||
- Account im LDAP erstellen kann jeder Member für dich tun
|
||||
- <https://ldap.flipdot.space> nur im space erreichbar
|
||||
- nach drittem Mitgliedsbeitrag beim Kassenwart (@cfstras) melden
|
||||
- dann schaltet er dich frei
|
||||
|
||||
#### Öffnungsmethoden
|
||||
|
||||
Webinterface
|
||||
|
||||
- <https://door.flipdot.space>
|
||||
|
||||
SSH-Public-Key auf <https://ldap.flipdot.space> eintragen, und dann
|
||||
|
||||
```
|
||||
#!bash
|
||||
ssh opendoor@door.fd
|
||||
```
|
||||
|
||||
RFID-Karte
|
||||
|
||||
- Dazu melde dich bitte bei @typ_o oder @malled
|
||||
|
||||
## Technische Details
|
||||
|
||||
(Teils veraltet)
|
||||
|
||||
<!-- [{{attachment:schloss.jpg}}](http://flipdot.org/blog/archives/345-Das-Auge-schliesst-mit!.html) -->
|
||||
|
||||
### Anforderungen
|
||||
|
||||
- Per Schlüssel (welcher Technik auch immer) die Außentür öffnen
|
||||
- Aktivierung des elektromagnetischen Türöffners (aka Summer) in der Südtür
|
||||
- Ggf. auch Klingelfunktion hoch in den Space (könnte via GSM gemacht
|
||||
werden, wenn oben sowieso ein GSM Spacetelefon benutzt wird)
|
||||
- Ggf. auch Sprechverbundung zwische Klingelndem und Leuten im Space.
|
||||
|
||||
### Ideen
|
||||
|
||||
- Verwendung der Aussparung in der Außenwand links neben der
|
||||
Eingangstür (dort könnte Elektronik mit einer Frontplatte eingebaut
|
||||
werden)
|
||||
- (Klingel-) Taster
|
||||
- LCD
|
||||
- ggf Eingabemöglichkeit für numerische Schließcodes
|
||||
- Identifikation an der Tür oben:
|
||||
- Biometrie-Fake
|
||||
- Okular, eine Ziffer auf Display, random(0..9)
|
||||
- Auswahl über riesigen Not-Aus-Buzzer-Taster
|
||||
|
||||
### Umsetzung
|
||||
|
||||
- GSM Türschloss installiert
|
||||
- Türsummer an der Südtür wird zum schließen über Relais mit 8 V AC versorgt
|
||||
- Lösung für Räume oben: ToDo
|
||||
|
||||
## Alte Schlossimplementationen
|
||||
|
||||
### RFID
|
||||
|
||||
Die erste Schloßvariante lief mit einem RFID-Reader, der nach einer
|
||||
Weile aber zickte.
|
||||
|
||||
### Bluetooth
|
||||
|
||||
Der RFID Reader wurde durch ein Bluetooth-Modul ersetzt, was ein Jahr
|
||||
seinen Dienst tat. Nachteilig war, dass iOS User nicht öffnen konnten,
|
||||
da iOS kein BT-Profil zur seriellen Datenübetragung unterstützt. Auch
|
||||
Benutzer älterer Mobiles waren ausgeschlossen.
|
||||
|
||||
### GSM
|
||||
|
||||
Als dritte Lösung haben wir deshalb jetzt ein GSM-Modul.
|
||||
|
||||
#### Caller-ID
|
||||
|
||||
Erste Variante: Bei einem eingehenden Anruf wird die Caller ID an einen
|
||||
uC gesendet, der diese in einer Tabelle der zulässigen Nummern sucht,
|
||||
und anschließend auf ein Klopfzeichen an der Tür wartet (um ein
|
||||
versehentliches Aufschließen mit einem nicht verriegelten Telefon aus
|
||||
der Hosentasche auszuschließen).
|
||||
|
||||
Im Controller (Atmega168) werkeln ein paar kB Code, in
|
||||
[Bascom](http://www.mcselec.com/index.php?option=com_content&task=view&id=14&Itemid=41)
|
||||
geschrieben.
|
||||
|
||||
Der Klopfsensor ist ein kleiner Piezo - Speaker von Pollin mit einer
|
||||
aufgeklebten Mutter, um nur den Körperschall der Tür aufzunehmen,
|
||||
anschließend etwas OP, um das Signal aufzuhübschen.
|
||||
|
||||
Zum Debugging war noch ein kleiner VGA-Adapter angeschlossen,
|
||||
Hersteller micro-vga.
|
||||
|
||||
#### SMS - Schliesscode
|
||||
|
||||
Caller IDs sollen sich mit Voip Systemen auch für Mobilfunknummern faken
|
||||
lassen, deswegen sind wir auf SMS + Schliesscode gewechselt.
|
||||
|
||||
### SSH
|
||||
|
||||
Parallel gab es noch einen public key authentifizierten Zugang zu einem
|
||||
Pi, der dann via Schaltkontakt die Schloßelektronik zum Aufschließen
|
||||
bewegen konnte.
|
||||
|
||||
### Türstatus icons für spaceapi
|
||||
|
||||
<!--
|
||||
\|\|[geschlossen](attachment:fdclosed.png) \|\|
|
||||
`{{attachment:fdclosed.png|closed}}`\|\|
|
||||
\|\|[offen](attachment:fdclosed.png) \|\|
|
||||
`{{attachment:fdopen.png|open}}`\|\|
|
||||
-->
|
11
tür3.md
Normal file
11
tür3.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
+++
|
||||
title = "Tür #3"
|
||||
+++
|
||||
|
||||
Es ist das dritte mal, das wir unser Türschloss umbauen.
|
||||
|
||||
<https://forum.flipdot.org/uploads/default/original/2X/3/3ed29ec0db8784684411b60bd5ab059486f2f63f.jpeg>
|
||||
|
||||
<https://forum.flipdot.org/uploads/default/original/2X/3/3ed29ec0db8784684411b60bd5ab059486f2f63f.jpeg>
|
||||
|
||||
<https://www.thingiverse.com/thing:4042499>
|
75
usv.md
Normal file
75
usv.md
Normal file
|
@ -0,0 +1,75 @@
|
|||
+++
|
||||
title = "USV"
|
||||
+++
|
||||
|
||||
*Unterbrechungsfreie Stromversorgung*
|
||||
|
||||
## "DIE USV"℠
|
||||
|
||||
Eine große
|
||||
[USV](https://de.wikipedia.org/wiki/Unterbrechungsfreie_Stromversorgung)
|
||||
(aka. "DIE USV"℠) soll dazu dienen, den Server
|
||||
mit Notstrom zu versorgen, damit dieser ~~(sanft herunterfahren kann)~~
|
||||
im Notbetrieb ~~(mind. 12h)~~ ca 20-40min weiterläuft und Services
|
||||
unterbrechungsfrei zur Verfügung stellt (z.B. [Internet](Neuland/Internet)
|
||||
in der Nachrichtenmeisterei). Generell ist bei einer USV das Ziel, die
|
||||
Systeme bei kurzen (<10min) Stromausfällen am Laufen zu halten - und bei
|
||||
längeren Stromausfällen (>20min) die Systeme geordnet herunterzufahren
|
||||
(und eventuell danach die Core-Infrastruktur für einige Zeit weiter am
|
||||
Laufen zu halten - vorausgesetzt diese benötigt nicht zu viel Energie).
|
||||
|
||||
Folgende Systeme müssen möglichst lang am Leben gehalten werden:
|
||||
|
||||
- Türschloss (inkl. GSM Modul)
|
||||
- Telefon (Anrufbeantworter)
|
||||
- Alarmanlage (Sensoren und Aktoren)!
|
||||
- Internet, Core-Netzwerk, Server
|
||||
- Notbeleuchtung (über 12V-LED-Strips? Oder einfach ein paar 12V-MR16
|
||||
Leuchten nehmen? Oder rote GU10-240V-Leuchten?)
|
||||
|
||||
### APC
|
||||
|
||||
[typ_o](typ_o) hat noch eine alte USV bei sich zu Hause, die
|
||||
er dafür spenden wollte. Es handelt sich wohl um eine SmartUPS1000 von APC.
|
||||
|
||||
Die USV hier ist wohl nicht die, die [typ_o](typ_o) hat? Oder
|
||||
wurde das von [typ_o](typ_o) bestätigt?
|
||||
<https://img.conrad.de/medias/global/ce/9000_9999/9700/9730/9738/973893_LB_00_FB.EPS_1000.jpg>
|
||||
|
||||
- TODO: USV vor Bestellung von den Akkus nochmal testen!
|
||||
|
||||
### Akku-Kapazität
|
||||
|
||||
Kommentar Wolfi: Die Berechnungen die hier waren sind alle für die
|
||||
Tonne, u.a. wenn man davon ausgeht, dass die USV laut Herstellerspecs
|
||||
betrieben werden soll. Dann passt nämlich nur ein Akkutyp. Man kann
|
||||
nicht einfach jede x-beliebige USV mit nem (externen) XXL-Akku versehen
|
||||
und davon ausgehen, dass das ohne Rauchzeichen dann einfach "länger auf
|
||||
Akku durchhält"....
|
||||
|
||||
## die usvs
|
||||
|
||||
Andere Systeme mögen es ebenfalls nicht, wenn sie "hart" ausgeschaltet
|
||||
werden, sie benötigen ein sanftes Herunterfahren:
|
||||
|
||||
- Beamer
|
||||
- *Kommentar von Wolfi: Der kommt mir aber nicht mit an "DIE USV"℠...*
|
||||
- Raspberry Pis (z.b. Blinkenlights)
|
||||
- *Kommentar von Wolfi: Es können gerne alle Raspis die in der
|
||||
Nähe ~~(vom Netzwerkschrank)~~ der USV montiert sind mit über
|
||||
"DIE USV"℠ versorgt werden. Wenn habe ich sowieso vor da noch
|
||||
\'n Ein-Netzteil-Für-Alles aka modifiziertes ATX-Netzteil für
|
||||
die Versorgung von allen 12V/5V/3.3V Dingen zu basteln, welches
|
||||
dann auch mit an der USV hängen wird. Das aber erst, wenn das
|
||||
mit der Elektroinstallation fertig ist.*
|
||||
- *kssoz: Für das Herunterfahren der Pis wurde von typ_o über
|
||||
dezentrale USV geredet. Ich halte das für sinnvoll, weil einige
|
||||
Pi Projekte kommen und gehen, ohne zentralistische Planung.*
|
||||
|
||||
*siehe auch andere [Projekte](/projekte/)*
|
||||
|
||||
## Hacker
|
||||
|
||||
- typ_o
|
||||
- malled
|
||||
- Wolfi
|
10
watts-up-pi.md
Normal file
10
watts-up-pi.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
+++
|
||||
title = "Watts-up-Pi"
|
||||
+++
|
||||
|
||||
*Hier möge die Dokumentation des Watts-up-Pi entstehen, welcher den
|
||||
Stromverbrauch im Space maß und wieder messen wird.*
|
||||
|
||||
<!-- [{{attachment:watts-up-pi.jpeg}}](http://flipdot.org/blog/archives/254-Watts-up.html) -->
|
||||
|
||||
[Old Data](/blog/2014/12/11/watts-up-pi-misst-watts/)
|
8
werkzeug.md
Normal file
8
werkzeug.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
+++
|
||||
title = "Werkzeug"
|
||||
+++
|
||||
|
||||
Die folgenden schönen Werkzeuge haben wir im Space (Liste nicht vollständig):
|
||||
|
||||
- [Tauchsäge](tauchsäge/)
|
||||
- [Tische](tische/)
|
25
werkzeug/tauchsäge.md
Normal file
25
werkzeug/tauchsäge.md
Normal file
|
@ -0,0 +1,25 @@
|
|||
+++
|
||||
title = "Werkzeug: Tauchsäge"
|
||||
+++
|
||||
|
||||
Im Space haben wir eine Tauchsäge von Festool. Um genau zu sein eine [TS
|
||||
55
|
||||
REBQ-Plus](https://www.festool.de/produkte/saegen/tauchsaegen/576000---ts-55-rebq-plus#%C3%9Cbersicht).
|
||||
|
||||
Eine Anleitung gibt es hier:
|
||||
[Anleitung](https://festoolcdn.azureedge.net/productmedia/Images/attachment/765f89c3-755c-11e9-80fb-005056b31774.pdf)
|
||||
|
||||
Für die Tauchsäge existieren zudem einige Meter an Führungsschienen.
|
||||
|
||||
## Verschleisteile
|
||||
|
||||
### Sägeblätter
|
||||
|
||||
Wir haben sehr gute Erfahrungen mit den [Feinzahn-Sägeblättern von
|
||||
Festool
|
||||
(W48)](https://www.festool.de/zubehoer/491952---160x2,2x20-w48)
|
||||
gemacht.
|
||||
|
||||
Eine lokale Quelle für den Erwerb könnte [Eisen
|
||||
Krug](https://www.openstreetmap.org/node/2603685882) sein.
|
||||
Das ist allerdings noch nicht verifiziert.
|
12
werkzeug/tische.md
Normal file
12
werkzeug/tische.md
Normal file
|
@ -0,0 +1,12 @@
|
|||
+++
|
||||
title = "Werkzeug: Tische"
|
||||
+++
|
||||
|
||||
Ideal: Tische mit Klapp - Untergestell. Kosten allerdings \> 100 Geld.
|
||||
Bei nicht allzu häufigem Umbau sind auch abschraubbare Tischbeine ok.
|
||||
|
||||
[Beine](https://www.amazon.de/Tischbeine-4er-Set-H%C3%B6he-Edelstahl/dp/B007FE45EG/ref=pd_cp_60_4?ie=UTF8&psc=1&refRID=QDNBJG6MTC8KJ1AGA2ZP),
|
||||
haben sehr gute Bewertungen bei big A.
|
||||
|
||||
Platten aus Buche Multiplex, an den Rändern aufgedoppelt, oder was
|
||||
Billigeres aus dem Baumarkt.
|
Loading…
Reference in a new issue