Minimal Hardware Design GSM-Stockwaage mit TTGO T-Call

Wir haben vor einiger Zeit den TTGO T-Call-SIM800L entdeckt – einen ESP32 mit angeflanschtem SIM800-GSM-Modul – nun habe ich daraus eine Stockwaage mit minimalem Hardware-Design gebastelt.

Die Idee dahinter

So was ähnlich einfaches wie das Air-Rohr-Design zur Feinstaubmessung nur für Imker und Gewicht statt Staub.

  • möglichst wenig löten müssen
  • Aufbau mit einfachsten Mitteln, ohne zusätzliche Platine
  • Kosten: 20-30 EUR ohne Waage
    – TTGO T-Call 15 EUR
    – HX711 3 EUR
    – LiPo 8 EUR
    – Gehäuse 4 EUR
    – optional Solar-Charger und Solarpanel, nochmal 10 EUR

Aktueller Stand

Testen, ob es sich lohnt mit dem TTGO T-Call weiter zu experimentieren, d.h. schauen, ob wir ein paar uploads oder zumindest einen / Tag mit einem “normalen” LiPo mit ~2000 mAh hinbekommen, der dann ein paar Monate halten soll.

deep sleep

Der Verbrauch im deep sleep ist mit meinem Multimeter schwierig zu messen, ein kompletter Zyklus mit SIM800 hochfahren und Daten verschicken schafft das board mit Multimeter dazwischen nicht. Ich muss es an USB und LiPo parallel anschließen und konnte dann nach dem Versenden der Daten die USB-Stromversorgung abziehen. Dann alteriert das Multimeter zwischen 20 uA und 300 uA für den deep sleep. [edit] Ok, alles Kokolores: In Erwartung eines uA-Werts stand das Multimeter auf uA und da wurden recht schnell o.g. Werte angezeigt, wenn ich als Erwartungsbereicht mA einstelle sinds recht konstant 15 mA. :-(

todo

  • weitere Tests zum Stromverbrauch
  • meinen Arduino-C-Sketch auf die TinyGSM- statt der SODAQ-GSM-lib umstellen
    – mit HTTP POST (statt bisher GET) könnte das Teil zu Beep / Bee Observer funken
    – mit MQTT könnte das Teil zu hiveeyes Daten schicken
  • so was wie WiFi-Manager hinzufügen, damit Leute einfach selbst z.B. den WiFi-AP (wenn sie WLAN nutzen) oder den GSM-APN ändern können auch ohne die Arduino-IDE selbst zu installieren.
2 Likes

Das ist ein ESP32-WROVER-B - das ist derselbe, den ich hier auf dem Tisch liegen habe (minus der SIM800). Da läuft unsere Terkin uPy firmware drauf.
Der Treiber für die SIM800 wurde hier schon erforscht.
Da ist nur eine Sache problematisch: die SIM800 kann, soweit ich weiss, nur 2G. Das wird aber in naher Zukunft abgeschaltet. Das wäre dann nicht sonderlich Zukunftsträchtig.

Edit: sorry, das klang negativer als es sollte. Prinzipiell finde ich die Idee einer einfachen Waage toll

Das ist mir bewusst und das haben wir hier schon diskutiert: Macht es noch Sinn im Jahr 2018 für 2G-Module zu entwickeln?

Möglich wäre statt des TTGO T-Call-SIM800x den TTGO T-SIM7000G zu verwenden, der kann mit dem SIM7000G auch LTE, ist aber auch deutlich teurer (hätte dafür aber auch einen dezidierten solar charger-Chip, den TP4056). Dann kann man aber auch fast den GPy nehmen, wenn wir lowpower mit uPy in den Griff bekommen.

Cool - bin dabei. Das wäre auch eine Lösung für mich.

Was gibt es da für geeignete Sim-Kartenverträge?

Die Sachen lose in eine Kiste schmeißen? Das ist nicht gut, auch wenn es nur zwei Teile sind.
Was spräche denn gegen eine einfache Platine mit Sockeln, in die die Teile nur rein gesteckt werden müssen? Das sollte doch für den Durchnittsimker drin sein. Dann wird der Kabelverhau auch nicht ganz so schlimm und man beseitigt ein paar Fehlerquellen.

Beim Feinstaubsensor haben die das recht geschickt verklemmt oder mit Kabelbindern gesichert … Heißkleber gibt es auch noch! ;-)

