{"id":4298,"date":"2024-06-22T17:25:00","date_gmt":"2024-06-22T22:25:00","guid":{"rendered":"https:\/\/jimsghost.place\/?p=4298"},"modified":"2024-12-28T18:00:49","modified_gmt":"2024-12-28T23:00:49","slug":"simple-weather-station-en","status":"publish","type":"post","link":"https:\/\/jimsghost.place\/?p=4298","title":{"rendered":"Simple Weather Station"},"content":{"rendered":"\n<p>How to spend a lot of effort for seemingly nothing \u2014 and enjoy it.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>At first glance, it might seem like this story is about a failed project. But that\u2019s not the case! The project was completed in full and worked brilliantly. So why &#8220;seemingly nothing&#8221;? That will become clear at the very end.<\/p>\n\n\n\n<p>So\u2026 The task: to construct a simple weather station with basic functionality for use in automating various smart home functions. Specifically, it will optimize the logic of a lawn irrigation system and indoor lighting control. And, of course, it will inform the meat sacks about all the horrors awaiting them outside should they dare to exit the airlock of their living module on this inhospitable planet.<\/p>\n\n\n\n<p>As always, I\u2019ll try to cover the topic a bit more broadly than just \u201csolder this to that, shove it in a case, congratulations.\u201d<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Let\u2019s say that every light switch in the house currently has a built-in sensor that measures the level of illumination. The automation of the switch\u2019s operation is tied to this level, combined with a motion sensor.<\/p>\n\n\n\n<p>In practice, assessing whether a room is &#8220;dark&#8221; or &#8220;bright&#8221; turned out to be a non-trivial task. After all, the sensor measures the level of illumination only at its own specific location. For instance, on a cloudy day, the sensor might determine that it is &#8220;dark&#8221; in its spot, even though there is still plenty of light overall in the room to avoid turning on the lamp. A similar situation arises in the evening when lights in other parts of the house turn on or off, altering the overall ambient light level throughout the home.<\/p>\n\n\n\n<p>This means that the &#8220;dark&#8221; or &#8220;bright&#8221; parameter is not tied to the sensor\u2019s actual readings but rather to very inconsistent and subjective human perceptions.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\">\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/642195fa-d4b1-4dd7-a109-379aeffb7174.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"640\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/642195fa-d4b1-4dd7-a109-379aeffb7174-640x640.webp\" alt=\"\" class=\"wp-image-3660\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/642195fa-d4b1-4dd7-a109-379aeffb7174-640x640.webp 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/642195fa-d4b1-4dd7-a109-379aeffb7174-150x150.webp 150w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/642195fa-d4b1-4dd7-a109-379aeffb7174-768x768.webp 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/642195fa-d4b1-4dd7-a109-379aeffb7174.webp 1024w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<p>I conducted an experiment. Over the course of a week, at different times of day and night, I used a handheld lux meter to jot down the illumination levels at which I felt it was &#8220;dark&#8221; enough in the room to justify turning on the light.<\/p>\n\n\n\n<p>The experiment showed that the same lux meter reading, taken at the same point in the room, could be subjectively perceived as &#8220;dark&#8221; in the evening or &#8220;bright&#8221; in the morning. The same value!<\/p>\n\n\n\n<p>This discrepancy arises because the lux meter doesn\u2019t account for a multitude of other factors that together create the overall perception of brightness for a person.<\/p>\n<\/div>\n<\/div>\n<\/blockquote>\n\n\n\n<p>However, the problem can be solved. The solution is to elevate the measurement to a more global level, where lighting conditions are more consistent. Instead of creating complex algorithms to account for local light sensor conditions\u2014incorporating time of day, coefficients, adjustments, checking the light level in an adjacent room, etc. \u2014 it\u2019s simpler to just &#8220;look&#8221; at what the lighting conditions are like outside.<\/p>\n\n\n\n<p>And it worked! The automation immediately began functioning as expected. This was proven by another experiment involving a prototype cobbled together from a controller and a photoresistor, placed outdoors for a couple of days.<\/p>\n\n\n\n<p>So, what does all this talk about illumination have to do with anything? The answer is simple: &#8220;looking at how it\u2019s like outside&#8221; is a direct task for a weather station.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Here\u2019s another example.<\/p>\n\n\n\n<p>I have this thing \u2014 an automatic lawn irrigation system for my yard. Essentially, it\u2019s a primitive electronic timer that turns solenoids on and off according to a set schedule.<\/p>\n\n\n\n<p>Now, here\u2019s the problem\u2026 The weather constantly interferes with the lawn irrigation schedule. Watering grass under the scorching sun at its full 100,000 lx is a terrible idea \u2014 all the grass will &#8220;burn.&#8221; Fine, then we\u2019ll schedule the irrigation for nighttime. Problem solved? No.<\/p>\n\n\n\n<p>Because \u2014 subtropical climate. During certain seasons, rain is scheduled for the night. Watering the lawn during rain is a terrible idea. And even the day or two following rain \u2014 also not great. Fine, let\u2019s manually monitor the seasons and switch the irrigation schedule to &#8220;once every three days,&#8221; hoping that our schedule won\u2019t overlap with the rain\u2019s timetable. Problem solved? No.<\/p>\n\n\n\n<p>Because now we add the &#8220;human factor.&#8221; In the hot summer season, it\u2019s quite pleasant to sit on the veranda in the evening over the weekend, enjoying the cool spray of working sprinklers. So, if we\u2019re planning to relax on the veranda and watch the water spray, we have to switch the irrigation schedule to the evening on those days \u2014 but then remember to turn it off at night\u2026<\/p>\n\n\n\n<p>And so on. In the end, instead of having an automated system, we\u2019re stuck with nearly manual control of the irrigation. Inevitably, this leads to forgetting when, where, and what needs to be turned on or off.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<p>To make things worse, the ancient controller would sporadically reboot itself, resetting its settings to &#8220;default.&#8221; And its &#8220;default&#8221; was such a nightmare that the sprinkler system became a game of &#8220;Russian roulette.&#8221; The internal clock would reset to zero, the irrigation time would be set to some arbitrary &#8220;6 PM&#8221; relative to the reboot time, and the intervals for each sprinkler zone would be assigned completely randomly.<\/p>\n\n\n\n<p>There was always a chance you\u2019d be unexpectedly soaked head-to-toe at any random time of day or night.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\">\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/3c87da12-1685-4541-b957-ccc84a9ab507.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"640\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/3c87da12-1685-4541-b957-ccc84a9ab507-640x640.webp\" alt=\"\" class=\"wp-image-3662\" style=\"object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/3c87da12-1685-4541-b957-ccc84a9ab507-640x640.webp 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/3c87da12-1685-4541-b957-ccc84a9ab507-150x150.webp 150w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/3c87da12-1685-4541-b957-ccc84a9ab507-768x768.webp 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/3c87da12-1685-4541-b957-ccc84a9ab507.webp 1024w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/div>\n<\/div>\n<\/blockquote>\n\n\n\n<p>This sprinkler system drove us mad for years!<\/p>\n\n\n\n<p>Naturally, all these problems can be easily solved with a weather station that knows if it\u2019s dark outside, whether it\u2019s raining right now, when it last rained, what the current temperature is, the relative humidity, the day of the week, the season, and so on.<\/p>\n\n\n\n<p>By tying the weather station\u2019s data to the logic of the sprinklers, you can not only ensure comfort and joy but also save a significant amount of money for the family budget. Sprinklers are very water-hungry, and in our area, water is a precious resource.<\/p>\n\n\n\n<p>How the new lawn irrigation control system was implemented is a topic for a separate article. But it was important to mention all of this here to provide a general understanding of why I need a weather station in precisely this form and not any other.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Of course, it\u2019s clear without even discussing home automation that a weather station is also needed simply as an informational tool for people.<\/p>\n\n\n\n<p>Additionally, it must be acknowledged that electricity, the internet, and cellular connectivity in our area are extremely unreliable. I can\u2019t recall a single hurricane where at least one of these essentials didn\u2019t fail. Often, they all go down simultaneously. By now, these outages are the subject of constant jokes and are considered part of the &#8220;local charm.&#8221;<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\">\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/efc4595e-0b11-42e5-bc3b-c893def5af8c.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"640\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/efc4595e-0b11-42e5-bc3b-c893def5af8c-640x640.webp\" alt=\"\" class=\"wp-image-3664\" style=\"object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/efc4595e-0b11-42e5-bc3b-c893def5af8c-640x640.webp 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/efc4595e-0b11-42e5-bc3b-c893def5af8c-150x150.webp 150w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/efc4595e-0b11-42e5-bc3b-c893def5af8c-768x768.webp 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/efc4595e-0b11-42e5-bc3b-c893def5af8c.webp 1024w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<p>Though, to be honest, there\u2019s not much to laugh about. In recent years, the obvious shortcomings in electricity and communication infrastructure have snowballed into one of the city\u2019s most serious problems. Efforts are underway to address them \u2014 but progress is slow.<\/p>\n\n\n\n<p>Sure, &#8220;Houston strong!&#8221; and all that, but\u2026<\/p>\n<\/div>\n<\/div>\n<\/blockquote>\n\n\n\n<p>In any case, relying on weather apps to pull data from the internet isn\u2019t always practical. Texas is vast, and one weather report doesn\u2019t cover it all. In fact, it often isn\u2019t enough to represent even just Houston. So, if your phone app tells you about pleasant, mild weather with a light breeze in the city, that doesn\u2019t necessarily mean your house on the outskirts isn\u2019t being torn apart by a hurricane at the exact same time.<\/p>\n\n\n\n<p>In short, a personal, local weather station powered by batteries is a fixture in almost every household here. It\u2019s considered as essential as a microwave or an iron.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Up until now, we had been getting by just fine with an old AcuRite weather station (I can\u2019t even recall which model it was anymore):<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/17562b79-d11f-42fc-97c0-92a2836fff53_360_merchant_manual_1.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"640\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/17562b79-d11f-42fc-97c0-92a2836fff53_360_merchant_manual_1-640x640.jpg\" alt=\"\" class=\"wp-image-3621\" style=\"aspect-ratio:16\/9;object-fit:contain\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/17562b79-d11f-42fc-97c0-92a2836fff53_360_merchant_manual_1-640x640.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/17562b79-d11f-42fc-97c0-92a2836fff53_360_merchant_manual_1-1024x1024.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/17562b79-d11f-42fc-97c0-92a2836fff53_360_merchant_manual_1-150x150.jpg 150w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/17562b79-d11f-42fc-97c0-92a2836fff53_360_merchant_manual_1-768x768.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/17562b79-d11f-42fc-97c0-92a2836fff53_360_merchant_manual_1-1536x1536.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/17562b79-d11f-42fc-97c0-92a2836fff53_360_merchant_manual_1-2048x2048.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>A contraption with a &#8220;propeller&#8221; sat on the roof, while a display with pretty graphics was inside the house. No wires were needed. Batteries powered both the outdoor and indoor units \u2014 lasting over a year, depending on the brand of batteries.<\/p>\n\n\n\n<p>For a while, I toyed with the idea of intercepting the data from the sensor array outside and routing it to my smart home server. Naturally, it didn\u2019t support this &#8220;out of the box&#8221; \u2014 not surprising for a model nearly a dozen years old. Back then, no one really thought much about such integrations. There are several interesting DIY solutions online that I browsed through occasionally, but I wasn\u2019t in any rush to pursue the project.<\/p>\n\n\n\n<p>And then everything was resolved suddenly and without my involvement.<\/p>\n\n\n\n<p>One not-so-great day, I glanced at the familiar station display on the wall and saw dashes where the values were supposed to be. A clear sign that data from the sensor array wasn\u2019t being received. I figured the batteries might have died. But no\u2026 it wasn\u2019t the batteries.<\/p>\n\n\n\n<p>A brief trip to the roof revealed the grim remains of the weather station, which I promptly brought back to the ground:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_001.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_001-640x311.jpg\" alt=\"\" class=\"wp-image-3655\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_001-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_001-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_001-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_001-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_001.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>Cthulhu had come through the night before with a thunderstorm, and apparently, that eldritch horror from the depths had finished off the already aging device. One arm of the anemometer had been carried off to R\u2019lyeh. A severed vane feather lay separately on the roof, wedged into the shingles. Water had evidently gotten inside the station, wreaking total fhtagn on the electronics \u2014 the plastic casing had become as brittle as an eggshell, riddled with tiny cracks after a decade of exposure to relentless UV waves.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>It was sad, of course, but the station had lived a long and honorable life. Almost 12 years! That\u2019s no small lifespan for a household appliance. So, I had no complaints. It had repaid its $100 cost many times over. With due honors, it was laid to rest in the trash bin and remembered fondly.<\/p>\n<\/blockquote>\n\n\n\n<p>Well, then \u2014 time to find a replacement. But this time, with all new requirements in mind. The choice between &#8220;buy&#8221; and &#8220;build&#8221; leaned toward &#8220;build.&#8221; First, the cost of reliable, modern stations that can integrate with smart home systems is around $200\u2013300. That\u2019s steep. Second, by that point, I already had the necessary knowledge, tools, and parts to build such a station myself without much hassle. Third, I was simply curious to give it a try. And fourth, who\u2019s going to stop me?<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>The project was conditionally divided into two phases. Phase one \u2014 implementing the minimally required functionality. Phase two \u2014 adding extra features.<\/p>\n\n\n\n<p>The minimally required functionality included: temperature, humidity, pressure, precipitation, and illumination. These were the data points eagerly awaited by a slew of smart home automations, practically squealing with impatience.<\/p>\n\n\n\n<p>Things like wind speed\/direction, a weather forecast through the end of the Holocene, alerts from the <a href=\"https:\/\/www.weather.gov\/\" target=\"_blank\" rel=\"noreferrer noopener\">NWS<\/a>, a live stream from <a href=\"https:\/\/en.wikipedia.org\/wiki\/Punxsutawney_Phil\" target=\"_blank\" rel=\"noreferrer noopener\">Punxsutawney Phil<\/a>, or readings from a &#8220;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Weather_rock\" target=\"_blank\" rel=\"noreferrer noopener\">weather rock<\/a>&#8221; were categorized as extra features to be addressed in phase two.<\/p>\n\n\n\n<p>In reality, a weather station is laughably simple. It\u2019s a beginner-level project that\u2019s achievable for anyone even mildly interested in the subject.<\/p>\n\n\n\n<p>To implement the minimal features, only a few existing, ready-to-use components are needed:<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"600\" data-id=\"3624\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/GY-BME280-5V-Temperature-and-Humidity-and-Atmospheric-Pressure-Sensor-Module-1.jpg\" alt=\"\" class=\"wp-image-3624\"\/><figcaption class=\"wp-element-caption\">BME280<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"640\" data-id=\"3623\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/MFG_1528_4681.jpg\" alt=\"\" class=\"wp-image-3623\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/MFG_1528_4681.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/MFG_1528_4681-150x150.jpg 150w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><figcaption class=\"wp-element-caption\">BH1750<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"837\" data-id=\"3622\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/51b5ezYxP3L._AC_SL1500_-1024x837.jpg\" alt=\"\" class=\"wp-image-3622\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/51b5ezYxP3L._AC_SL1500_-1024x837.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/51b5ezYxP3L._AC_SL1500_-640x523.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/51b5ezYxP3L._AC_SL1500_-768x628.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/51b5ezYxP3L._AC_SL1500_.jpg 1437w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">CPRSDBEX<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>BME280<\/strong>: A reliable module for measuring temperature, humidity, and atmospheric pressure.<\/li>\n\n\n\n<li><strong>BH1750<\/strong>: A module for measuring illumination levels.<\/li>\n\n\n\n<li><strong>CPRSDBEX<\/strong>: A rain sensor.<\/li>\n<\/ul>\n\n\n\n<p>At first glance, the <a href=\"https:\/\/www.mouser.com\/datasheet\/2\/783\/BST-BME280-DS002-1509607.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">BME280 <\/a>could be replaced with simpler and cheaper options like the DHT22 or DHT11. However, these alternatives are not particularly suited for outdoor use. Their operating temperature range isn\u2019t ideal for our climate \u2014 they\u2019d barely be able to function at their limits. Moreover, they don\u2019t measure pressure, only temperature and humidity. And pressure is a very important predictive factor for a weather station\u2019s functionality. All in all, the BME280 is a reasonable choice \u2014 as long as it\u2019s provided with proper environmental protection (more on that below).<\/p>\n\n\n\n<p>The <strong><a href=\"https:\/\/www.mouser.com\/datasheet\/2\/348\/bh1750fvi-e-186247.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">BH1750<\/a><\/strong> for illumination is arguably overkill. A simple photoresistor would suffice. But in this case, I wanted to minimize the number of wires running from the sensors to the controller. And with that setup, the BH1750 can hang on the same wire as the BME280 since both work with the I2C bus.<\/p>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<figure class=\"wp-block-image alignright size-thumbnail\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/505900-150x150.webp\" alt=\"\" class=\"wp-image-3625\" style=\"object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/505900-150x150.webp 150w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/505900-640x640.webp 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/505900-768x768.webp 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/505900.webp 1000w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/figure>\n<\/div>\n\n\n\n<p>The <a href=\"https:\/\/store.rainbird.com\/cprsdbex-wired-rain-sensor.html\" target=\"_blank\" rel=\"noreferrer noopener\">CPRSDBEX<\/a> rain sensor from RainBird doesn\u2019t support I2C. In fact, it doesn\u2019t support anything. It\u2019s just a clicky microswitch. Inside, there\u2019s a column of cork discs on a stick. When water hits the discs, they absorb it, swell, and lengthen the column. The column presses on the microswitch, and it clicks into a closed state. Hooray, rain! When the cork dries out, the discs shrink back down, the column contracts, stops pressing on the switch, and it clicks back into an open state. Hooray, no rain!<\/p>\n\n\n\n<p>Moreover, you can tighten or loosen the outer cap of the housing to adjust the threshold at which the cork column swells enough to trigger the switch. This allows you to fine-tune the amount of precipitation needed to activate the detector. For example, a small amount of rainfall might not cause the column to expand far enough to close the switch. Automation!<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Naturally, such a sensor cannot provide precise measurements of the amount of rainfall during a storm. It can only tell you something like &#8220;more than a quarter inch,&#8221; but not exactly how many millimeters fell per hour. And, of course, the cork discs need regular replacement. Over time, they lose their ability to expand due to dirt buildup and mold growth. They should be replaced every year or two.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Ah, yes\u2026 Almost forgot. Of course, all of this needs a microcontroller.<\/p>\n\n\n\n<p>Really, any Arduino would do if the station is planned to be standalone, without connecting to the outside world. There\u2019s an abundance of ready-made solutions where you don\u2019t even need to write your own firmware. They often come with colorful screens, buzzers, relays, and more right out of the box. Most of these solutions are offered completely free, ready-to-use, and widely available online. Many even include 3D-printable case models. Often, such setups provide functionality far surpassing that of my old weather station.<\/p>\n\n\n\n<p>But I needed connectivity with other smart devices in the house. So, the simplest solution was to use an ESP32 microcontroller in its most basic and ancient form \u2014 the DEV KIT 1.0 version. I still have a bucketful of these, enough for several smart homes!<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/61o2ZUzB4XL._AC_UF8941000_QL80_.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"459\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/61o2ZUzB4XL._AC_UF8941000_QL80_-640x459.jpg\" alt=\"\" class=\"wp-image-3627\" style=\"aspect-ratio:16\/9;object-fit:contain\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/61o2ZUzB4XL._AC_UF8941000_QL80_-640x459.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/61o2ZUzB4XL._AC_UF8941000_QL80_-768x551.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/61o2ZUzB4XL._AC_UF8941000_QL80_.jpg 894w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>At some point, I had the &#8220;bright idea&#8221; to buy them wholesale on AliExpress during a sale \u2014 one dollar apiece. And now, for years, I can\u2019t seem to rid my stash of them, even though I\u2019ve shoved one into nearly every appliance in the house. I\u2019m about to run out of router IP addresses for them, and yet the pile still doesn\u2019t seem to shrink. And they just keep working, like Swiss watches, those little devils! They give me no reason whatsoever to throw them away. The oldest one in the house, which controls the shelf lights in the living room, has been running since September 2019 \u2014 more than five years now \u2014 and shows no signs of dying. Three different smart home servers have come and gone in that time, and it just keeps on running, occasionally getting a firmware update. Somehow, the Chinese managed to create an astoundingly unkillable device.<\/p>\n<\/blockquote>\n\n\n\n<p>So, for the first phase of the project, all the necessary components are essentially ready. The only thing left is to assemble them together and put them into a case.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\u0418\u0437\u0443\u0447\u0438\u0432 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0432\u044f\u0437\u0438 \u0432\u0435\u0441\u044c \u0437\u043e\u043e\u043f\u0430\u0440\u043a \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0435\u0439 &#8220;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Stevenson_screen\" target=\"_blank\" rel=\"noreferrer noopener\">\u044d\u043a\u0440\u0430\u043d\u0430 \u0421\u0442\u0438\u0432\u0435\u043d\u0441\u043e\u043d\u0430<\/a>&#8220;, \u0432\u044b\u0431\u0440\u0430\u043b \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0439 \u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0443\u044e \u0432 \u0441\u0440\u0435\u0434\u0435 DIY-\u0449\u0438\u043a\u043e\u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e &#8220;<s>\u0433\u043e\u0432\u043d\u043e<\/s> \u0431\u043b\u044e\u0434\u0446\u0430 \u043d\u0430 \u043f\u0430\u043b\u043a\u0435&#8221;&#8230; \u041c\u043d\u044d&#8230; \u041d\u0443, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u043e \u0432 \u0432\u0438\u0434\u0435 \u043f\u0435\u0440\u0435\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u0445 \u0431\u043b\u044e\u0434\u0435\u0447\u0435\u043a \u043e\u0434\u043d\u043e \u043d\u0430\u0434 \u0434\u0440\u0443\u0433\u0438\u043c, \u043d\u0430\u043f\u044f\u043b\u0435\u043d\u043d\u043e\u0435 \u043d\u0430 \u043e\u0431\u0449\u0438\u0439 \u0441\u0442\u0435\u0440\u0436\u0435\u043d\u044c. \u0422\u0438\u043f\u0430 \u0442\u0430\u043a\u043e\u0433\u043e:<\/p>\n\n\n\n<p>After examining the entire menagerie of <a href=\"https:\/\/en.wikipedia.org\/wiki\/Stevenson_screen\" target=\"_blank\" rel=\"noreferrer noopener\">Stevenson screen<\/a> variations, I settled on a popular DIY configuration commonly referred to as &#8220;stacked saucers on a stick.&#8221; You know \u2014 the one where upside-down saucers are layered on top of one another along a central rod. Something like this:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/large_display_IMG_0808_270827.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/large_display_IMG_0808_270827-640x480.jpg\" alt=\"\" class=\"wp-image-3631\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/large_display_IMG_0808_270827-640x480.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/large_display_IMG_0808_270827-768x576.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/large_display_IMG_0808_270827.jpg 1024w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>This design is a favorite among DIY enthusiasts because it\u2019s easy to make out of almost anything. People often use suitably sized drip trays from small flower pots. Plastic food containers? Sure, those work too. Anything vaguely saucer- or bowl-shaped that you can cut on your workbench will do. And if you have access to a 3D printer\u2026 Well, I do!<\/p>\n\n\n\n<p>The envisioned construction looked something like this:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/rndrWSt_01.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"366\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/rndrWSt_01-640x366.jpg\" alt=\"\" class=\"wp-image-3632\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/rndrWSt_01-640x366.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/rndrWSt_01-1024x586.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/rndrWSt_01-768x440.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/rndrWSt_01-1536x879.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/rndrWSt_01.jpg 1677w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/rndrWSt_02.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"324\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/rndrWSt_02-640x324.jpg\" alt=\"\" class=\"wp-image-3633\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/rndrWSt_02-640x324.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/rndrWSt_02-1024x518.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/rndrWSt_02-768x389.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/rndrWSt_02-1536x778.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/rndrWSt_02.jpg 1896w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Dome for the illumination module<\/li>\n\n\n\n<li>Stevenson screen saucers (5 pieces)<\/li>\n\n\n\n<li>Rod mounts (2 pieces)<\/li>\n\n\n\n<li>Sensor mounts (BH1750 on top, BME280 underneath)<\/li>\n\n\n\n<li>Modified saucer with a mount for CPRSDBEX (rain sensor)<\/li>\n\n\n\n<li>Rod (a cut section of PVC pipe)<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\"><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:70%\"><div class=\"wp-block-embed-stl-embed-stl\" >\n<div id=\"stl-preview-0b726fa3_5212_47fc_9461_8b578bee5e08\" class=\"embed-stl-target embed-stl-size-md \">\n<img decoding=\"async\" src=\"https:\/\/jimsghost.place\/wp-content\/plugins\/embed-stl\/public\/img\/icon.svg\" class=\"embed-stl-cube-icon\">\n<\/div>\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", function() {\nvar e = document.getElementById(\"stl-preview-0b726fa3_5212_47fc_9461_8b578bee5e08\"); var stlView_0b726fa3_5212_47fc_9461_8b578bee5e08 = new StlViewer(e, {\"models\":[{\"id\":0,\"filename\":\"https:\\\/\\\/jimsghost.place\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/Assembly1.stl\",\"color\":\"#dadada\",\"display\":\"smooth\"}],\"bg_color\":\"#b0bbcb\",\"auto_rotate\":true,\"grid\":false,\"allow_drag_and_drop\":false,\"send_no_model_click_event\":true});\nfunction stlView_0b726fa3_5212_47fc_9461_8b578bee5e08_recenter(id,evt,dist,ct) { if (ct != 11) return; v=stlView_0b726fa3_5212_47fc_9461_8b578bee5e08; c=v.get_camera_state(); c.position={...c.position, x:0, y:0, z:v.calc_z_for_auto_zoom()}; c.target={...c.target, x:0, y:0, z:0}; v.set_camera_state(c);};\nfunction stlView_0b726fa3_5212_47fc_9461_8b578bee5e08_orient() { v=stlView_0b726fa3_5212_47fc_9461_8b578bee5e08; m=v.models[0].mesh; m.rotation.x=0.0000; m.rotation.y=0.0000; m.rotation.z=0.0000; m.scale.setScalar(1.0000); };\nwindow.addEventListener(\"resize\", function() { stlView_0b726fa3_5212_47fc_9461_8b578bee5e08_recenter(0,0,0,11); });\nstlView_0b726fa3_5212_47fc_9461_8b578bee5e08.set_on_model_mousedown(stlView_0b726fa3_5212_47fc_9461_8b578bee5e08_recenter);\nstlView_0b726fa3_5212_47fc_9461_8b578bee5e08.all_loaded_callback=stlView_0b726fa3_5212_47fc_9461_8b578bee5e08_orient;\n});\n<\/script>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\"><\/div>\n<\/div>\n\n\n\n<p>With this layout, everything would be neatly secured and functional, providing both weather protection and adequate ventilation for the sensors. The design was simple yet effective \u2014 perfect for the project.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>A very short but <strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#741e1e\" class=\"has-inline-color\">critically important<\/mark><\/strong> preliminary step before beginning assembly: generously coat all modules with electrical lacquer sealer in several layers.<\/p>\n\n\n\n<p>This step is <strong>absolutely essential!<\/strong> Without it, your device won\u2019t last long outdoors. Even if there\u2019s no direct exposure to moisture on the electronic components, condensation will always be present. The exposed semiconductors on the boards of these modules are not designed for outdoor conditions.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/0001892_the-essential-guide-to-conformal-coating.jpeg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"460\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/0001892_the-essential-guide-to-conformal-coating-640x460.jpeg\" alt=\"\" class=\"wp-image-3757\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/0001892_the-essential-guide-to-conformal-coating-640x460.jpeg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/0001892_the-essential-guide-to-conformal-coating-1024x735.jpeg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/0001892_the-essential-guide-to-conformal-coating-768x551.jpeg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/0001892_the-essential-guide-to-conformal-coating.jpeg 1500w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>\u041b\u0438\u0447\u043d\u043e \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e <a href=\"https:\/\/www.sprayon.com\/product\/clear-electrical-lacquer-sealer\/\" target=\"_blank\" rel=\"noreferrer noopener\">EL2000 \u043e\u0442 Spraylon<\/a>. \u0415\u0449\u0435 \u043d\u0438 \u0440\u0430\u0437\u0443 \u043d\u0435 \u043f\u043e\u0434\u0432\u043e\u0434\u0438\u043b. \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435 \u0438\u043c \u043c\u043e\u0434\u0443\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u0445\u043e\u0442\u044c \u0438\u0437 \u0448\u043b\u0430\u043d\u0433\u0430 \u0432\u043e\u0434\u043e\u0439 \u043f\u043e\u043b\u0438\u0432\u0430\u0442\u044c &#8211; \u0432\u044b\u0436\u0438\u0432\u0443\u0442. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043b\u0430\u043a\u043e\u043c \u043b\u0438\u0442\u044c \u043d\u0430\u0434\u043e \u0441 \u0443\u043c\u043e\u043c, \u0437\u0430\u043a\u043b\u0435\u0438\u0432 \u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u043e\u0439 \u043b\u0435\u043d\u0442\u043e\u0439 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u044b\u0435 \u043c\u0435\u0441\u0442\u0430. \u0423 \u0444\u043e\u0442\u043e\u0441\u0435\u043d\u0441\u043e\u0440\u0430 &#8211; \u043e\u043a\u043e\u0448\u043a\u043e \u0444\u043e\u0442\u043e\u0441\u0435\u043d\u0441\u043e\u0440\u0430, \u0443 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u0430 &#8211; \u0434\u044b\u0440\u043e\u0447\u043a\u0443 \u0434\u043b\u044f \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0446\u0438\u0438. \u041c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u0443\u044e \u043b\u0435\u043d\u0442\u0443 \u043f\u043e\u0442\u043e\u043c \u043d\u0435 \u0437\u0430\u0431\u044b\u0442\u044c \u0441\u043d\u044f\u0442\u044c. \u041d\u043e \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 &#8211; \u0437\u0430\u043b\u0438\u0442\u044c! \u0412 \u0442\u0440\u0438-\u0447\u0435\u0442\u044b\u0440\u0435 \u0441\u043b\u043e\u044f. \u0414\u0430\u0442\u044c \u0432\u044b\u0441\u043e\u0445\u043d\u0443\u0442\u044c. \u041f\u043e\u0442\u043e\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c.<\/p>\n\n\n\n<p>Personally, I use <a href=\"https:\/\/www.sprayon.com\/product\/clear-electrical-lacquer-sealer\/\" target=\"_blank\" rel=\"noreferrer noopener\">EL2000 from Spraylon<\/a>. It has never failed me. Modules treated with this can even survive being sprayed with water from a hose. Of course, you need to apply the lacquer thoughtfully, using masking tape to protect critical areas beforehand. For the light sensor, cover the sensor window; for the temperature sensor, cover the ventilation hole. Don\u2019t forget to remove the masking tape afterward! But everything else? Coat it all \u2014 three to four layers. Let it dry, then repeat the process.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>The saucers for the screen are all identical. They were designed to stack neatly and allow for mounting brackets inside to hold the modules and the rod:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_001.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_001-640x311.jpg\" alt=\"\" class=\"wp-image-3635\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_001-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_001-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_001-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_001-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_001.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>All mounting is done either through a through-hole with a nut or via a threaded insert embedded into the plastic if the hole is blind:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_002.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_002-640x311.jpg\" alt=\"\" class=\"wp-image-3636\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_002-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_002-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_002-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_002-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_002.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>The dome on the very first saucer is made of glass. Not acrylic, not plexiglass. Genuine glass:<\/p>\n\n\n\n<figure class=\"wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_004.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" data-id=\"3637\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_004-640x311.jpg\" alt=\"\" class=\"wp-image-3637\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_004-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_004-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_004-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_004-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_004.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_003.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" data-id=\"3638\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_003-640x311.jpg\" alt=\"\" class=\"wp-image-3638\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_003-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_003-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_003-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_003-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_003.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>Originally, it was just a decorative piece. You know, the kind of thing that sits on a shelf or table as a fancy cover for some trinket, protecting it from dust. I found a variety of these in different sizes \u2014 my wife had asked for them for her collection of souvenirs on the shelf. I found them on Amazon; there\u2019s an abundance of them in all sizes:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"640\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/61wmAJjYqkL._AC_SL1001_-640x640.jpg\" alt=\"\" class=\"wp-image-3639\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/61wmAJjYqkL._AC_SL1001_-640x640.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/61wmAJjYqkL._AC_SL1001_-150x150.jpg 150w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/61wmAJjYqkL._AC_SL1001_-768x768.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/61wmAJjYqkL._AC_SL1001_.jpg 1001w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n<p>It turned out to be perfect for my purposes.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>One of the trinkets on the shelf accidentally ended up without a dome. The \u0421at probably got playful! Really, it\u2019s true\u2026<\/p>\n<\/blockquote>\n\n\n\n<p>The glass dome was glued into the saucer\u2019s opening with transparent sealant all along the perimeter. The sealant not only holds the dome securely in place but also seals the joint to keep out rain.<\/p>\n\n\n\n<p>The sensors were mounted on their respective brackets and attached to the very top saucer:<\/p>\n\n\n\n<figure class=\"wp-block-gallery aligncenter has-nested-images columns-3 is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_006.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"498\" data-id=\"3643\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_006-1024x498.jpg\" alt=\"\" class=\"wp-image-3643\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_006-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_006-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_006-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_006-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_006.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_007.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"498\" data-id=\"3642\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_007-1024x498.jpg\" alt=\"\" class=\"wp-image-3642\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_007-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_007-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_007-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_007-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_007.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_008.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"498\" data-id=\"3640\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_008-1024x498.jpg\" alt=\"\" class=\"wp-image-3640\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_008-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_008-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_008-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_008-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_008.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>The BME280 wasn\u2019t mounted directly but rather via a tall standoff. This places it roughly in the middle of the six-saucer stack, allowing the &#8220;Stevenson screen&#8221; to fully do its job:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_009.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_009-640x311.jpg\" alt=\"\" class=\"wp-image-3645\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_009-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_009-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_009-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_009-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_009.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>All the mounting screws used were stainless steel. Real stainless steel, not the fake Chinese kind. They are genuinely rustproof.<\/p>\n\n\n\n<p>One of the saucers was fitted with the rain detector:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_010.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_010-640x311.jpg\" alt=\"\" class=\"wp-image-3647\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_010-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_010-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_010-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_010-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_010.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>This is the only &#8220;non-standard&#8221; saucer with a mount for the CPRSDBEX. In the future, it\u2019s planned to be replaced when additional instruments like an anemometer, wind vane, and rain gauge are added to the array. In theory, this saucer will need to be reprinted with mounts for those instruments. But for now, for the minimal configuration of the project\u2019s first phase, what\u2019s there is sufficient.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>In the end, all that was left was to mount this &#8220;Stevenson screen&#8221; onto the pole, achieving the desired result:<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_011.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" data-id=\"3646\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_011-640x311.jpg\" alt=\"\" class=\"wp-image-3646\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_011-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_011-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_011-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_011-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_011.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"498\" data-id=\"3648\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_012-1024x498.jpg\" alt=\"\" class=\"wp-image-3648\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_012-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_012-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_012-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_012-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_012.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/figure>\n\n\n\n<p>And to place it on the wall of the house, above the edge of the veranda roof, so it wouldn\u2019t get drenched by water from the gutters:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_014.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_014-640x311.jpg\" alt=\"\" class=\"wp-image-3649\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_014-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_014-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_014-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_014-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_014.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>The weather station is ready!<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Ah, right\u2026 I forgot about the controller again.<\/p>\n\n\n\n<p>The controller needs to have a standard, ready-made <a href=\"https:\/\/esphome.io\/index.html\" target=\"_blank\" rel=\"noreferrer noopener\">ESPHome<\/a> firmware installed, configured for the onboard sensors. And that\u2019s it. Any further adjustments, if needed, can be made remotely &#8220;over the air&#8221; via the central server.<\/p>\n\n\n\n<figure class=\"wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/Screenshot-2024-11-24-073601.png\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"375\" data-id=\"3761\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/Screenshot-2024-11-24-073601-640x375.png\" alt=\"\" class=\"wp-image-3761\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/Screenshot-2024-11-24-073601-640x375.png 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/Screenshot-2024-11-24-073601-1024x600.png 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/Screenshot-2024-11-24-073601-768x450.png 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/Screenshot-2024-11-24-073601.png 1450w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/Screenshot-2024-11-24-073659.png\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"369\" data-id=\"3762\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/Screenshot-2024-11-24-073659-640x369.png\" alt=\"\" class=\"wp-image-3762\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/Screenshot-2024-11-24-073659-640x369.png 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/Screenshot-2024-11-24-073659-1024x591.png 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/Screenshot-2024-11-24-073659-768x443.png 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/06\/Screenshot-2024-11-24-073659.png 1461w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>So, the controller can simply be placed in a waterproof box and, along with the power supply\u2026 :<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_013.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_013-640x311.jpg\" alt=\"\" class=\"wp-image-3650\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_013-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_013-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_013-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_013-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_013.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>\u2026and mount on the wall next to the weather station:<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-6 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"498\" data-id=\"3651\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_016-1024x498.jpg\" alt=\"\" class=\"wp-image-3651\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_016-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_016-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_016-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_016-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_016.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"498\" data-id=\"3652\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_015-1024x498.jpg\" alt=\"\" class=\"wp-image-3652\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_015-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_015-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_015-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_015-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-06-22_015.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/figure>\n\n\n\n<p>And then forgotten forever. There are no controls on it, because there\u2019s nothing to control. All the data collected by the station is sent directly to the smart home server, where it becomes available to the rest of the automation system.<\/p>\n\n\n\n<p>Admittedly, the box for the controller is oversized, but I had an idea to also fit the lawn irrigation control system in there. However, that\u2019s a topic for a different project, and it still needs to be thoroughly planned out.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Summing up the project and returning to the very beginning of the article\u2026<\/p>\n\n\n\n<p>The DIY weather station proved to be brilliant! The home automation system seamlessly integrated its data and began operating as planned. The lawn irrigation system, which came soon after, was equally thrilled with the symbiosis.<\/p>\n\n\n\n<p>Everything worked flawlessly for about six months. It survived the hottest season and even endured another hurricane. Nothing blew away, nothing glitched, and it consistently provided accurate information. The project was deemed a complete success, fulfilling all the objectives set for it.<\/p>\n\n\n\n<p>Things were already moving toward phase two, where the weather station was supposed to gain additional instruments. But then something unexpected happened\u2026<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>At some point, I stopped maintaining my blog and publishing new materials. This very article about the weather station was written long after those events and remained as a draft on the local version of the blog, stored on the <a href=\"\/?tag=ktchsrvbox-en&amp;order=asc\">home server<\/a> where no one could see it. It sat among many similar drafts.<\/p>\n\n\n\n<p>As a result, my friends couldn\u2019t follow the progression of my &#8220;smart home madness&#8221; saga. The only thing available to them was my Amazon wishlist, where I had once, in a fit of inspiration, added an advanced weather station for &#8220;better times.&#8221; It was something I could theoretically use but deemed &#8220;too expensive for now.&#8221; This was before the old station died and before I even planned to build my own. I just stumbled upon it, thought about it, bookmarked it &#8220;for later,&#8221; and forgot about it. And so, it lingered in the wishlist for a long time. It was pricey, so people usually skipped over such items when looking for spontaneous gifts\u2026 But not this time!<\/p>\n\n\n\n<p>One day, around Christmas, I found a box on my porch with the best wishes from friends encouraging me to keep indulging my smart home obsession. They figured, &#8220;To keep this madness alive, here\u2019s a little something from all of us!&#8221;<\/p>\n\n\n\n<p>Yes, believe it or not\u2026 Christmas miracles are real! Movies don\u2019t lie \u2014 they do happen! Especially when you least expect them.<\/p>\n\n\n\n<p>Inside the box was none other than the then-top-notch <a href=\"https:\/\/ambientweather.com\/ws-2000-smart-weather-station\">Ambient Weather WS-2000<\/a>, packed with every conceivable feature for a weather station and full integration into a smart home:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/ambientweather.com\/ws-2000-smart-weather-station\"><img loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"600\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/aw-ws-2000.webp\" alt=\"\" class=\"wp-image-3653\"\/><\/a><\/figure>\n\n\n\n<p>And so, what &#8220;phase two&#8221;? It completely lost its purpose.<\/p>\n\n\n\n<p>All that was left to do now was to hoist the new device onto the roof:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_002.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_002-640x311.jpg\" alt=\"\" class=\"wp-image-3656\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_002-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_002-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_002-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_002-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_002.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>And hang yet another screen on the wall:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_003.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_003-640x311.jpg\" alt=\"\" class=\"wp-image-3657\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_003-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_003-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_003-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_003-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/2024-11-23_003.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>For a while, both stations operated in parallel. By then, I had set up quite a bit of automation tied to my DIY station. It worked so well that I didn\u2019t want to risk switching everything at once to the new station, especially the data concerning rainfall. Field testing was needed to build trust in the new sensors&#8217; ability to manage water consumption.<\/p>\n\n\n\n<p>Gradually, over about a month, the new station took over all the functions. At the server level, its data was combined with online weather information, satisfying not only the &#8220;human factor&#8221; but also opening new opportunities for automation:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/Screenshot-2024-11-23-143442.png\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"376\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/Screenshot-2024-11-23-143442-640x376.png\" alt=\"\" class=\"wp-image-3658\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/Screenshot-2024-11-23-143442-640x376.png 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/Screenshot-2024-11-23-143442-1024x601.png 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/Screenshot-2024-11-23-143442-768x451.png 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/Screenshot-2024-11-23-143442-1536x901.png 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/Screenshot-2024-11-23-143442.png 1677w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>This also allowed me to compare the sensor readings shared by both stations. There were differences, of course, but they were minor \u2014 within about 1%, which falls well within the nominal inaccuracies of inexpensive modules. Although it\u2019s hard to say which &#8220;turtle is lying,&#8221; it\u2019s safe to say that at the &#8220;user&#8221; level, for this application, it doesn\u2019t matter.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p style=\"margin-top:8px;margin-bottom:8px\"><strong>A note from the future:<\/strong><br>The DIY station still sits on the roof, but now it\u2019s just an experiment. Its data is ignored by the system, but I want to determine a few things through observation:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>How much longer will the lacquer-coated electronics survive in our climate?<\/li>\n\n\n\n<li>How long will the plastic of the screen (PLA+) last under our sun before degrading?<\/li>\n<\/ol>\n\n\n\n<p style=\"margin-top:8px;margin-bottom:8px\">More than a year has passed. The electronics are still working. The plastic has gathered some dust and developed mold on one side, but it hasn\u2019t lost its structural integrity and remains bright white (if it starts yellowing, it\u2019s a sign the end is near). The experiment continues.<\/p>\n<\/blockquote>\n\n\n\n<p><strong>A secondary conclusion from the project:<\/strong><br>If someone wants to build their own weather station from simple components \u2014 go for it without hesitation. It won\u2019t be any worse than what you\u2019d find ready-made on the market. And it will definitely be about three times cheaper. Sure, the secondary functionality will be more limited, but as a &#8220;user-level&#8221; weather station, it\u2019s entirely adequate.<\/p>\n\n\n\n<p>Personally, I have no regrets. Not about the time spent on my creation, nor about the arrival of the new station. The satisfaction of creating something worthwhile with your own hands \u2014 you can\u2019t buy that for any amount of money! Just like Christmas miracles \ud83d\ude42<\/p>\n\n\n\n<p>That\u2019s how it is\u2026<\/p>\n","protected":false},"excerpt":{"rendered":"<p>How to spend a lot of effort for seemingly nothing \u2014 and enjoy it.<\/p>\n","protected":false},"author":1,"featured_media":3659,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","footnotes":""},"categories":[234,291],"tags":[215,219,330,211],"class_list":["post-4298","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-smarthome-en","category-myard-en","tag-esphome-en","tag-nnvi-en","tag-weather-en","tag-ha-en"],"featured_image_src":"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/62963ebe-6f5c-4844-b473-c942884575c9.webp","author_info":{"display_name":"Jim","author_link":"https:\/\/jimsghost.place\/?author=1"},"_links":{"self":[{"href":"https:\/\/jimsghost.place\/index.php?rest_route=\/wp\/v2\/posts\/4298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jimsghost.place\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jimsghost.place\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jimsghost.place\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jimsghost.place\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4298"}],"version-history":[{"count":0,"href":"https:\/\/jimsghost.place\/index.php?rest_route=\/wp\/v2\/posts\/4298\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jimsghost.place\/index.php?rest_route=\/wp\/v2\/media\/3659"}],"wp:attachment":[{"href":"https:\/\/jimsghost.place\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jimsghost.place\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4298"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jimsghost.place\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}