Project 09 — Cijferloos

Van mijn vorige project had ik een sensor over die alleen de temperatuur correct meet. Kon ik daar iets mee? Ik bedacht een thermometer die kleurcodes gebruikt om de temperatuur weer te geven. Nuttig? Je kunt de temperatuur van grote afstand aflezen, zonder bril. Verder is het gewoon een leuk speeltje.

Mijn eerste idee was een RGB-LED te gebruiken, met veel verschillende tinten. Op een beeldscherm kun je met verschillende RGB-waardes een groot aantal goed te onderscheiden kleuren maken. Met een RGB-LED valt dat erg tegen. Zuiver rood, groen en blauw zijn goed te onderscheiden, maar ga je kleuren mengen, dan krijg je al snel het is niet wit, maar wat is het dan wel?

Het volgende idee was om meerdere, gewone LEDs van verschillende kleuren te gebruiken. Na wat dingen proberen ben ik uitgekomen op het volgende. Er zijn vier LEDs, blauw, groen, geel en rood. Afhankelijk van de temperatuur geeft een van de LEDs, om de vier seconde, één, twee of drie korte flitsen. Hiermee kun je vrij simpel het temperatuurbereik van tien graden tot op de graad nauwkeurig weergeven.

code temperatuur
1× blauw kouder dan 16°
2× blauw 16°
3× blauw 17°
1× groen 18°
2× groen 19°
3× groen 20°
1× geel 21°
2× geel 22°
3× geel 23°
1× rood 24°
2× rood 25°
3× rood 26° of warmer

Ik maakte een prototype met een Arduino Nano. Hierbij gebruikte ik de DHT sensor library van Adafruit die op zijn beurt gebruikt maakt van de Adafruit Unified Sensor Library. Dit werkte prima. Maar toen ik de Nano verving door een ATtiny85 werkte het niet meer, met geen enkele pin van de Tiny voor de sensor. Na even zoeken vond ik dat er wel mensen waren die een DHT-sensor gebruiken met de Tiny, maar die gebruiken een andere library, DHTlib. Daarmee werkt het bij mij ook, en de code is veel kleiner.

Het was even puzzelen hoe ik alle componenten moest rangschikken op een mini-breadboard van 170 gaten, maar dat is uiteindelijk gelukt. Breadboard en batterijhouder (3×AAA) passen samen in een transparant visitekaartdoosje, met nog een hoop ruimte over.

Op de foto worden de kleuren van de brandende LED en de LED ernaast niet goed weergegeven. De LEDs van links naar rechts zijn blauw, groen, geel, rood. Het breadboard zelf is geel, niet oranje. Een digitale camera is niet berekend op licht van een brandende LED.

Library

Sensor

DHT11 van CNT5

Onderdelen op breadboard

label type
S DHT11
IC ATtiny85
C 0.1µF
D1 blauw
D2 groen
D3 geel
D4 rood
R1 1kΩ
R2 1kΩ
R3 680Ω
R4 680Ω
R5 10kΩ

Project 08 — Arduino Nano 33 IoT

M'n eerste project met een microcontroller met toegang tot het internet. Nog geen echte IoT-toepassing. Er wordt geen data opgeslagen via het internet. De verbinding is er alleen om gegevens op te vragen.

Ik had een ESP32 kunnen gebruiken, maar ik koos voor de drie keer zo dure Arduino Nano 33 IoT. Ik dacht, met een echte Arduino loop ik minder risico op problemen met library’s.

Het idee was dat ik een klokje had waarop ik ’s nachts zou kunnen zien hoe lang het nog zou duren voor de zon op kwam. Tegenwoordig kan ik dat direct op m'n tablet zien, maar die wil ik ’s nachts niet gebruiken.

Ik heb het idee wat uitgebreid. Tussen zonsondergang en zonsopkomst laat het niet alleen zien hoe lang het nog duurt tot de zon opkomt, maar ook hoe lang het geleden is dat de zon onderging. En tussen zonsopkomst en zonsondergang het omgekeerde. Daarnaast laat het ook de huidige tijd zien. En ik dacht, laat ik er nog een sensor bijzetten voor temperatuur en luchtvochtigheid.

Het display is slechts 1,3 inch groot. Daar past alle info op als je het klein weergeeft, maar ik wilde de waardes van een afstandje kunnen lezen, zonder bril. Daarom laat het afwisselend steeds een van de waardes zien.

De hoeveelheid licht dat de letters op het display standaard geven is aardig sterk, te veel voor nachtelijk gebruik. De maximale waarde voor helderheid is 255. Ik gebruik nu ’s nachts de waarde 20, en overdag 100.

De tijd wordt gesynchroniseerd via NTP. De tijd wordt opgevraagd van m'n modem die tevens router en NTP-server is.

De tijden waarop op mijn lokatie de zon opkomt en ondergaat worden opgevraagd van een server. De code om die tijden te berekenen zijn te groot om door de microcontroller zelf te laten berekenen.