Erst mal spricht nichts dagegen ausser die Arbeit das PCB zu erstellen und es fertigen zu lassen. Wenn wir neben der Waage noch andere Sensoren wie Temperatur oder Feuchte anschließen wollen, brauchen wir eine kleine Zusatzplatine sowieso, wie ich sie auch schon hier beim Open Hive WiFi Solar / Adafruit HUZZAH oder bei der BOB-Platine (Clemens) gemacht habe.

Da mir der Stromverbrauch aber nicht ganz koscher ist und einfach bestellen und zusammenstecken wie beim Feinstaubsensor auch charmant ist (und der nebenbei auch schon Jahre läuft!) würde ich den Aufbau erst mal minimal lassen. Gerne dann später weitere Ausbaustufen! ;-)

Habe so eine Platine mal zum testen bestellt:
https://www.ebay.de/itm/Solar-Lipo-Charger-Board-CN3065-Lithium-Battery-Charger-Board-Mod-Zd/113890415802

Meine bisher verwendetes CN3065 breakout ist ganz gut, wenn man es auf eine Platine löten möchte. Für ein minimales Design mit Kabeln aber schlecht, da sie für den Verbraucher und den LiPo nur einen gemeinsamen Anschluss hat. Die “neue” Platine oben hat zwei, und auch gleich JST-Buchsen drauf, das macht den Aufbau einfacher. Wenn es mit den längeren Kabeln funktioniert und der CN3065 sich nicht mit dem (5 V only, nicht sogar!) charger auf der Platine in die Haare kommt. [edit] Auch wenn der funktioniert müssen wir um Strom zu sparen die beiden LEDs für charging und charged entlöten, da diese sonst immer Strom fressen.

Ok, Ziel ist also eine möglichst einfach herzustellende Stockwaage zu bauen.
Anforderungen: einfach, günstig, kann wiegen, kann Daten per 2G versenden.

Vorraussetzungen:

  • Imker mit Bienen
  • Standardwerkzeug
  • Computer und die Fähigkeit, nach Anleitung Dinge daran zu tun
  • Zeit & Willen, Anleitungen zu lesen

Was muss der Imker tun, um seine Stockwaage zu erhalten?

  1. Material beschaffen
  2. Waage bauen
  3. Elektronik zusammen stöpseln
  4. Software aufspielen und konfigurieren.

zu 1) braucht er eine Stückliste mit mechanischen & elektrischen Bauteilen
zu 2) schlage ich diese vor
zu 3) Anleitung notwendig
zu 4) Anleitung notwendig

Was müssen wir tun, damit das alles passieren kann?

zu 1)
Das ist vermutlich das einfachste - eine simple Liste, eventuell mit Bezugsquellen.

zu 2)
Da haben andere schon die Arbeit gemacht.

zu 3)
Da hat @clemens das Design ja schon fertig. Bleibt nur noch die Frage, ob wir das dann auch einfach in ein HT-Rohr stecken. :slight_smile:

zu 4)
Da steckt vermutlich die meiste Arbeit drin, um einmal die Funktion zu ermöglichen und es dann auch noch wirklich richtig einfach bedienbar zu machen. Ein paar Kommandozeilenbefehle und eine Konfiguration im Webbrowser ist, denke ich, zumutbar.
Auf Kotori/Grafan-Seite müsste das natürlich auch noch vorbereitet werden.

Wenn das unser Ziel ist und wir uns darauf einigen könne, bin ich dabei. Ich habe direkt auch einen Anwendungszweck dafür und würde mir auch sofort eine Version bauen.

2 Likes

Ja, fast genau so habe ich mir das gedacht! ;-)

