add stuff from current page

This commit is contained in:
Elouin 2023-06-05 22:23:49 +02:00
parent bd7cbf3c19
commit b0c1fb400f
65 changed files with 3758 additions and 0 deletions

56
abluftanlage.md Normal file
View 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,4cm, 600/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
View 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
View 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

View 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`

View 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
View 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
View 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
View 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,5V-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..100W - 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
View 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 5V für den Raspberry
- Ein Hutschinennetzteil 24V für die Relais
- Ein Hutschinennetzteil 12V 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
View 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
View 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
View 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
View file

@ -0,0 +1,71 @@
+++
title = "Fräse How To - Einrichten leicht gemacht"
+++
## Opferplatte aus MDF
* Die Platte ist aus MDF, 17mm dick, 600mm x 780mm.
* Wird mit 4 Gleitmuttern und 4 Stück M6 Inbusschrauben (15mm Gewindelänge) auf der Nutenplatte befestigt.
* Bohrdurchmesser für die Schrauben 7mm.
* Senkung mit einem 10mm Holzbohrer 6mm 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 3mm Schaft, sondern 1/8" = 3,175mm. 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 17mm 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 17mm 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: -600mm
* X: -530mm
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,05mm 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. 20mm ''ü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 6mm 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
View 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
View 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
View 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

View 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
- ...

View 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
View 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
View 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
View 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
```

View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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)

View 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
View 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,3V,
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.

View 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
View 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
- 230V - Lasten (China Relaisplatinen, günstiger 433MHz 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
View 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
View 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
View 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
View 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
View 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
View 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

View file

@ -0,0 +1,4 @@
+++
render = false
transparent = true
+++

View 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
View 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
View 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
View 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
View 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
View 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
View 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
View file

@ -0,0 +1,4 @@
+++
render = false
transparent = true
+++

View 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>

View 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>

View 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>

View 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
View 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
View 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
View 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 8V 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
View 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
View 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
View 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
View 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
View 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
View 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.