Op de foto’s is de eerste opzet te zien. Er is een LED die brandt als er verbinding met het internet wordt gemaakt om gegevens op te vragen. De tijden van zonsopkomst en ondergang worden twee keer per dag opgevraagd. En ik dacht dat een of twee keer per dag de tijd opvragen voldoende zou zijn om de interne klok van de Arduino mee te synchroniseren. Dat laatste viel tegen. Afgaand op de waardes geleverd door de functie millis() loopt de boel na een aantal uur een kwartier achter. Nu is er een continue verbinding met het internet, en wordt elke minuut de tijd opgevraagd. De LED heb ik een andere functie gegeven, die gaat nu even branden op het hele en het halve uur, als een visuele bel.

Voor temperatuur en luchtvochtigheid gebruikte ik aanvankelijk een goedkope DHT11-sensor, nog te zien op de foto. Voor temperatuur is die goed genoeg. Maar de waardes voor luchtvochtigheid begonnen al snel af te wijken van de waardes van twee weerstations waarmee ik hem vergeleek. De waardes waren zo'n 20% hoger.

Ik heb de sensor vervangen door een BME280. Duurder, nauwkeuriger, en hij geeft ook de luchtdruk aan, dus die waarde wordt nu ook weergegeven.

Libraries

Docs

Display

VMA437 met chip SH1106

display Nano
GND GND
VCC +3V3
CLK (sck) D4
MOSI D5
RES RESET
DC (a0) D7
CS D6
// SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7
U8G2_SH1106_128X64_NONAME_1_4W_SW_SPI u8g2(U8G2_R2, 4, 5, 6, 7);

Sensor

VMA335 met chip BME280

sensor Nano
Vin +3V3
Gnd GND
SDA A4
SCL A5

Sylvain Neuvel, Only Human — Book Three of the Themis Files, 2018, 424 blz.
Gekocht: november 2021, Van der Velde 3
Uitgelezen: november 2021
★★★★★

Sylvain Neuvel, Waking Gods — Book Two of the Themis Files, 2017, 322 blz.
Gekocht: oktober 2021, Van der Velde 3
Uitgelezen: oktober 2021
★★★★☆

Jan Westerhoff, Reality — A Very Short Introduction, 2011, 123 blz.
Gekocht: juli 2012, Amazon.de
Uitgelezen: oktober 2021
★★☆☆☆

Sylvain Neuvel, Sleeping Giants, Book One of the Themis Files, 2016, 377 blz.
Gekocht: oktober 2021, Van der Velde 3
Uitgelezen: oktober 2021
★★★★☆

Andy Weir, Project Hail Mary, 2021, 476 blz.
Gekocht: oktober 2021, Van der Velde 3
Uitgelezen: oktober 2021
★★★★☆

Project 07 — Flitsende Joule Thief

Verder prutsen aan de Joule Thief (zie ook 04 en 06).

De printplaatversie bleek het toch te doen (zwak) als ik een extra condensator over de al aanwezige condensator hield. Condensator stuk? Oude er uit gehaald om er een nieuwe in te zetten. Hij deed niks. Beide condensatoren samen. Weer niets. Het blijft mij een raadsel.

De boel weer op een breadboard gezet. Werkte prima.

Hoewel de Joule Thief zou moeten werken zonder condensator krijg ik ’m zonder niet aan het branden. Ik heb nog wat andere types transistoren geprobeerd. Andere weerstanden. Niks. Met sommige transistoren deed ie het ook niet met condensator.

Terug naar de beginopstelling. Ik kwam er achter dat m'n multimeter ook frequenties kan meten. Dus heb ik eens gemeten hoe snel de transistor (BC547B) schakelt met verschillende weerstanden en condensatoren. Het bleek ook verschil te maken wat voor soort LED ik gebruik.

LED R C frequentie
rood 10kΩ 1nF 7,3MHz
wit 10kΩ 1nF 8,0MHz
wit 1kΩ 1nF 5,4MHz
rood 1kΩ 560pF 7,4MHz
wit (zwak) 1kΩ 560pF 7,4MHz
wit 1kΩ 10nF 4,6MHz

Dat is zijn zeer hoge frequenties, een factor 10 groter dan wat hier en daar in documentatie wordt genoemd. Ligt het aan m'n type transistor? Aan m'n spoel?

Je kunt die frequenties omlaag brengen met een zware weerstand, en met een zware condensator erbij. Dan brandt de Joule Thief niet meer constant, maar laat korte flitsen zien, met korte of langere pauzes ertussen.

LED R C periode
rood 1MΩ 22μF 4,4s
wit 1MΩ 22μF 10,3s

Ik heb nu een flitsende Joule Thief met een rode LED, die dag en nacht aan staat. Ik ben benieuwd hoe lang die het blijft doen. Eman2000 op YouTube heeft een exemplaar dat het al vijf jaar volhoudt, waarbij de spanning van de batterij is teruggelopen van 1,6 volt naar 1,35 volt.

Gerard van Emmerik, Ik ben niet bang, 2021, 63 blz.
Gekocht: oktober 2021, Van der Velde 3
Uitgelezen: oktober 2021
★★★★☆

Lieke Marsman, Het tegenovergestelde van een mens, 2017, 175 blz.
Gekocht: oktober 2021, Van der Velde 3
Uitgelezen: oktober 2021
★★★☆☆

Nico Dros, Willem die Madoc maakte, 2021, 584 blz.
Gekocht: mei 2021, Godert Walter
Uitgelezen: september 2021
★★★★☆