Lass uns aber erst mal schauen, ob der Energieverbrauch im deep sleep halbwegs passt. Erst wenn der Prototyp läuft, sollten wir den Rest (Anleitungen, Listen) in Angriff nehmen, sonst ist das ggf. vertane Zeit!

Da ist die Frage, wie weit wir es treiben wollen und was der / unser “Standard” ist. Einige haben Respekt vor dem Löten, daher wäre was mit “nur zusammenstecken” schon cool, das sehe ich aber nicht, z.B. gibt es den TTGO nur mit beiliegenden Stifteleisten, man muss sie selbst anlöten, glaiches mit dem HX711.

Meine Idee wäre hier aber das so einfach wie möglich zu machen, dass man leicht jemanden im Freundeskreis / Imkerverein findet, der es für einen oder eine Gruppe von Leute erledigen kann. D.h. keine SMD-Teile, nix kompliziertes (falls wir doch eine Platine später verwenden).

Bei der Software sehe ich das ähnlich, klar muss die irgendwie aufs Gerät. Ich bekomme aber Anrufe, dass die SIM getauscht wurde und jetzt nix mehr geht, vorher blau.de, jetzt congstar, d.h. der APN muss geändert werden! So was sollten die Leute auch ohne Arduino-IDE oder Atom oder … hinbekommen. Waage justieren eigentlich auch!! Dann könnte jemand aus dem Imkerverein 10 Dinger mit Software bespielen und den Kleinkram können die Leute selber machen und auch im laufenden Betrieb ändern.

Bingo! Waage für TBH / Bienenbox / andere Trogbeute bzw. das oben ist auch mein Favorit gerade, jedenfalls ein Design mit zwei Wägezellen. Allerdings mit ein paar Änderungen, da haben wir dort ja schon drüber gesprochen und müssten schauen was wir noch ändern. … Nun ist der Text noch nicht fertig, weil du es aber gerade ansprichst klicke ich mal schnell auf “create topic”, auch wenn es erst draft ist: Minimal Hardware Design Wäge-Gestell ;-)

Könnte sogar gehen mit dem HT-Rohr, Wenn wir eine kleine Solarzelle verweden, könnte die in ein Gehäuse mit transparentem Deckel

Software ist noch ein Brocken Arbeit! Bin bisher nicht wirklich mit uPy warm geworden und die vielen Bugs und das ewige Yak shaving mit dem FiPy haben mirs auch etwas verleidet. Die Arduino-TinyGSM-lib ist sicher hier super brauchbar. Auf der Anderen Seite ist @Thias schon an LoRa … ich denke vielen Bastlern ist auch die Arduion-Umgebung (noch) etwas vertrauter als uPy.

:-)

Ja. Vielleicht mit Ausnahme der Bedienungsanleitung. Es ist eigentlich immer ganz nützlich, wenn man die hat, bevor man programmiert - insbesondere den Kram, den der User sieht.

Das würde ich auch voraus setzen. TTH löten können sollte eigentlich immer irgend jemand im Umkreis

Praktische Frage dazu: wie misst Du das? Ein normales Multimeter ist dafür ja eher ungeeignet.
Eigentlich ist das eine gute Gelegenheit, den Erwerb von sowas zu rationalisieren. :slight_smile:
Oder gibt es eine Alternative?

A post was split to a new topic: Kleine Ströme messen

Habe dem Thema Kleine Ströme messen einen eigenen thread spendiert.

Bisher habe ich keine Möglichkeit gefunden das SIM800 auf dem T-Call komplett vom Strom zu trennen. Damit würde es lt. Datenblatt noch 150 uA verbraten, falls das zu viel ist wäre die Option doch eine Platine zu nehmen, da einen Transistor und MOSFET draufzumachen, siehe: Low Cost GSM/GPRS-(SIM800)-Node dann könnten wir komplett abschalten. Mit einem WiPy oder Firebeatle, die recht sparsam sind, kämmen noch 20 bis 50 uA vom ESP zum Verbrauch hinzu, mal schauen, was der TTGO T-Call so braucht.

