Türklingel erweitern

  • Noch nie den Zettel "Wir haben Sie nicht angetroffen" im Briefkasten gehabt, obwohl Du den ganzen Tag zu Hause warst? Die Klingel kann dann wenigstens sagen: Da hat zur angegebenen Zeit niemand geklingelt.

    Selbstverständlich, ist hier gar nicht so selten. Aber wenn ich den Postboten an der Tür direkt vorbei laufen sehe brauche ich kein Klingel-Log mehr :wallbash:


    Nur weil Du paranoid bist, heisst das nicht, dass SIE nicht hinter Dir her sind.


    Woanders im Forum wird drüber diskutiert, automatisch beim Klingeln ein Foto vom Besucher zu machen und abzuspeichern. DAS finde ich dann grenzwertig, aber ein Klingelknopf, solange er nicht Deinen Fingerabdruck speichert ist immer noch anonym.

    Klar, war auch nicht 100% ernst gemeint, eher im Bezug auf den :fies: Smiley :shy:

    Das mit dem Foto ist nicht nur grenzwertig sondern mMn auch schlicht verboten ohne ausreichenden Hinweis. IANAL.


    dll-live kein Problem, nur gab es Irgendwo mal ein paar Beiträge über die Bedeutung des Nicks "meigrafd". Wenn ich mich recht erinnere war meigrafd mit der Assoziation eines Grafen selbst nicht ganz glücklich :denker:

  • Vorher verkleinern und Formate beachten, die grünen Platinen hätte um 90° gedreht weniger nutzlose Infos (Karopapier) transportiert!

    Über sowas eine Diskussion führen zu wollen ist mit Verlaub, Typisch, alte Gewohnheiten die du anscheint nicht unterdrücken/ablegen kannst.


    Beitrag#85 war keine Hilfe sondern gemecker. Noch dazu in einer komischen Schreibweise und Platzierung der Satzzeichen...

    OK du nimmst keinen Rat an, verdrehst wieder Tatsachen, dann ist meine Hilfe vergebens und nicht gewünscht, so hätte das aussehen können

  • Aber wenn ich den Postboten an der Tür direkt vorbei laufen sehe brauche ich kein Klingel-Log mehr

    Nur hat nicht jeder den Luxus, dass sein Wohnzimmer direkten Blick auf die Straße vor der Tür erlaubt.


    Wohnend in einem Nebengebäude mit der Klingel am nicht einsehbaren Tor durfte ich öfter mal 20km in die nächste Poststelle fahren, obwohl zur angeblichen Lieferzeit zu Hause. Ich hab das Problem dann durch "Ablageort vereinbaren" gelöst, seitdem landen die Pakete im Schuppen. Witzigerweise höre ich das Postauto wegfahren, gehe in den Schuppen und da steht ein Paket, niemand hat geklingelt. Oder ich höre das Postauto kommen, gehe raus und bekomme ein Paket in die Hand gedrückt, unterschreiben muss ich nicht mehr, der Zettel für "Ablageort" war schon ausgefüllt. Mir solls recht sein, solange das Zeug ankommt.

  • Ich sitze gerade am ESP8266 den ich da auch noch dran anschließen will. Die Idee ist, zu protokollieren An welchem Tag und zu welcher Uhrzeit geklingelt wurde.

    Mein Relais schaltet 3V3, bzw ich hab den Spannungswandler auf 3V2 eingestellt um sicher zu gehen dass der Funkklingeltaster nicht zu viel kriegt...


    Nun möchte ich daran noch eine Pull-UP Schaltung dran löten. Aber anstatt eines ESP8266 werde ich direkt einen PiZeroW verbauen, denn den kann man angeblich auch mit 3V über den 5V Pin betreiben (solange man kein HDMI/USB verwenden möchte). Werde dafür aber ein microUSB Kabel zerschnippeln, weil ich keinen Pin-Header verlötet habe aber das Device weiterhin Steckbar haben will. Der Strombedarf steigt dann zwar aber hält sich absolut in Grenzen (max. 10mA mehr im Idle), und die 3V3 Output Schiene schwankt dann etwas (min 3.16V and typ 3.29V) aber auch das sollte hierfür egal sein. (Quelle)

    Taten stehen noch aus

  • Du kannst auch den Spannungsregler auf 5V drehen, den Pi damit betreiben und den Funksender an die 3.3V des Pi hängen.


    Bedeutet natürlich, dass der Pi immer in der Schaltung ist, weil er ja den Funksender mit versorgt.


    Allerdings würde ich da vorher mal die Stromaufnahme des Pi Zero testen, nicht dass der den LM317 grillt.

  • Die 200mA sind aber eine ganz andere Größenordung als die paar µA, die der Funksender zieht.


    8V ac gleichgerichtet gibt 11V, minus Diodenspannung gibt 10V, um auf 5V zu kommen muss der LM317 5V verbraten, ist bei 200mA eine Verlustleistung von 1W. Das kann der locker, aber nicht mehr ohne Kühlkörper. Und dann noch im kleinen Plastegehäuse eingedost ganz oben in der Zimmerecke, da darf es ruhig der etwas dickere Kühlkörper sein.

  • Ich kommen jetzt endlich mal wieder dazu hier weiter zu machen...


    Habe mich nun doch dazu entschieden keinen PiZeroW direkt zu verbauen sondern nur einen ESP8266, weil der viel weniger Strom benötigt.


    Was mich aktuell noch etwas stört ist nämlich dass wenn ich draußen im Garten bin höre ich teilweise nicht die Klingel... Hierfür würde ich gerne via Telegram eine Notice versenden, was ich optional aktivieren kann. Für das aktivieren dieser Funktion muss ich mir noch genauere Gedanken machen, am besten wäre schnell via App, ansonsten über ein kleines Webinterface entweder direkt auf dem ESP8266 oder auf dem Pi, der auch die Protokollierung der "wann wurde geklingelt" aufzeichnen soll.


    Der Spannungswandler ist wie erwähnt auf 3V2 eingestellt, worüber der Funkklingeltaster permanent versorgt wird (Batterie-Ersatz).

    Da häng ich dann den ESP8266 dazu, und benötige noch eine kleine Pull-UP Schaltung um den Klingel-Impulse am ESP zu registrieren, der ja auch auf den Funkklingeltaster geht.

    Der Funkklingeltaster schaltet GND - auch deshalb ist ein Pull-UP perfekt, weil das nicht so Störanfällig ist.

    Als Pull-UP Widerstand werde ich 50-100 kΩ verbauen, um den Stromverbrauch niedrig zu halten.

    Gemäß eines Pull-UP's kommt der Widerstand zwischen VCC 3V2, dem GPIO-Eingang des ESP, und dem Schließer-Schaltkontakt des Relais.

    Damit wäre die "Schaltung" eigentlich vollständig...

    Evtl. setz ich noch einen 100µF Kondensator zwischen GND und VCC vom ESP8266 zur Glättung aber das muss IMHO nicht unbedingt.

    Parallel zum Schließer-Schaltkontakt des Relais könnte ich noch einen 100n Kondensator zur Entprellung verbauen - mal sehen.


    Ich hab hier auch noch ein SSD1306 OLED 0,96" Display, was ich auch noch an den ESP anschließen könnte - um visuell direkt anzuzeigen wie oft heute geklingelt wurde... Aber die Option lasse ich mir erst noch offen ;) Mit nur 0,08 Watt wäre es auch im akzeptablen Rahmen.


    Von den ESP8266 hab ich aktuell 3 verschiedene Hier: ESP-01, ESP-12 und ESP-201.


    ESP-01 hab ich leider nur mit blauer PCB hier und hat somit nur 512 kB Flash. Mit schwarzer PCB wären es 1 MB Flash (quelle).

    ESP-01 hat 2 GPIO's, allerdings wird einer davon zum Firmware-Update verwendet dh den müsste man invertieren sofern man ihn nutzen will.. Und eine PCB-Antenne.


    ESP-12 hat 11 GPIO's, ein 10bit ADC, und im Gegensatz zu den anderen die ich hier habe satte 4 MB Flash.


    ESP-201 ist fast 3x so groß/breit wie der ESP-01, hat nur 512 kB Flash, GPIO's wie der ESP-12 und zusätzlich eine externe Antenne.


    Neuere Firmwares passen leider nur auf ESP8266 Module die über mind. 1MB Flash verfügen... Somit muss ich quasi zwangsweise den ESP-12 nehmen. (quelle)

    Netter Nebeneffekt: Genug GPIO's um auch das Display anzuschließen :daumendreh2:


    Glücklicherweise hab ich mir damals Pitch Changer (2.00mm to 2.54mm) dazu gekauft... Sieht dann vielleicht etwas komisch aus und macht's Konstrukt etwas größer, aber somit kann ich ne normale Lochraster PCB verwenden um die Schaltung ggf später noch zu erweitern ;)

    Es gibt aber anscheint auch Breakout-Board-Adapter/Mounting-Board/IO-Adapter um sich die einzelnen Pitch Changer zu sparen, ebay. Oder eine Variante mit angeblich 32MB Flash...


    Hab auch schon überlegt einen ESP32 einzusetzen und einen zusätzlichen Pi wegzulassen... Da gibt es auch verschiedene Ausführungen, wobei ich eher zu jenen mit mindestens 8MB tendieren würde sofern der Pi weggelassen und der ESP somit Standalone agieren sollte... Wie zum Beispiel > diese < Variante.

    Interessant klingen auch die Varianten mit LoRa, allerdings wäre das für meinen Einsatz etwas oversized :X Leider in Deutschland noch schwer zu kriegen, nur aus Asien mit Wartezeiten bis 30 Tage :rolleyes: Da bleibt dann wohl nur Selber Bauen übrig (OLED Display hab ich ja schon hier), hab also auch diesen mal bestellt.


    Anyway...


    Nun zur Software und dem eigentlich schwierigeren Teil...

    BTW Zum flashen verwende ich diesen FTDI232 USB-TTL, den kann man via Jumper auf 3V3 stellen, ansonsten müsste man einen 1k Widerstand vor TX Richtung des ESP's setzen.


    Für mich interessant wären eLUA oder µPython...

    Um so länger ich darüber nachdenke, um so stärker möchte ich einen ESP32 einsetzen und somit hab ich mal etwas recherchiert und folgendes gefunden: https://www.esp32.com/viewtopic.php?t=2446 ... das is umfangreicher als ich dachte.


    Vorteil: Evtl. kann ich Bluetooth dazu verwenden um festzustellen "ob mein Handy im Garten ist" :lol:


    Ich hab mir daher mal einen ESP32 NodeMCU Espressif bestellt, der angeblich 16MB Flash besitzt. Dort verbaut ist laut Abbildung ein ESP-WROOM-32 ... Laut esp32.net hat der nur 4MB Flash, aber im Kleingedruckten steht:A special variation of the ESP-WROOM-32 module with 16 MiB flash is used with the SHA2017 Badge.

    ...ich würde zwar gerne eine Variante mit pSRAM haben aber die sind mir noch zu teuer...


    Jetzt aber endlich mal zur Software :daumendreh2:


    Ideal wäre, wenn der ESP sich beim starten automatisch mit dem WLAN verbindet... Möchte hier aber eher den anderen Weg gehen: Der Webserver soll automatisch gestartet werden und das Script wiederum soll sich um die WLAN Verbindung kümmern, weil ich dazu dann auch Infos abrufen/Anzeigen kann.

    Für den Autostart kann man boot.py oder main.py nutzen, wobei boot.py auch bei einem wake-boot (deep sleep) ausgeführt wird.

    Ich verwende hier picoWeb als Webserver weil der stark an bottle erinnert.



    .... Der Beitrag wird viel zu lang, deshalb mach ichs jetzt mal kurz:




    boot.py (weiß aktuell nicht ob die wirklich benötigt wird?)

    Code
    1. # This file is executed on every boot (including wake-boot from deepsleep)
    2. print("Mem:", gc.mem_free())
    3. import network
    4. Wifi = network.WLAN(network.STA_IF)
    5. Wifi.active(True) # allow auto reconnect


    settings.py


    ssd1306.py


    oled.py



    wlan_manager.py

    main.py





    .... to be continued ...

  • Ja, hi, ich bins mal wieder :angel:


    Vorhin beim recherchieren hab ich > dieses < nette Teil gefunden, Stackable usw - etwas teuer, gönn ich mir später vielleicht noch :shy:



    Heute kam der ESP32 NodeMCU Espressif an - schickes Teil, natürlich größer als so manch anderes PCB aber das kann ich ja dann immer noch austauschen.

    Positiv: einen extra USB-TTL oder Arduino zum flashen brauch man nicht da integriert.

    Negativ: in der Artikelbeschreibung steht zwar "Flash: 16MB" allerdings verfügt das Board nur über die 4MB vom ESP32 :( Also doch nur "supports up to 16MB".


    Leider gibt es unzählig verschiedene Ausführungen mit je unterschiedlichen Pinouts. Meine Version "ESP32 DEVKIT V1" habe ich dann hier gefunden:

    https://github.com/Nicholas3388/LuaNode ... :denker: Aber kein Pinout...

    Fand dann ein Tutorial wo dieses ESP32 DevKit zum Einsatz kommt: https://startingelectronics.or…cles/ESP32-WROOM-testing/ ... Aber auch wieder kein Pinout :wallbash:

    Dann fand ich das: https://www.hackster.io/mjrobo…p32-on-arduino-ide-0fe58c ... Schon besser :bravo2:


    Bin dann erst mal dieser Anleitung zum installieren der "Arduino IDE ESP32" gefolgt: https://github.com/espressif/a…cs/arduino-ide/windows.md ... Ich nutze Arduino-IDE aber nur zur Installation der Treiber und später 'Seriell Monitor' zum kontrollieren...

    ...gestartet, dann Module angeschlossen, Serielle Konsole geöffnet und Baud auf 115200 gestellt sowie den EN Button gedrückt:

    Das sieht doch schon mal gut aus!


    Aber ich will ja MicroPython, also erst mal pip install esptool ausgeführt, von hier die letzte esp32_all Firmware geladen und geflasht:

    Code
    1. esptool.py --chip esp32 --port COM5 --baud 921600 --before default_reset --after no_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 bootloader/bootloader.bin 0xf000 phy_init_data.bin 0x10000 MicroPython.bin 0x8000 partitions_mpy.bin

    Die Baud Angabe ist nur zum flashen. Für die Serielle Konsole brauch man weiterhin 115200.

    WICHTIG: Nach dem flashen erst ein mal connecten damit das "Internal FS" erstellt wird!


    Dann Arduino-IDE auf, Serieller Monitor und dann den EN Knopf auf dem DevKit gedrückt:

    :mean:


    Zum hochladen meiner Python Scripts nutze ich pip install adafruit-ampy:

    Code
    1. E:\_Github\ESP_Klingel>ampy --port COM5 put settings.py
    2. E:\_Github\ESP_Klingel>ampy -p COM5 put telegram.py
    3. E:\_Github\ESP_Klingel>ampy -p COM5 put wlan_manager.py
    4. E:\_Github\ESP_Klingel>

    Wichtig: Vorher 'Seriellen Monitor' schließen.


    Code
    1. import os
    2. >>> os.listdir()
    3. ['boot.py', 'settings.py', 'telegram.py', 'wlan_manager.py']
    4. >>>

    :geek:



    ...jetzt merke ich dass mein obiger Code leider nicht so funktioniert wie gedacht - da muss ich also jetzt noch dran schrauben :X



    BTW: Um nachträglich/zusätzlich Python Module zu installieren kann man sich eines Tricks bedienen:

    (auf dem ESP32 ausführen)

    Python
    1. import upip
    2. upip.install('picoweb')




    .... to be continued ...



    //EDIT: Darauf achten dass ihr kein zu langes USB-Kabel verwendet, oder zumindest keine 2, weil sonst kriegt das ESP32-DevKit anscheint zu wenig Strom und WiFi will nicht mehr... :dau1:

  • Hab noch ein bisschen am Code gefeilt und musste leider feststellen dass, für zumindest mein Vorhaben, der RAM für picoweb nicht ausreicht. Dh wenn man das unbedingt nutzen möchte müsste man sich ein ESP32 mit extra pSRAM besorgen.


    Auch gibt es einige Unterschiede in den Dokumentationen bzgl. MicroPython... Ist ein wenig WirrWarr zwischen den jeweiligen Firmwares sowie ESP32 und ESP8266... Das hat mich leider viel Zeit gekostet.


    Nichts desto trotz hab ich jetzt denk ich eine brauchbare Basis für WLAN geschaffen:


    wlan_manager.py

    Die scan() Methode verwende ich zZt nicht, ist aber nice-to-have ;)

    Wichtig war auch die selbstgebaute timeout Sache weil in zumindest der von mir verwendeten Firmware kein timeout beim network.connect() eingebaut ist - sonst versucht der bis in alle Ewigkeit eine Verbindung herzustellen. Die Codeschnippsel die man dazu im Netz findet sind leider miserabel.


    Die Handhabung gestaltet sich recht einfach:

    Python
    1. import settings
    2. from wlan_manager import wifi
    3. wlan = wifi(settings.SSID, settings.PASSWD)
    4. wlan.static_network(ip='192.168.0.111', subnet='255.255.255.0', gateway='192.168.0.1')
    5. if not wlan.do_connect():
    6. print("Could not initialize the network connection.")
    7. wlan.access_point(password=settings.AP_PASS, authmode=3)


    Wenn das ESP32-DevKit gestartet wurde läuft die RTC leider ab 1970 los - weil ja auch keine Batterie verbaut wurde um die Zeit zu speichern.

    Die RTC stelle ich wie folgt:

    Python
    1. import machine
    2. rtc = machine.RTC()
    3. rtc.ntp_sync(server=settings.ntpserver, update_period=3600)
    4. if not rtc.synced():
    5. rtc.ntp_sync(server=settings.ntpserver2, update_period=3600)
    6. if not rtc.synced():
    7. print('Cant set RTC!')

    Problem hierbei: aktuell wird noch keine timezone unterstützt || Ob oder Wann das kommen wird konnte ich nicht herausfinden... Etwas Blöd weil jetzt meine Uhr eine Stunde nach geht :denker:


    Den Webserver werde ich vermutlich einfach selber über Socket realisieren, da ich nix wildes benötige...

    webserver.py

    ...das ist erst mal nur zum testen...



    Wichtig zu wissen ist auch das jeder Aufruf von gc.mem_free() on top RAM verbraucht, also immer mehr. Was dagegen einigermaßen hilft ist direkt danach gc.collect() aufzurufen:

    der Wert am Anfang ist nach dem laden meiner Scripts und herstellen der WLAN-Verbindung.

  • Ich hab mir jetzt mal ne eigene Firmware kompiliert, um die Unterstützungen und Funktionsumfang auf meine Bedürfnisse anzupassen... Durchgeführt auf einer meiner Pi's


    Code
    1. sudo -i
    2. apt-get install git-core wget make libncurses-dev flex bison gperf python python-serial
    3. git clone https://github.com/loboris/MicroPython_ESP32_psRAM_LoBo.git
    4. cd MicroPython_ESP32_psRAM_LoBo/MicroPython_BUILD/
    5. ./BUILD.sh menuconfig

    Mit 2x ESC kann man ein Menü verlassen.


    Die wichtigsten Einstellungen sind im Menü MicroPython. Dort lässt sich zB auch die Timezone auf CET einstellen ;) Compiler options auf Release.


    Wer zusätzlich eine SD Karte anschließen möchte sollte sich folgendes durchlesen: https://github.com/loboris/Mic…RAM_LoBo/wiki/filesystems

    Ich versteh aktuell nicht wieso als Standard Dateisystem SPIFFS genutzt wird wenn doch FatFS wear leveling unterstützt und somit eigentlich besser wäre? Klar, FatFS haben Einschränkungen bzgl. Dateilänge aber wear leveling schont den Flash...

    Bluetooth muss man auch extra aktivieren. Bluedroid hab ich hingegen abgeschaltet.


    Es lässt sich auch die MHz der CPU einstellen (underclock) usw - ich zähl jetzt nicht weiteres auf, wird sonst zu viel :D Component config is krass umfangreich


    Anschließend gehts weiter:

    Code
    1. ./BUILD.sh
    2. ./BUILD.sh erase
    3. ./BUILD.sh flashfatfs

    Mit -j2 o.ä. schlägt das Kompilieren fehl, somit dauerts leider länger... Sofern man zwischendurch mal was ändert nicht vergessen vorher ./BUILD.sh clean auszuführen



    ...ich hab hier auch noch irgendwo eine SD-Card Erweiterung vom Arduino rum fliegen... das teste ich als nächstes, weil ne Datenbank werde ich ja auch noch brauchen ;)



    //EDIT: Jetzt hab ich zwar 20 kB mehr RAM frei, dafür crasht der ESP32 aber sobald ich WLAN aktivieren will :dau1:

    //EDIT2: Es lag am USB-Kabel... Hatte zwischendurch ein anderes/längeres genutzt. :motz:

  • Leider schaffe ich es nicht mein Vorhaben mit der Standard ESP32-WROOM Variante zu realisieren

    Mit MicroPython stoße ich sowohl beim RAM als auch beim Flash ständig an die Grenze des machbaren..

    Selbst wenn ich MicroPython weg lasse reicht der 520kB RAM leider nicht aus ;(


    Ich suche mir jetzt also einen ESP32 raus der sowohl pSRAM (2) sowie einen microSD Kartenslot bereits verbaut hat - nur mehr Flash reicht nicht.


    Mal ein paar die ich interessant fand: #1, #2 ,


    Beim Suchen nach einem passenden Board bin ich über diesen gestoplert: https://www.analoglamb.com/pro…ent-board-with-4mb-psram/

    ...in der Beschreibung steht dass an den ESP32-WROVER sogar 4x Flash/SRAM Chips angeschlossen werden können, was mich direkt neugieriger machte und fand kurz darauf diesen: https://www.analoglamb.com/pro…4mb-flash-and-32mb-psram/

    ...leider nicht mehr verfügbar aber laut Beschreibung ein abgewandelter ALB32-WROVER mit bis zu 32MB Flash & 32MB RAM... Nett!

    Aber leider übelst schwer woanders zu kriegen, insbesondere nicht als Dev-Kit ... bzw wenn dann nur unverschämt teuer :X Wie leider auch son Pycom WiPy V3.0 plus Expansion Board ...


    Naja, vielleicht reichen ja auch die üblichen zusätzlichen 4MB RAM...

  • Kurzes Update.... 24.02 verschickt, 13.03 erhalten: https://www.aliexpress.com/ite…-IPEX-3D/32853967430.html

    Kam in einer kleinen Plastikbox, also Transportschutz. Wirkt sehr hochwertig, gut verarbeitet.


    Natürlich gehen für den SD-Karten-Slot, dem OLED Display und dem Nav-Button ein paar GPIO's unwiderruflich verloren, aber die Features sind echt nett:

    - Auf die SD Karte kann flexibler Code gepackt werden, ohne jedes mal das Teil neu flashen zu müssen.

    - Das OLED Display werde ich zur Visualisierung heutiger Klingler verwenden.

    - Den Nav-Button zum durchblättern aufm OLED, zB. "Heute", "Gestern", "Diesen Monat" o.ä..

    Muss mir dafür nur noch ein kleines Gehäuse drucken lassen ;)


    Gibt man Strom auf das Modul erscheint auch direkt eine kleine Demo auf dem OLED Display. Das einzige was mich aktuell etwas stört ist die Ligthshow der "Battery Status"-LED's die leider ziemlich grell sind... https://youtu.be/Q7qn9qUrP2A



    Nun brauch ich natürlich eine andere Firmware => esp32_psram_all


    Flashen tu ich das Modul über einen meiner Pi's mit der /boot/config.txt Einstellung max_usb_current=1 weil der USB-3-Port-Strom am PC nicht ausreicht.
    Vor dem flashen erst löschen:

    Und dann natürlich:


    Weiter arbeiten tue ich nun mit pip3 install rshell wobei ich mir einen alias für die Zeile rshell -e nano -p /dev/ttyUSB0 erstellt habe...

    Die Handhabung ist anfangs etwas gewöhnungsbedürftig, hat man den Dreh erst mal raus ist rshell eine echt bequeme Sache ;)

    :angel:


    Nu bastel ich erst mal'n bissal rum und such mir auch ne freie SD Karte ;)




    .... to be continued ...

  • Nachtrag ... 3 Dinge die ich vergessen hab zu erwähnen:


    1) Mein neu erworbenes Modul TTGO T8 hat ein anderes OLED Display, nämlich ein 1,3" SH1106. Dementsprechend bedarf es einer anderen Ansteuerung: https://github.com/robert-hh/SH1106


    2) Zwischenzeitlich fand ich auch heraus dass man ein 16MB W25Q128 SPI Flash via VSPI an den ESP32 anschließen kann - ein NOR-Flash Baustein. Wäre eine Alternative zur SD-Karte gewesen aber nu hab ich ja erstmal das TTGO-T8 Modul zum rumspieln ;)


    3) Der TF-Slot (SD Karte) beim TTGO T8, besitzt keine Feder. Die Karte steht leider relativ weit über.

    Die Verwendete Pinbelegung ist:

    SD name ESP32 pin SPI pin
    D0 2 MISO
    D1 NC NC
    D2 NC NC
    D3 13 CS
    CLK 14 SCK
    CMD 15 MOSI

    Demzufolge kommt nur SPI- und SD-Mode in Frage. 1LINE und 4LINE nicht.



    Ich erstelle mir gemäß Beitrag#116 wieder eine angepasste Firmware. TimeZone muss by-the-way nicht auf CET sondern CET-1CEST,M3.5.0,M10.5.0/3 gestellt sein. Siehe dazu aber auch https://github.com/loboris/Mic…icropython/docs/zones.csv ... https://loboris.eu/forum/Threa…justing-time?pid=21#pid21



    Anyway... Zum einbinden der SDCard bedarf es nicht viel:


    :angel:

  • Um den Flash Speicher des ESP32 zu schonen, empfehle ich nach flashen des Images alle zusätzlich zu installierenden Module usw auf die SD-Card zu installieren. Die hierfür nötige Modifikation sähe wie folgt aus:


    Direkt auf dem /flash/ des ESP32 die boot.py mit folgender ersetzen:

    Die SD Karte dann mit FAT32 formatieren und 2 Verzeichnisse erstellen:

    lib

    scripts


    Installiert man dann über upip weitere Python-Module, werden die nach /sd/lib/ installiert ;)

    Eure individuellen Scripts legt ihr in /sd/scripts/ ab ... Kann auch anders lauten das Verzeichnis, wie ihr lustig seid (boot.py anpassen!).

    Python
    1. import upip
    2. upip.install('micropython-urequests')
    3. upip.install('micropython-urequests', install_path='/flash/lib/')

    Wer irgendwelche Module trotzdem auf dem internen Flash ablegen will kann den 2.Befehl verwenden.



    Sieht bei mir aktuell so aus:

    ...meine /sd/scripts/main.py initialisiert wlan usw...



    //EDIT: Nicht vergessen die SD vor dem herausziehen jedes mal auszuhängen: uos.umountsd()