WR841 - I2C Sensoren

Gerne, hier ist mein angepasstes Makefile:
https://tbspace.de/content/downloads/i2c-tools.tar.gz

Das muss in den Ordner gluon/openwrt/package/utils/ rein, dann make clean und ab gehts.

Alternativ hier gerne noch mein Binary:
https://tbspace.de/content/downloads/i2c-tools_3.1.0-1_ar71xx.ipk

SHA256: e5b3761044edc03f81457a121e3ef19f5cb145e606e56b1289c3238dc4c5c2ce  ./build/ar71xx-generic/openwrt/bin/ar71xx/packages/i2c-tools_3.1.0-1_ar71xx.ipk

Viele Grüße,
Tobias

4 „Gefällt mir“

@Manawyrm
Konnte es mir natürlich nicht verkneifen. Also dein Package läuft auf meinem DIR-505 :smile:

Jetzt habe ich mal, wie es der Threat Titel ja auch eigentlich verlangt, mal einen WR841 v9 bearbeitet. Es handelt sich um meinen Balkon-Brotdosen-Router.
Neben dem Spannungs- und Stromsensor INA219 ist auch noch ein LM75 für Temperaturmessungen verbaut.


GPIO 0 und GPIO 1 sollten bei einem WR841 v10 an identischer Stelle liegen. Das Fädeldraht-Wollknoll sieht wild aus, ist es aber nicht wirklich. Der Fädeldraht ist einfach nur zu lang.

Ich habe die Anode der Schutzdiode D11 von der Platine abgelötet und dann den Shuntwiderstand zwischen Platine und D11 gelötet. Wenn kein Strom gemessen werden soll, dann können Vin- und Vin+ miteinander verbunden und direkt an die Anode von D11 gelötet werden (ohne das irgendwas abgelötet werden muß).


Benötigte I2C-Systemtreiber (Packages)

opkg install kmod-i2c-core kmod-i2c-gpio-custom

Einbinden von I2C in das System (I2C-Bus #0, SDA GPIO 1, SLC GPIO 0)
Temporär:

insmod i2c-gpio-custom bus0=0,1,0

Dauerhaft

echo "i2c-gpio-custom.ko bus0=0,1,0" > /etc/modules.d/58-i2c-gpio-custom

Überprüfen

dmesg | grep -i i2c

Benötigte Treiber (Packages) für die I2C-Sensor-ICs

opkg install kmod-hwmon-ina2xx
opkg install kmod-hwmon-lm75

Einbinden der I2C-Sensor-ICs in das System
INA219 (Busadresse 0x40)

echo ina219 0x40 > /sys/bus/i2c/devices/i2c-0/new_device

LM75 (Busadresse 0x48)

echo lm75 0x48 > /sys/bus/i2c/devices/i2c-0/new_device

(Die letzten beiden oberen Befehle sollten noch in die Datei /etc/rc.local eingetragen werden. Dann werden die Bausteine automatisch nach dem Bootvorgang aktiviert.)

Auslesen über sysfs
Die I2C-Busteilnehmer werden irgendwie indexiert. Daher gibt es hier jetzt folgend die Befehle für den Fall, dass beide Bausteine (INA219 und LM75) verbaut sind.
Der Index macht sich im unten aufgeführten Pfad bemerkbar → …/hwmon/hwmon XY/…

INA219 (Busadresse 0x40)

cat /sys/devices/platform/i2c-gpio.0/i2c-0/0-0040/hwmon/hwmon1/in1_input
cat /sys/devices/platform/i2c-gpio.0/i2c-0/0-0040/hwmon/hwmon1/curr1_input

LM75 (Busadresse 0x48)

cat /sys/devices/platform/i2c-gpio.0/i2c-0/0-0048/hwmon/hwmon0/temp1_input 

Done

Zur Überprüfung der Hardware-Verdrahtung ist das Packages/Tool i2c-tools sehr hilfreich (im speziellen i2cdetect -y 0 ).
Sind beide Treiber für den INA219 und/oder LM75 installiert, so sprengt leider das Packages i2c-tools den Flashspeicher des WR841 :frowning:

Bei Routern mit mehr Flash lassen sich die Tools i2c-tools und lm-sensors aber installieren :wink:


Mit meinem Süd/West Balkonrouter, sehr wechselhaftem Sonnen/Wolken Wetter und einem 10-Zellen NiCd Akku mit undefiniertem Ladezustand, kommt dann sowas hier raus:

P.S.
Die Beschaltung für die Strommessung ist noch etwas optimierungsbedürftig. Sehr kleine Messspannung, keine Filterkapazitäten, zu lange Leitungen, Elektromagnetismus in der Nähe etc.

Die Ausreißer bei der Temperatur sind plausibel und der direkten Sonneneinstrahlung auf die Brotdose geschuldet. Das Wetter war mehr als wechselhaft.

4 „Gefällt mir“

Vielen Dank dafür!
Das werde ich hier nachbauen! Damit steht dann dem Solarrouter nichts mehr im Wege! (Panel, Akku und Laderegler sind ja schon lange, lange im Standby)

P.S. Ich habe mir China-KnockOffs von

bestellt. Das wird im Ergebnis nicht anders sein, aber mit rund 3,5€ auch nicht sonderlich teurer und lässt sich dann komplakt z.B. auf die Lanbuchsenleiste aufkleben und sieht da nicht ganz so wild aus. (das aus meinem Munde…)

PS. da mich jetzt mehrere Anfragen „aus dem Umfeld“ erreichten „Kannste für mich auch?“, habe ich nochmal 10 Stück nachbestellt.
<img src=

>

3 „Gefällt mir“