Tinyhouse

JuNe hat ein feines Miniaturhaus getöpfert, welches allerdings noch beleuchtet werden musste.

Vor einiger Zeit habe ich deshalb zwei orangene LEDs in dem Haus „installiert“. Über einen Fotowiderstand wird geschaut, wie die Lichtverhältnisse im Zimmer so sind. Ist es zu hell, sind die Lichter einfach aus. Wenn es dunkler wird, werden die Lichter irgendwann angeschaltet. Wenn es zu dunkel ist, also jedes Licht im Raum abgeschaltet ist, dann gehen die Lichter im Haus langsam aus.

Video: Die Lichter gehen aus, weil es zu dunkel ist.

Im Video kommt die ganze Stimmung nicht so gut rüber: ich brauchte noch minimales Licht im Hintergrund, damit man das Haus gut erkennen kann.

Die beiden LEDs flackern zudem dezent, wenn das Licht im „Normalbetrieb“ ist. Es ist hübsch anzuschauen und bietet einem auch noch eine Minute minimales Licht, wenn man gerade ins Bett gekrochen ist.

Der Code für Arduino befindet sich hier.

Veterstacio

Jam antaŭ longe mi kunfuŝis etan veterstacion. Ĝi kapablas mezuri temperaturon, relativan humidecon, kaj aerpremon. Aldone, mi intertempe ricevis mezurilon por la lumkvanto.

La stacio en ĝia natura medio.

La tuta sistemo funkcias surbaze de ESP8266 mikrokontrolilo. Tiuj mikrokontroliloj estas tre oportunaj, ĉar ili povas komuniki per ‚normala‘ sendrata reto. Mi uzas la softvaron NodeMCU sur ĝi, ĉar ĝi estas facile uzebla kaj kunportas kodotekojn por multaj mezuriloj, inklude por la du de mia projekteto: La TSL 2561, kiu mezuras la lumkvanton, kaj la BME280, kiu mezuras ĉion alian.

La kodo konsistas al efektive tri dosieroj: init.lua kaj credentials.lua estas pli-malpli kopiitaj de la ekzemploj de la NodeMCU dokumentaro. Ili simple zorgas, ke la sistemo startas kaj konektas al mia loka sendrata reto; kaj poste ĝia programfluo iras al application.lua, kiu enhavas la ‚veran‘ kodon.

Do, jes, ĉio estas skribata en la programlingvo Lua. Mi ne vere regas ĝin, ĝi estas tamen sufiĉe simpla. Ĝenerale, kun tiaj projektoj, mi kopias iaspecan ekzemplon kaj evoluigas ĝin al kion iajn mi volas havi.

Jen la tuta programo:

bme280.init(3, 4, nil, nil, nil, 0) -- initialize to sleep mode

status = tsl2561.init(3, 4, tsl2561.ADDRESS_FLOAT, tsl2561.PACKAGE_T_FN_CL)
if status == tsl2561.TSL2561_OK then
    status = tsl2561.settiming(tsl2561.INTEGRATIONTIME_101MS, tsl2561.GAIN_1X)
end

srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
	conn:on("receive",function(conn)
		bme280.startreadout(0, function ()
			T, P, H = bme280.read()
			lux = tsl2561.getlux()
			lux_bs, lux_ir, lux_st = tsl2561.getrawchannels()
			conn:send(string.format([[HTTP/1.1 200 OK
Content-Type: application/json
Access-Control-Allow-Origin: *
Connection: close

{"temperature": %s, "pressure": %s, "humidity": %s,
"lux": %s, "lux_ir": %s, "lux_bs": %s}]], T, P, H, lux, lux_ir, lux_bs))
		end)
	end)
	conn:on("sent", function(conn)
		conn:close()
	end)
end)

Do komence mi agordas la mezurilojn. Ambaŭ mezuriloj kapablas komuniki per la protokolo I2C, kaj tio simpligas la projekton, ĉar mi simple povas konekti ambaŭ al la dratoj 3 kaj 4, kaj mi ne bezonas pliajn (krom elektro, kompreneble).

Poste mi kreas etan TCP servilon, kiu, kiam venas iu ajn demando, ĝi tuj respondas per iom da HTTP. Ĝi estas tre baza, kaj sufiĉe fuŝa, sed tamen funkcias.

Ĝi respondas per la datumformato JSON, kiu en nia kazo simple enhavas la valorojn tiel, kiel ili ‚falas‘ el la mezuriloj.

Vi povas vidi, ke mi metis tre vastan CORS kaplinion Access-Control-Allow-Origin: *. Mi poste volas uzi la informojn en loka HTML dosiero por montri al mi la nunan staton de la vetero. Mi ankaŭ metas Connection: close, ĉar ĝi vere ne scipovas iun ajn alian moduson ;-)

Mi fiksis la mikrokontrolilon per du ŝraŭboj kaj poste metis la mezurilojn per gluaĵo al la alia flanko de lignopeco. Estas mirinda, ke nenio forfalis ĝis nun kvankam ĝi staris ekstere dum sufiĉe longa tempo kaj ofte kaptis la sunon.

