Akku-Informationen unter macOS ermitteln

Nutzt man einen mobilen Mac so fragt man sich eventuell wie es mit dem eingebauten Akku aussieht. Die App coconut Battery kann diese Fragen beantworten. Die App liefert detaillierte Informationen über Ladezyklen, Seriennummer, Firmware des Akkus und darüber hinaus noch viele weitere Informationen.

Die Informationen über ein MacBook Air aus dem Jahre 2012

Neben der Auswertung des Akkus von macOS-Geräten, ist auch eine Auswertung von iOS-Geräten in der App möglich. Allerdings funktionierte diese Auswertung nicht, da dass iOS-Gerät nicht erkannt wurde. Heruntergeladen werden kann die kostenlose App über die Webseite des Herstellers.

Pinbelegung des NodeMCU-Boards

Wenn man einen ESP8266 programmiert, so wird man dessen GPIOs nutzen um externe Dinge wie Sensoren oder ähnliches anzusteuern bzw. auszulesen. Versucht man das gleiche mit einem NodeMCU-Board wird man feststellen das die Pinbelegung des Boards nicht mit der vom ESP8266 übereinstimmt.

Das NodeMCU-Board in Version 3

Wenn man die Pinbelegung des NodeMCU-Boards mit der vom ESP8266 in Reinform vergleicht, ergibt sich folgendes Bild:

NodeMCU D0 zu ESP8266 16
NodeMCU D1 zu ESP8266 5
NodeMCU D2 zu ESP8266 4
NodeMCU D3 zu ESP8266 0
NodeMCU D4 zu ESP8266 2
NodeMCU D5 zu ESP8266 14
NodeMCU D6 zu ESP8266 12
NodeMCU D7 zu ESP8266 13
NodeMCU D8 zu ESP8266 15
NodeMCU D9 zu ESP8266 3
NodeMCU D10 zu ESP8266 1

Bei der Entwicklung über die Arduino IDE braucht man allerdings keine Sorgen machen. Wird hier das NodeMCU-Board genutzt, so findet man definierte Konstanten von D0 bis D10 um die NodeMCU-GPIOs direkt anzusprechen. Einige der Pins haben auf dem Board eine besondere Funktion:

D1 (I2C Bus / SCL (Clock-Signal))
D2 (I2C Bus / SDA (Datenleitung))
D4 (wie LED_BUILTIN, aber invertierte Logik)
D5 (SPI Bus SCK (Clock-Signal))
D6 (PI Bus MISO)
D7 (SPI Bus MOSI)
D8 (SPI Bus SS (CS))
D9 (Serielle Konsole RX)
D10 (Serielle Konsole TX)

Android Studio unter macOS entfernen

Wenn man das Android Studio unter macOS installiert hat, wird man unter Umständen feststellen dass man es nicht ohne Rückstände wieder deinstallieren kann. Es reicht nicht die Android Studio App zu löschen, stattdessen müssen ein paar Ordner mehr angefasst werden. Wer es sich einfach machen möchte kann folgende Kommandos im Terminal eingeben:

rm -Rf /Applications/Android\ Studio.app
rm -Rf ~/.AndroidStudio*
rm -Rf ~/.gradle
rm -Rf ~/Library/Preferences/AndroidStudio*
rm -Rf ~/Library/Preferences/com.google.android.*
rm -Rf ~/Library/Preferences/com.android.*
rm -Rf ~/Library/Application\ Support/AndroidStudio*
rm -Rf ~/Library/Logs/AndroidStudio*
rm -Rf ~/Library/Caches/AndroidStudio*

Zusätzlich kann man die SDK-Tools und die virtuellen Maschinen für den Android Emulator löschen. Allerdings sollte man hier sicher sein, das sie von keiner anderen Anwendung wie z.B. dem Xamarin Studio noch benötigt werden:

rm -Rf ~/.android
rm -Rf ~/Library/Android*

Globalen Index von Thunderbird neu aufbauen

Thunderbird verfügt seit vielen Versionen über eine globale Suche. Unter Umständen kann es passieren das diese Suche nicht mehr richtig funktioniert. Dies äußert sich in einer langsamen Suche oder dadurch das, sobald man Suchergebnisse aufruft, diese nicht mehr existent sind. Um diese Fehler zu beheben muss der globale Index neu aufgebaut werden. Dazu muss Thunderbird beendet werden und der Profil-Ordner aufgesucht werden. Je nach Betriebssystem liegt dieser in unterschiedlichen Ordnern:

Linux: ~/.thunderbird/xxx.default
macOS: ~/Library/Thunderbird/Profiles/xxxxxxxx.default/
Windows 2000/XP: C:\Dokumente und Einstellungen\%Benutzername%\Anwendungsdaten\Thunderbird\Profiles\xxx.default
Windows Vista/7; C:\User\%Nutzername%\AppData\Roaming\Thunderbird\Profiles\xxx.default

Im Profilordner befindet sich eine Datei mit dem Namen global-messages-db.sqlite. Diese Datei musst gelöscht werden. Anschließend kann Thunderbird wieder gestartet werden. Der Indizierungsvorgang wird dann neu begonnen. Den aktuellen Fortschritt der Indizierung kann unter Extras -> Aktivitäten angesehen werden. Je nach Größe des Profils kann die Neuindizierung einige Zeit in Anspruch nehmen.

Temperatur mit dem NodeMCU messen

Inspiriert vom Golem.de Temperatur im Büro-Projekt habe ich einen NodeMCU genutzt um die Temperatur zu messen. Auf der Teileliste stehen dabei folgende Bauteile:

  • NodeMCUv3-Board
  • Temperatursensor DS18B20
  • Widerstand (4,7 kOhm)
  • Verbindungskabel (6x)

Diese Teile müssen nun wie folgt auf dem Board angebracht werden:

Die fertige Schaltung

Anschließend kann das NodeMCU-Board mit dem passenden Programmcode bestückt werden:

#include <OneWire.h>
#include <DallasTemperature.h>

OneWire oneWire(D2);
DallasTemperature sensors(&oneWire);
DeviceAddress thermometer;

void setup(void) {
  Serial.begin(115200);

  sensors.begin();
  sensors.getAddress(thermometer, 0); 
  sensors.setResolution(thermometer, 12);
}

void loop() {

  Serial.println("Read temperature...\n");
  sensors.requestTemperatures(); 
  
  float temperature = sensors.getTempC(thermometer); 
  Serial.println(temperature);

  delay(5000);
}

In dem Programm wird zuerst eine One-Wire-Verbindung definiert und in der setup-Methode die Verbindung konfiguriert. Anschließend wird in der loop-Methode alle fünf Sekunden die Temperatur ausgelesen und in die serielle Konsole geschrieben.