Wir können das Ding auch mal an einem LiPo laufen lassen und schlicht schauen, wie lange der hält.

Gut, dafür hätte ich nun keinen CurrentRanger gebraucht, aber vielleicht brauchen wir den später noch!

Wie oben geschrieben, das schaut nicht gut aus mit 15 mA! Aber immerhin habe ich nun auf der Hersteller-Seite mal Daten zum deep sleep gefunden:

http://www.lilygo.cn/prod_view.aspx?TypeId=50033&Id=1127

Sleep current About 300uA

Nun ist die Frage wie man da hin kommt?! Bisher habe ich das Modul mit modem.poweroff(); aus der TinyGSM-lib abgeschaltet, poweroff ist

Reicht CPOWD=1 um beim SIM800 auf die 150 uA zu kommen oder braucht man da was anderes? (siehe auch den Beitrag von @roh und @weef hier: TTGO T-Call-SIM800x - #4 by roh) Ich weiß gerade nicht wo die 15 mA herkommen, Ideen neben dem

  • SIM800
  • ESP32 (wenn ich WLAN und BT nicht initialisiere brauche ich es auch nicht ausschalten?)
  • dann gibt es noch einen IP5306
1 Like

Hatte Wägezelle und HX711 angeschlossen, wenn der HX711 nicht initialisiert wurde verbraucht der Storm und schaltet nicht default die Wägezelle und sich ab, daher der hohe Vebrauch. Mit abgeklemmtem HX711 sind es jetzt ca. 800 uA im deep sleep! Schon besser, wenn auch noch nicht die versprochenen 300 uA.

Kurzer Zwischenbericht:
Die mechanische Hardware ist da. Ich müsste mich jetzt nur eine Weile in den Keller verziehen und alles zusammen schrauben.
Der TTGO T-Call lag auch heute im Briefkasten. uPy hab ich schonmal erfolgreich geflasht. Nächster Schritt wäre dann, das Modem zum laufen zu bringen.
Der ucurrent ist leider noch nicht da.

Andere Frage: kennt jemand ein mechanisches Datenblatt von den CZL601 Zellen? Außer der Angabe für die maximale Überlast habe ich nichts gefunden.
Ich habs mal durch den Simulator gejagt. Bei 100kg statischer Last biegt sich die Zelle etwas über 0,5mm durch. Bei 150kg ca. 0,8mm. Stimmt das mit der Beobachtung aus der Praxis überein?
Würde bedeuten, das man den Überlastschutz recht eng einstellen muss.

Bisher habe ich kein einziges Datenblatt gesehen, weder von der Wägezelle oben noch von einer anderen, auch nicht bei Bosche, in dem von der “Durchbiegung” bei Volllast berichtet wird.

Vor ein paar Wochen habe ich mitbekommen, dass die von Bosche verkauften Distanzplatten nur 2 mm Dicke haben, s. Bosche Hx0A single point load cell mehr wird es definitiv nicht sein! Ich schätze auch eher um die 1 mm, gemessen habe ich aber noch nicht! wird ggf. auch schwierig sein, wenn man nur die erwähnten, um die 3 mm dicken Profile hat. Kann mir vorstellen, dass auch die sich etwas durchbiegen, wenn die Belastung über Ecklasten kommt (z.B. Beuten mit Füßen / Klötzchen).

Auch daher problematisch mit der Überlastsicherung, gerade wenn man dünne, flexible Materialien hat. Falls man knapp 1 mm für Volllast hat und die weitere Streckung bei Überlast sich linear verhält käme man bei deinen Berchnungen und 300% Last auf 1,5 bis 2,5 mm nach denen gestoppt werden müsste. Ist schon tricky das genauso einzustellen, wenn das Gestell nicht 100 % steif ist.

Ein setup könnte dann so aussehen. Wenn die Solarzell lädt leuchtet die LED rot, bei vollem LiPo eine zweite LED blau, die müsste man beide entlöten oder eine Leiterbahn durchtrennen, damit hier nicht unnötig Strom verbraucht wird.

Ein weiterer Vorteil von dieser Platine ist, dass der LiPo auch mal per (Micro-)USB aufgeladen werden kann. Wobei mit der Kombi solar charger und TTGO T-Com das auch über den USB(-C) des TTGO via IP5306 gehen würde.

1 Like

5 posts were merged into an existing topic: Beelogger-Waage mit 2 Wägezellen

Wie können wir den Stromverbrauch im deep sleep reduzierten? Da gibt es auf dem board den …

IP5306

Mir ist noch nicht klar, was der IP5306 hier genau macht: Einen angeschlossenen LiPo chargen, ok! Dann kann man damit noch die Batteriespannung messen und er hat einen powerBoost

Im Batteriebetrieb mit einem 1200 mA/h LiPo funktioniert der GSM-Betrieb mit eingeschaltetem power boost aber auch ohne! Aktuell gehe ich davon aus, dass der nur benötig wird, wenn ein schwachbrüstiger LiPo verwendet wird, der die 2A peak current nicht liefern kann.

Nun verlässt mich leider mein Chinesisch ;-) im chinesischen Datenblatt gibt es ein paar Registereinstellungen, in der “Übersetzung” fehlen die.

