{"id":177,"date":"2026-05-17T15:04:05","date_gmt":"2026-05-17T22:04:05","guid":{"rendered":"https:\/\/thegeekden.net\/wordpress\/?p=177"},"modified":"2026-05-17T15:04:05","modified_gmt":"2026-05-17T22:04:05","slug":"diy-raspberry-pi-zero-2w-pico-2w-wireless-environmental-conditions-weather-station","status":"publish","type":"post","link":"https:\/\/thegeekden.net\/wordpress\/2026\/05\/17\/diy-raspberry-pi-zero-2w-pico-2w-wireless-environmental-conditions-weather-station\/","title":{"rendered":"DIY Raspberry Pi Zero 2W\/Pico 2W Wireless Environmental Conditions\/Weather Station"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/thegeekden.net\/wordpress\/wp-content\/uploads\/2026\/02\/20251214_214311-768x1024.jpg\" alt=\"\" class=\"wp-image-218\" srcset=\"https:\/\/thegeekden.net\/wordpress\/wp-content\/uploads\/2026\/02\/20251214_214311-768x1024.jpg 768w, https:\/\/thegeekden.net\/wordpress\/wp-content\/uploads\/2026\/02\/20251214_214311-225x300.jpg 225w, https:\/\/thegeekden.net\/wordpress\/wp-content\/uploads\/2026\/02\/20251214_214311-1152x1536.jpg 1152w, https:\/\/thegeekden.net\/wordpress\/wp-content\/uploads\/2026\/02\/20251214_214311-1536x2048.jpg 1536w, https:\/\/thegeekden.net\/wordpress\/wp-content\/uploads\/2026\/02\/20251214_214311-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">My Weather Station in Progress&#8230;<\/figcaption><\/figure>\n\n\n\n<p>For all of you that might be a little bit of a &#8220;Weather Geek&#8221; like me, and care about your respiratory health, here is a project that may be of interest to you, especially with regard to environmental exposures monitoring, along with a standard local weather station. I have put together this project that you can build for yourself, and it can be expanded to measure other aspects of your local environmental\/weather conditions as well. I have listed this project on Thingiverse (<a href=\"https:\/\/www.thingiverse.com\/thing:7347425\">https:\/\/www.thingiverse.com\/thing:7347425<\/a>), and plan to put up a <a href=\"https:\/\/github.com\">Github<\/a> repository for the code, as well as an <a href=\"https:\/\/instructables.com\">Instructables<\/a> page to provide instructions for the build process.<\/p>\n\n\n\n<p>*Everything here is a &#8220;Work In Progress&#8221;, so just know that things will change with regard to this project over time. At the end of this post, I will attach a BOM for those who wish to attempt this project.*<\/p>\n\n\n\n<p>It is a <a href=\"https:\/\/amzn.to\/4sEZYy4\">Raspberry Pi Zero 2W<\/a>\/<a href=\"https:\/\/amzn.to\/3NY9zlh\">Raspberry Pico 2W<\/a> based wireless indoor\/outdoor environmental conditions station that happens to also function as a local weather station. For this project, I chose to use a <a href=\"https:\/\/amzn.to\/4sEZYy4\">Raspberry Pi Zero 2W<\/a> for the main server &#8220;base&#8221; station, and 2 <a href=\"https:\/\/amzn.to\/3NY9zlh\"> Raspberry Pico 2W&#8217;<\/a>s for the &#8220;remote&#8221; devices, to take the following measurements:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Outdoor Weather (With UV Index)<\/li>\n\n\n\n<li>Outdoor Air Quality (Particulate Matter)<\/li>\n\n\n\n<li>Indoor Air Quality (CO\u00b2 Concentration)<\/li>\n<\/ol>\n\n\n\n<p>The <a href=\"https:\/\/amzn.to\/4sEZYy4\">Raspberry Pi Zero 2W<\/a> will function as the central server to receive and report the measurements of the 2 <a href=\"https:\/\/amzn.to\/3NY9zlh\">Raspberry Pico 2W<\/a> sensor devices, and render the data it receives from them in the <a href=\"https:\/\/weewx.com\/\">WeeWX<\/a> webserver interface that you can access from your web browser on your computer, smartphone, or tablet on your <a href=\"https:\/\/en.wikipedia.org\/wiki\/Local_area_network\">local area network<\/a>. It has has the following software installed:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.raspberrypi.com\/news\/bookworm-the-new-version-of-raspberry-pi-os\/\">Raspberry Pi OS &#8220;Bookworm&#8221;<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/weewx.com\/\">WeeWX Open-Source Weather Station<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/mosquitto.org\/\">Eclipse Mosquitto MQTT Broker<\/a>, acting as both a broker, and a subscriber to a single topic, &#8220;weatherpi&#8221;, just to keep things simple.<\/li>\n<\/ul>\n\n\n\n<p>On the 2 <a href=\"https:\/\/amzn.to\/3NY9zlh\">Raspberry Pico 2W<\/a>&#8216;s that I am using for this project, I have chosen to install <a href=\"https:\/\/circuitpython.org\/\">Circuit Python<\/a> onto them, since it is the most compatible version of <a href=\"https:\/\/www.python.org\/\">Python<\/a> for <a href=\"https:\/\/www.adafruit.com\/\">Adafruit Industries<\/a> devices. Some of you might want to choose to use <a href=\"https:\/\/micropython.org\/\">Micropython<\/a> for this use case, but be forewarned that when I wrote this post, I found out that <a href=\"https:\/\/micropython.org\/\">Micropython<\/a> did not have working drivers for at least one of these device&#8217;s sensors &#8211; specifically the <a href=\"https:\/\/www.bosch-sensortec.com\/en\/products\/environmental-sensors\/gas-sensors\/bme680\">Bosch sensor<\/a> on the <a href=\"https:\/\/www.adafruit.com\/product\/3660\">Adafruit BME680<\/a>. As an added bonus, <a href=\"https:\/\/circuitpython.org\/\">CircuitPython<\/a> provides a builtin lightweight webserver interface that can be accessed over your <a href=\"https:\/\/en.wikipedia.org\/wiki\/Local_area_network\">local area network<\/a> (LAN) for troubleshooting, device resetting, and easily editing\/updating the code contained on each <a href=\"https:\/\/amzn.to\/3NY9zlh\">Raspberry Pico 2W<\/a> unit. This has definitely come in handy for me on more than one occasion.<\/p>\n\n\n\n<p>In my setup, the <a href=\"https:\/\/amzn.to\/3NY9zlh\">Raspberry Pico 2W<\/a>&#8216;s take the following sensor readings:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Temperature\">Temperature<\/a> ( in \u00b0C)<\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Atmospheric_pressure\">Barometric Pressure<\/a> (in hPa\/mbar)<\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Humidity\">Humidity<\/a> (%)<\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Carbon_dioxide\">Carbon Dioxide<\/a>, CO\u00b2 (ppm)<\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Wind_speed\">Wind Speed<\/a> (km\/h)<\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Wind_direction\">Wind Direction<\/a> (0-359\u00b0)<\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Volatile_organic_compound\">VOC Readings<\/a> (in Ohms)<\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Solar_irradiance\">Solar Radiation<\/a> (in W\/m\u00b2)<\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Precipitation\">Precipitation<\/a> (cm)<\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Particulate_matter\">Particulate Matter<\/a> (1 \u03bcg\/m\u00b3, 2.5 \u03bcg\/m\u00b3, and 10 \u03bcg\/m\u00b3)<\/li>\n<\/ul>\n\n\n\n<p>The first of the Pico&#8217;s in this setup will be located outdoors, and the second one will be indoors. The first Pico (we&#8217;ll call that one &#8220;AQO-Pico&#8221;). It will be taking the following measurements:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Temperature\">Temperature<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Atmospheric_pressure\">Barometric Pressure<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Humidity\">Humidity<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Wind_speed\">Wind Speed<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Wind_direction\">Wind Direction<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Volatile_organic_compound\">VOC Readings<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Solar_irradiance\">Solar Radiation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Precipitation\">Precipitatio<\/a>n<\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Particulate_matter\">Particulate Matter<\/a><\/li>\n<\/ul>\n\n\n\n<p> It is important to note here that AQO-Pico will be taking an air quality index measurement, in the form of a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Particulate_matter\">particulate matter<\/a> measurement, given in \u03bcg\/m\u00b3. It senses <a href=\"https:\/\/en.wikipedia.org\/wiki\/Particulate_matter\">particulate matter<\/a> of various sizes, and the ones that we will be measuring are in the 1 \u03bcg\/m\u00b3, 2.5 \u03bcg\/m\u00b3, and 10 \u03bcg\/m\u00b3 ranges respectively.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.epa.gov\/pm-pollution\/particulate-matter-pm-basics\">Particulates 2.5 \u03bcg\/m\u00b3 or smaller<\/a> are the ones that are &#8220;bad&#8221; for us, since these are ones that are small enough to enter our <a href=\"https:\/\/en.wikipedia.org\/wiki\/Pulmonary_alveolus\">aveoli <\/a>(the small sacs in our lungs that allow <a href=\"https:\/\/en.wikipedia.org\/wiki\/Oxygen\">oxygen<\/a> to get into the bloodstream), and negatively impact our health &#8211; pretty much immediately for people with breathing problems, like <a href=\"https:\/\/en.wikipedia.org\/wiki\/Asthma\">asthma<\/a> or <a href=\"https:\/\/en.wikipedia.org\/wiki\/Bronchitis\">bronchitis<\/a>, and for healthier individuals, they cause harm over time, contributing to &#8220;wonderful&#8221; \ud83e\udd22 diseases like <a href=\"https:\/\/en.wikipedia.org\/wiki\/Chronic_obstructive_pulmonary_disease\">COPD<\/a>, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Emphysema\">emphysema<\/a>, and <a href=\"https:\/\/en.wikipedia.org\/wiki\/Lung_cancer\">lung cancer<\/a>.<\/p>\n\n\n\n<p>But enough of the health science stuff for now, let&#8217;s get back to the topic at hand &#8211; the weather station build!<\/p>\n\n\n\n<p>Okay, so the second Pico in my setup(which I will call &#8220;AQI-Pico&#8221;), will be tasked with measuring the following values indoors:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Temperature\">Temperature<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Humidity\">Humidity<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Carbon_dioxide\">Carbon Dioxide<\/a><\/li>\n<\/ul>\n\n\n\n<p>Just as outdoor particulate matter can be harmful to our health, excessively high indoor concentrations of CO\u00b2 can be harmful to us as well, that is why measuring it is important.<\/p>\n\n\n\n<p>Ok, so now that we know what devices we have in our setup, and what they will be doing\/measuring, we can now move on to the sensors portion of things. For this project, I chose to use the following sensors, sourced from <a href=\"https:\/\/www.adafruit.com\/\">Adafruit Industries<\/a>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.adafruit.com\/product\/3660\">Adafruit BME680 Temperature, Humidity, Pressure and Gas Sensor<\/a>, which also measures ambient <a href=\"https:\/\/en.wikipedia.org\/wiki\/Volatile_organic_compound\">VOC<\/a>&#8216;s.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.adafruit.com\/product\/5187\">Adafruit SCD 40 True CO2, Temperature and Humidity Sensor<\/a>, which has now been superseded by the <a href=\"https:\/\/www.adafruit.com\/product\/6478\">Adafruit STCC4 and SHT41 &#8211; CO2, Temperature &amp; Humidity Sensor<\/a>, as of April 2026.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.adafruit.com\/product\/4632\">Adafruit PMSA003I Air Quality Breakout<\/a>, which is unfortunately no longer available as of April 2026, but may be in the future.<\/li>\n\n\n\n<li><a href=\"http:\/\/Adafruit LTR390 UV Light Sensor - STEMMA QT \/ Qwiic\">Adafruit LTR390 UV Light Sensor<\/a>, which not only measures ambient light, but more importantly for our purposes, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Ultraviolet\">UV light<\/a> as well.<\/li>\n<\/ul>\n\n\n\n<p>For the weather monitoring part of things, including the wind direction, wind speed, and precipitation measurements, I bought the <a href=\"https:\/\/www.argentdata.com\/catalog\/product_info.php?products_id=145\">Wind\/Rain Sensor Assembly from Argent Data Systems<\/a>, since it was much cheaper than I could find it anywhere else on the Internet.<\/p>\n\n\n\n<p>To make things a simple as possible to cleanly connect the Wind\/Rain sensor assembly, I chose to get the <a href=\"https:\/\/bc-robotics.com\/shop\/raspberry-pi-pico-1591b-weather-board\/\">BC Robotics Raspberry Pi Pico 1591B Weather Board<\/a>, with which I am really impressed\/super happy about, save for 2 caveats:<\/p>\n\n\n\n<p>You have to solder the Raspberry Pico 2W to it, so you should have good soldering skills, and the right equipment to do the soldering.<\/p>\n\n\n\n<p>If you are having it shipped to the U. S., you will pay more in tariffs than you will for the PCB. It cost me $16.78 for the board itself, and I ended up paying $89 for it by the time I paid for shipping and tariffs. I think the shipping cost was $11 for my order, from Nanaimo, British Columbia, Canada, to Mossyrock, Washington, USA (268 miles). Thanks a lot, Donald &#8220;Jackass&#8221; Tariff. I&#8217;m very sorry, to my Canadian neighbors, and the rest of the World &#8211; I DID NOT vote for that fascist, misogynistic, narcissistic idiot.<\/p>\n\n\n\n<p>For the power supply end of things I bought the following items:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.adafruit.com\/product\/4755\">Adafruit Universal USB \/ DC \/ Solar Lithium Ion\/Polymer charger &#8211; bq24074<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/amzn.to\/4eiX3ax\">A 18650 Battery Holder, 2 Slot<\/a> (You can get bigger ones with more slots)<\/li>\n\n\n\n<li><a href=\"https:\/\/amzn.to\/4ckJjJT\">A solar panel for charging, 10W<\/a>. (You can go bigger here as well, especially in latitudes with lower sun exposure)<\/li>\n\n\n\n<li><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>For all of you that might be a little bit of a &#8220;Weather Geek&#8221; like me, and care about your respiratory health, here is a project that may be of interest to you, especially with regard to environmental exposures monitoring, along with a standard local weather station. I have put together this project that you [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,6,28,30],"tags":[],"class_list":["post-177","post","type-post","status-publish","format-standard","hentry","category-linux","category-open-source-software","category-self-hosting","category-weather"],"_links":{"self":[{"href":"https:\/\/thegeekden.net\/wordpress\/wp-json\/wp\/v2\/posts\/177","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thegeekden.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thegeekden.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thegeekden.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thegeekden.net\/wordpress\/wp-json\/wp\/v2\/comments?post=177"}],"version-history":[{"count":38,"href":"https:\/\/thegeekden.net\/wordpress\/wp-json\/wp\/v2\/posts\/177\/revisions"}],"predecessor-version":[{"id":329,"href":"https:\/\/thegeekden.net\/wordpress\/wp-json\/wp\/v2\/posts\/177\/revisions\/329"}],"wp:attachment":[{"href":"https:\/\/thegeekden.net\/wordpress\/wp-json\/wp\/v2\/media?parent=177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thegeekden.net\/wordpress\/wp-json\/wp\/v2\/categories?post=177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thegeekden.net\/wordpress\/wp-json\/wp\/v2\/tags?post=177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}