Mit dem Raspberry Pi Imager:
-> Raspberry Pi Modell: Raspberry Pi 4
-> Betriebssystem (OS): Openhabian (64 Bit)
-> SD Karte … USB Stick
Zugriff auf den RasPi
Mit der Software „FileZila“ per SSH
Standart Benutzer: openhabian
Standart PW: openhabian
Mein Online – Notizbuch / Gehirn
Mit dem Raspberry Pi Imager:
-> Raspberry Pi Modell: Raspberry Pi 4
-> Betriebssystem (OS): Openhabian (64 Bit)
-> SD Karte … USB Stick
Mit der Software „FileZila“ per SSH
Standart Benutzer: openhabian
Standart PW: openhabian
Temperatur und Luftfeuchesensor-Modul GY-21
I2C Adresse 0x40
| Betriebsspannung | 3.3 bis 5VDC |
| Stromverbrauch | 150yA |
| Temperaturbereich | -40°C bis 85°C |
| Temperaturgenauigkeit | +/- 1°C |
| Feuchtigkeitsbereich | 0 bis 100% RH |
| Feuchtigkeitsgenauigkeit | +/- 3% |
| Komunikationsschnittstelle | I2C |
| Abmessungen | 9 x 11 x 2 mm |
Das Modul GY-21 Feuchte- und Temperatursensormodul wird wie folgt mit dem Arduino verbunden:
| Uno PIN | Modul | Farbe |
| 5 V | VIN – Power supply | Rot |
| GND | GND – Ground | Schwarz |
| A4 | SDA – Serial Data | Grün |
| A5 | SCL – Serial Clock | Blau |
//-----------------------------------------------------|
// I2C GY-21 HTU21D |
// Temperatur und Feuchtesensor |
// Ohne zusätzliche / spezielle Bibliothek |
// |
// I2C Grundadresse = 0X40 |
// |
// HTU21D Kommandos |
// TRIGGER_TEMP_MEAS_H = 0xE3 |
// TRIGGER_HUM_MEAS_H = 0xE5 |
// TRIGGER_TEMP_MEAS_NH = 0xF3 |
// TRIGGER_HUM_MEAS_NH = 0xF5 |
// WRITE_USER_REG = 0xE6 |
// READ_USER_REG = 0xE7 |
// SOFT_RESET = 0xFE |
// |
//-----------------------------------------------------|
// Includes
//-----------------------------------------------------
#include <Wire.h> // Bibliothek für I2C
// Variablen
//-----------------------------------------------------
const int ADDRESS = 0x40;
double temperature;
double humidity;
//*****************************************************
// Sensor initialisieren
//*****************************************************
void sensor_init(const int addr) {
Wire.begin();
delay(100);
Wire.beginTransmission(addr);
Wire.endTransmission();
}
//****************************************
// Temperatur vom Sensor lesen
//****************************************
double read_temperature(const int addr) {
double temperature;
int low_byte;
int high_byte;
int raw_data;
// Temperaturmessung starten
Wire.beginTransmission(addr);
Wire.write(0xE3);
Wire.endTransmission();
// Daten lesen - Temperatur
Wire.requestFrom(addr, 2);
if (Wire .available() <= 2) {
high_byte = Wire.read();
low_byte = Wire.read();
high_byte = high_byte << 8;
raw_data = high_byte + low_byte;
}
temperature = (175.72 * raw_data) / 65536;
temperature = temperature - 46.85;
return temperature;
}
//****************************************
// Luftfeuchtigkeit vom Sensor lesen
//****************************************
double read_humidity(const int addr) {
double humidity;
double raw_data_1;
double raw_data_2;
int low_byte;
int high_byte;
int container;
//Luftfeuchtigkeit Messung starten
Wire.beginTransmission(addr);
Wire.write(0xE5);
Wire.endTransmission();
// Daten lesen - Luftfeuchtigkeit
Wire.requestFrom(addr, 2);
if(Wire.available() <= 2) {
high_byte = Wire.read();
container = high_byte / 100;
high_byte = high_byte % 100;
low_byte = Wire.read();
raw_data_1 = container * 25600;
raw_data_2 = high_byte * 256 + low_byte;
}
raw_data_1 = (125 * raw_data_1) / 65536;
raw_data_2 = (125 * raw_data_2) / 65536;
humidity = raw_data_1 + raw_data_2;
humidity = humidity - 6;
return humidity;
}
//****************************************
void setup() {
Serial.begin(9600);
sensor_init(ADDRESS);
}
//****************************************
void loop() {
temperature = read_temperature(ADDRESS);
humidity = read_humidity(ADDRESS);
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println("*C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println("%");
delay(1000);
}
| Kommando | Code | Kommentar |
| Start Messung Temperatur | 0xE3 | Hold master |
| Start Messung Luftfeuchtigkeit | 0xE5 | Hold master |
| Start Messung Temperatur | 0xF3 | No hold master |
| Start Messung Luftfeuchtigkeit | 0xF5 | No hold master |
| Schreibe in das Benutzerregister | 0xE6 | |
| Lese das Benutzerregister | 0xF7 | |
| Soft reset | 0xFE |
User Register
| Bit | Beschreibung | Default |
| 7,0 | Auflösung Messung | 00 |
| 6 | Status: End of Battery | 0 |
| 3,4,5 | Reserve | 0 |
| 2 | Enable one-chip heater | 0 |
| 1 | Disable OTP reload | 1 |
Auflösung Messung Bit 7 und 0
| Bit 7 | Bit 0 | Feuchte | Temperatur |
| 0 | 0 | 12 Bit | 14 Bit |
| 0 | 1 | 8 Bit | 12 Bit |
| 1 | 0 | 10 Bit | 13 Bit |
| 1 | 1 | 11 Bit | 11 Bit |
Am Womo ist ein Motorradträger für ein Motorrad/Roller verbaut. Der Träger wurde am 15.07.20211 von Sawiko ans Womo angebracht.
Hersteller: Sawiko
System: Ligero
Leuchtenträger Länge 2000mm
Grundträger : 600mm
Motrradwanne: 2000mm
Querhaltestange: 1750mm
Der Fa. Sawiko habe ich folgendes geschrieben:
Hallo Sawiko-Team,
an meinem Wohnmobil wurde 2011 ein Trägersystem „Ligero für 1 Motorrad (Standard) ohne Elektrokabelsatz Länge: Leuchtenträger 2000mm, Grundträger 600mm, Motorradwanne 2000mm, Querhaltestange 1750mm verbaut“ mit der Artikelnummer 111200S626 verbaut. Das Fahrzeug habe ich 2019 gekauft und den Träger abgebaut. Nun möchte ich diesen wieder anbauen und auf zweit Fahrräder (E-Bike) umrüsten. Die Querstangenhalterung fehlt offensichtlich auch. Können Sie mir bitte anbieten, was ich für die Umrüstung an teile benötige. Gibt es eventuell eine Explosionszeichnung an Hand derer ich schauen kann was eventuell sonst noch fehlt.
Die Kundennummer war damals die 61388, Rechnungsnummer 11/006638 vom 15.07.2011. Vielleicht helfen die Daten ja.
Für den Umbau vom Motorradträger zum Träger für zwei Fahrräder wird offensichtlich folgendes benötigt:
1 x Komplettrüstsatz für 2 Fahrräder
Artikel-Nr. 1628048
bestehend aus:
1 x Haltearm kurz, max. Länge 390 mm
1 x Haltearm mittel, max. Länge 550 mm
2 x Set Fahrradschiene mit Ratsche, Länge 1750 mm
1 x Bedienungsanleitung
1 x Montagematerial
für 206,50 €
Freien Speicherplatz ermitteln
df -h // zeigt Freien Speicherplatz an
System und Firmware aktualisieren
sudo apt update // Aktualisieren der Paketliste
sudo apt full-upgrade // neueste Update
sudo rpi eeprom-update // Firmware aktualisieren
sudo rpi-eeprom-update -a // verfügbare Updates anwenden
Raspberry neu starten
sudo restart // Startet den Raspi neu
Microcontroller ATmega328
Arduino UNO

Sensor Shield V5.0

1 Kanal Relaismodul KF-301

Bodenfeuchtesensor
Der Bodenfeuchtesensor war nach drei Tagen im Einsatz defekt.

Mini Wasserpumpe
Spannung: 5V DC
Außendurchmesser Wasserauslass: 6,3mm
Innendurchmesser Wasserauslass: 4,1mm

Sonderausgabe
2. Auflage
Ahonen, Lahtinen, Sandström, Pogliani
Verlag: Schattauer
The Essence of the Heishu and Kaishu Kata

Giles Hopkins
a visual guide to kumite techniques

Goshi Yamaguchi
Wo bekommt man den Z-Offset her und wie stellt ich den Offset ein ?

Der Abstand zwischen der Düse und dem Bett bei genullter Z-Achse ist der Z-Offset.
Drucker in Homeposition fahren. Mit dem Button „Home XYZ“ können alle drei Achsen gleichzeitig genullt werden. Um den Z-Offset herauszufinden reicht jedoch die Z-Achse.

Der Drucker wird nach dem „homeing“ selbstständig in eine definierte Position (in Marlin definiert) gefahren. Auch hier ist nur die Z-Achse von Bedeutung.

Die Z-Achse so lange in Richtung Düse fahren bis gerade noch ein Stück Papier dazwischen passt / ganz leicht reibt. Gefahren wird über das Display im Menu „bewegen“.

Wurde die optimale Position gefunden, wird im Display oben rechts der Offset angezeigt. Im Bild Z:-1.48.

Achtung: Z+ vergrößert den Abstand zwischen der Düse und dem Bett !!!
Im Terminal kann der Offset mit der Eingabe
M851 Z-1.48
M850 Werte im Eprom speichern
gespeichert werden.
Hard und Software
GekkoScience 2pac USB Miner
Raspberry Py 2
Lüfter / Kühlung für Miner
Voraussetzungen
Vorinstalliertes Raspian (Debian) auf SD-Karte mit ssh-Zugang.
Installation nach https://www.bitshopper.de/support/anleitungen/2pac/2pac-inbetriebnahme-linux-raspberry-pi/
Raspian aktualisieren
sudo apt-get update sudo apt-get upgrade -y
Zusätzliche Pakete
Zusätzliche Pakete installieren um die Abhängigkeiten von CGminer aufzulösen:
sudo apt-get install -y build-essential git autoconf automake libtool pkg-config libcurl4-openssl-dev libudev-dev libusb-1.0-0-dev libncurses5-dev
build-essential – Compiler und Compile Werkzeuge
git – Source Code repository
autoconf – für den Build aus GIT nötig
automake – für frn Build aus GIT nötig
libtool pkg-config – shared library Zugriff für CGMine
pkg-config – Für Build und Kompilierung benötigt
libcurl4-openssl-dev – http connectivity für CGMiner
libudev-dev – USB support für CGMiner
libusb-1.0-0-dev – USB support für CGMiner
libncurses5-dev – Textbasiertes User Interface für CGMiner
CGMiner aus GIT klonen
Verzeichnis erstellen wo der CGMiner rein soll
git clone klont von github den aktuellen cgminer.
mkdir -p mining/2pac cd mining/2pac sudo git clone https://github.com/vthoang/cgminer.git
CGMiner kompilieren
Der Parameter –enable-gekko aktiviert die GekkoScience Treiber für Compac und 2Pac Miner.
cd cgminer sudo CFLAGS="-O2" ./autogen.sh --enable-gekko sudo make -j 2
Binary testen
Das erzeugte Binary testen. Mit der Option -n werden alle angeschlossenen USB-Miner angezeigt.
./cgminer -n
Weitere Komandozeilenparameter sind z.B.
-D = Debug-Ausgabe aktivieren
-E =
-m =
-n = Alle USB-Geräte anzeigen
-P =
-Q =
-q = Protokollausgabe deaktivieren, Status und Fehler anzeigen
-U = URL
-V = Version anzeigen
-s =
-T =
-O = Benutzername:Passwort
-c = Konfigurationsdatei die geladen werden soll
-h = Hilfe
Inbetriebnahme
Betrieb bis 150MHZ mit Lüfter / Kühlung machbar. Ohne nur bis 100MHZ.
Leistung in GH/s = 0.11 * MHz
cd ~/mining/2pac/cgminer sudo ./cgminer -o stratum+tcp://stratum.braiins.com:3333 -u hargil.BTC_01 -p anything123 --suggest-diff 32 --gekko-2pac-freq 100
-o = Pooldaten
-u = Benutzername Pool
-p = Passwort Pool
–gekko-2pac-freq =
–suggest-diff = Miner-Schwierigkeit
Konfigurationsdatei
Anlegen und erstellen einer Konfigurationsdatei.
-> Verzeichnis erstellen
-> in das neue Verzeichnis wechseln
-> cgminer.conf erstellen
mkdir -p /home/pi/mining/2pac/config cd /home/pi/mining/2pac/config sudo nano cgminer.conf
{
"pools" : [
{
"url" : "stratum+tcp://stratum.braiins.com:3333",
"user" : "hargil.BTC_01",
"pass" : "anything123"
}
]
,
"gekko-2pac-freq" : "125",
"kernel-path" : "/usr/local/bin"
}
CGMiner mit Konfigurationsdatei starten
sudo ./cgminer -c /home/pi/mining/2pac/config/cgminer.conf
Autostart
Starten von CGMiner beim Systemstart / Autostart
Als erstes muss im Verzeichnis /etc/init.d/ ein Skript erstellt werden, mittels welchem der CGMiner gestartet wird.
sudo nano /etc/init.d/CGMiner
#! /bin/sh
### BEGIN INIT INFO
# Provides: scriptname
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
case "$1" in
start)
echo "CGMiner wird gestartet"
# Starte den CGMiner Programm
/home/pi/mining/2pac/cgminer/cgminer -c /home/pi/mining/2pac/config/cgminer.conf
# Eine weitere Möglichkeit den Miner zu starten
# screen -d -m -S cgminer sudo /home/pi/mining/2pac/cgminer/cgminer -c /home/pi/mining/2pac/config/cgminer.conf
# -d
# -m
# -S
;;
stop)
echo "CGMiner wird beendet"
# Beende Programm
killall cgminer
;;
*)
echo "Benutzt: /etc/init.d/CGMiner {start|stop}"
exit 1
;;
esac
exit 0
Rechte zuweisen
sudo chmod 755 /etc/init.d/CGMiner
Script testen
sudo /etc/init.d/CGMiner start
Scriptaufruf in die Autostartdatei eintragen
sudo update-rc.d CGMiner defaults sudo update-rc.d -f CGMiner remove
sudo nano /etc/rc.local
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi # CGMiner starten /etc/init.d/CGMiner start exit 0
https://wiki.ubuntuusers.de/Screen/
sudo apt-get install screen
screen – Startet den Fenstermanager
| -c dateiname | Konfigurationsfile laden | |
| -d | detach | |
| -h lines | history | Anzahl der History-Linien die angezeigt werden. |
| – ls [match] | ||
| -list | list | wie -ls |
| – m | ignor $STY variable, do create a new screen session | |
| – r [session] | resume | Reatach to a detached screen process |
| -S sitzung | Startet eine neue Sitzung mit dem Namen „sitzung“ | |
| -t title | Set title (window’s name) | |
| -v | version | Zeigt die Programmversion an |
| -wipe [match] | ||
| -x | „attach“ mit einem nicht „detacht“ Screen (multi display mode) | |
| –help | Zeigt einen Hilfebildschirm an |
| 0 – 9 | Springt zum Terminal mit der entsprechenden Nummer; die Nummerierung beginnt bei 0 | |
| ^B b | break | |
| C | clear | Erstellt ein neues, leeres Fenster (terminal) |
| : | colon | |
| copy | ||
| ^D d | detach | Trennen der Verbindung zur aktuellen Sitzung, Sitzung läuft im Hintergrund weiter |
| ^V | disgraph | |
| * | display | |
| : | dumptermcap | |
| F | fit | |
| ^F f | flow | |
| ^I | focus | |
| h | hardcopy | |
| ? | help | Übersicht über Tastaturkürzel / Online-Hilfe |
| { } | history | |
| i | info | |
| K k | kill | Beendet den Screen |
| ^M m | lastmsg | |
| , | license | |
| H | log | Schreibt die Ausgaben des Terminals in ein Logfile mit Namen screenlog.<nummer>; als Nummer wird die Nummer des virtuellen Terminals angehängt. Die Wiederholung des Kommandos beendet das Mitschneiden. |
| L | login | |
| a | meta | |
| M | monitor | |
| n | next | wechselt in das nächste virtuelle Terminal |
| N | number | |
| Q | only | |
| ^A | other | |
| B | pow-break | |
| D | pow-detach | |
| P | previous | wechselt ins vorige virtuelle Terminal |
| \ | quit | Beendet das Programm |
| < | readbuf | |
| ^L l | redisplay | |
| X | remove | |
| = | removebuf | |
| Z | reset | |
| ^C c | screen | Erstellt ein neues, leeres Fenster (terminal) |
| ‚ | select | |
| _ | silence | |
| S | split | |
| ^Z z | suspend | |
| ^T t | time | Zeigt die aktuelle Systemzeit an |
| A | title | Terminalbezeichnung umbenennen |
| ^G | vbel | |
| v | version | Zeigt die Programmversion an |
| W | width | |
| ^R r | wrap | |
| > | writebuf | |
| ^S s | xoff | |
| ^Q q | xon | |
| Wechseln zwischen den einzelnen Fenstere einer Sitzung | ||
| „ | windwoslist | Blendet eine Liste der Terminals ein; mit den Pfeiltasten navigieren Sie in der Liste, mit [Eingabe] wechseln Sie zum Fenster unter der Markierung. |
| W | Blendet für ein paar Sekunden eine Statuszeile am unteren Fensterrand ein, welche die Anzahl der geöffneten Fenster (und deren Namen) anzeigt. | |
Testen ob der CGMiner läuft
mit top, htop oder ps