Feliĉe por ni, sed malfeliĉe por la stacio, nia balkono estas ĉe la suda flanko de la konstruaĵo, do la valoroj ne ĉiam respegulas la ‚ombran veron‘. Tamen estas sufiĉe interesa.

Ĉiukaze, hieraŭ mi kreis etan HTML paĝon, kiu povas ensuĉi la informojn kaj elsputi la ion legeblan.

Ekranfoto de la retpaĝo, ĉio en la germana, pardonu :)

Se la ĉefa valoro de la lummezurilo iras sub iu nombro (500, en mia kazo), la paĝo ŝanĝas la aspekton tiel, ke ĝi estas pli oportune legebla en malheleco.

Mi faris filmeton de tiu efekto, la filmeto estas iom pli rapida ol la realo por ne esti teda :)

Transiro de malhela al hela aspekto, kaj reen.

La stato antaŭ unu jaro

Dum longa tempo ĝi ne funkciis, ĉar mi ne bone zorgis pri la infrastrukturo malantaŭ la tuta sistemo. Jen tri bildoj montrante la datumojn de iu tago en septembro pasintjare:

La tri valoroj de la lummezurilo.

La temperaturo de la nun kaj la antaŭa tago.

La relativa humideco de la nuna kaj antaŭa tago.

Malfeliĉe mi ne havas bildon de la aerpremo, sed ĝi estis ankaŭ mezurita.

La estonto

Nu, mi volas iom plibonigi la nunan staton; kaj eble ankaŭ denove kolekti la informojn den iu datumbazo. Estas sufiĉe interesa vido, kiel la valoroj ŝanĝiĝas kaj kiel ili estas interligataj.

Fino

Se vi interesiĝas, la kodo por la tutaĵo troveblas ĉi tie.

Mi esperas, ke tiu ĉi teksto estis interesa kaj eble eĉ helpos al vi eviti la damnan sunon!

Surfing with IPv6-only in 2018

One year has passed, so it had to be done again!

The result? Pick either of these to find out what I found to be true this year, too!

I'm thinking about automating the creation of this post for future editions.

Blattlaus?

Gestern machte ich ein Makrofoto von einer meiner winzigen Sukkulenten.

Beim Betrachten fiel mir auf, dass sich auf dem Bild ein Ungetier eingeschlichen hatte.
Ich habe einige Zeit damit verbracht das Ding genauer unter die Lupe zu nehmen. Ich vermute, dass es irgendeine Art Blattlaus ist, auch wenn es nicht so rund und grün aussieht, wie man das sonst erwartet. Heute habe ich dann mit dem Makro ein kurzes Video gedreht, bei dem man zuschauen kann, wie das Tierchen das Blatt 'abgrast'.

Video: Tier nimmt Nahrung vom Blatt auf

Das Video gibt es hier auch noch in etwas größer. Das ganze ist ein Crop von einem HD Video, welches über die Option „Erweiterter Telebereich“ gemacht wurde. Bei der Option nimmt die Kamera offenbar direkt einen Zuschnitt auf, der genau HD-groß ist — die Qualität leidet also in der Theorie nicht.

Hier nochmal ein Größenvergleich. Jeder Strich stellt 0,5mm dar. Das Ding ist ca. 1,2mm lang.

(Sorry, dass die Abstände zwischen den Bildern und dem Text gerade nicht so richtig passen — Jekyll treibt mich in den Wahnsinn; wenn das eingebettete Video nicht da ist, geht es…)

Festplattenaufhängung

Nach einigen Jahren habe ich mal die Platten in meinem Rechner durch schnellere, und größere, ersetzt. Größter Nachteil war ein nerventötendes Brummen, welches ich am Anfang noch ein bisschen dämpfen könnte, in dem ich einfach ein paar Steine auf mein Gehäuse gelegt habe. So richtig leise wurde es trotzdem nicht. Vorhin habe ich einen Tipp bzgl. eines Produktes bekommen, welches da Abhilfe schaffen könnte. Inspiriert von jenem habe ich kurzerhand selbst was zusammenmacgyvert:

Ein bisschen Paracord durch die Seiten vom Gehäuse gefädelt und die Platten so im Gehäuse gelagert. Die Vibrationen sind noch nicht ganz weg, aber soweit ist es ziemlich ruhig. Ich muss noch ein bisschen an der Kordelspannung drehen, in der Hoffnung, dass ich den Aufbau dann soweit beruhigen kann, dass ich die klappernden Gehäuseseiten auch wieder anbringen kann.

Keine große Sache, aber vielleicht sieht sich ja jemand dem gleichen Problem gegenüber und braucht nur einen Anreiz um sich etwas selbst zu basteln.

In other news: Jekyll klemmt mal wieder und ein Teil meiner Seite ist ein bisschen defekt. Muss mir vielleicht doch mal dieses Hugo anschauen. Da rolle ich mit den Augen ;/