MAX17043 mit MicroPython

Neben Setup der Terkin-Datenlogger Sandbox schlägt fehl und Terkin-Datenlogger auf ESP32 WROVER mit MicroPython 1.11 habe ich jetzt erst mal mit der Integration des MAX17043 Spannungssensors weiter gemacht.

Das ist im Grunde eine Kopie des BME280, da beide über den i2c Bus angesteuert werden. Gehört eigentlich nicht zu ‘environment’ - kann man aber mal durch gehen lassen. :slight_smile:

Einstellungen hinzufügen

Sensor in die settings.py eintragen.

{
    'id': 'max17043-1',
    'description': '1-cell LiPo gauge',
    'type': 'MAX17043',
    'enabled': True,
    'bus': 'i2c:1',
    'address': 0x36,
},

Treiber einbinden

Initialisierung per Funktion add_max17043_sensor im terkin/datalogger:

def add_max17043_sensor(self, settings):
    """
    Setup and register the MAX17043 sensor component with your data logger.
    """

    bus = self.sensor_manager.get_bus_by_name(settings['bus'])

    if settings.get('enabled') is False:
        log.info("Skipping MAX17043 device {} on bus {}".format(hex(settings['address']), bus.name))
        return

    sensor = MAX17043Sensor(settings=settings)
    if 'address' in settings:
        sensor.set_address(settings['address'])
    sensor.acquire_bus(bus)

    # Start sensor.
    sensor.start()

    # Register with framework.
    self.sensor_manager.register_sensor(sensor)

Hardware Treiber

Anbei die Klasse für den dist-packages Ordner und die Sensor-Klasse.

Muss ich sonst noch was machen? Die Klasse an sich funktioniert sehr schön.

2 Likes

Hi Markus,

vielen Dank für Deinen Beitrag. Wir werden versuchen, ihn vollständig in den Datenlogger zu integrieren, sobald wir bei Portierung des Terkin-Datenlogger auf Genuine MicroPython für ESP32 das wichtigste im Kasten haben.

Das ist wahr. Ich hatte den Begriff “environment” für die entsprechende Stelle in der Konfiguration verwendet, weil ich vom Begriff “registry” wegkommen wollte. Vielleicht ist hier letzteres doch die bessere Wahl?

Dürfen wir fragen, woher diese Datei am besten zu beziehen ist? Im Optimalfall können wir sie so behandeln wie die anderen Abhängigkeiten, die in der Datei setup.mk gelistet sind.

Viele Grüße,
Andreas.