Kann man mit dem IP5306 auch Stromquellen bzw. Verbraucher abschalten?

Fürch-ter-lich…, was ist das denn wieder für eine [zensiert]… Jedenfalls nehmen die M5Stack-Leute den auch, ggf. gibt es Fundstücke in deren community.

vielleicht hilft das hier ja trotz auto-translate weiter…


Das ist bekloppt übersetzt: der IC beinhaltet einen boost converter (wp en), eine Topologie für Gleichspannungswandler, zu deutsch “Hochsetzsteller” oder “Aufwärtswandler” (wp de) - außer, die Chinesen meinen irgendetwas anderes damit.

Hier macht der IC aus der LiPo-Spannung eine höhere von 5V, daher muß er die Spannung hochsetzten. Der IC beherbergt mehrere Funktionen, daher kann man den DC/DC-Wandler darin offenbar einzeln abschalten. Aber ich habe, disclaimer, das Datenblatt nicht gelesen!

Zum TTGO und Deiner letzten Frage: die Spannung für das Modem (heißt DVDD4V4) wird von einem eigenen step-down-converter (ein buck converter) namens SY8089 erzeugt (heißt auf dem PCBA “1U1”). Dessen enable-EIngang ist mit IO23 des ESP32 verbunden - somit ließe sich das SIM800 komplett schalten!

2 Likes

Danke für den Link zum Datasheet bei mikrocontroller.net, schon besser als das von mir oben verlinkte!

Mit diesem banalen deep sleep sketch, der einfach hochläuft, 10 s wartet und dann 30s in den deep sleep fällt bekomme ich ca. 850 uA gemessen:

// timekeeping / deep sleep 
#define uS_TO_S_FACTOR 1000000  /* Conversion factor for micro seconds to seconds */
#define TIME_TO_SLEEP  30        /* Time ESP32 will go to sleep (in seconds) */

void setup() {
}

void loop() {
  delay(10000);
  // Put ESP32 into deep sleep mode (with timer wake up)
  // Configure the wake up source as timer wake up  
  esp_sleep_enable_timer_wakeup(uS_TO_S_FACTOR * TIME_TO_SLEEP);
  esp_deep_sleep_start();
}

Wenn ich den Testsketch der Tiny-GSM-lib für den TTGO T-Call verwende

und diesen am Ende mit dem deep sleep code von oben ergänze bekomme ich ebenfalls die 850 uA Stromaufnahme im deep sleep. Testweise habe ich bool isOk = setPowerBoostKeepOn(1); auskommentiert, das hat aber nichts verändert. Auch ein zusätzliches digitalWrite(MODEM_POWER_ON, LOW); (MODEM_POWER_ON ist pin23) vor dem deep sleep brachte ebenfalls keine Reduktion auf die vom Hersteller postulierten 300 uA.