
Iaq device
nkitanov/iaq_board
IAQ Board is a DIY (Do-It-Yourself) device for measuring internal air quality

Architecture of my home sensor system incl. esp32, raspberrypi etc.
Homelab is an open-source printed circuit board by lal02, from the lal02/homesensor repository on GitHub, published under the MIT licence. It is a 2-layer board of 180 × 160.5 mm with 11 parts on 52 nets, routed with 156 tracks and 0 vias.
It is built around the DHT22 and TSL2561T. Its parts include 7 connectors, 1 resistor, 1 IC and 1 switch. It belongs with the ESP32 and ESP8266 boards of this library.
This project, which is built around the esp32 microcontroller, started out as a simple Spring Application while I was doing an internship as a part of my university's practical semester. The goal of the Spring Application was to get familiar with Spring in general.
The Spring application mentioned above has additional features that are not relevant to the homesensor setup and will therefore not be discussed in this repository.
The idea was to use the esp32 as a data source to get some hands-on experience with REST interfaces and Data Handling in Spring. Beyond just being a learning exercise, this project turned out to be really useful. By collecting and graphing temperature data, I was able to spot a problem with the underfloor heating in my apartment.
The esp32 collects data from a variety of sensors and transmits it to the Spring backend through REST interfaces. The Spring backend, in turn, offers multiple REST interfaces for both sending and retrieving data. Additionally, a Raspberry Pi controls a 64x64 LED matrix, which displays data received from the Spring backend. It also adjusts the brightness of the LED matrix based on the light intensity data obtained.
This sketch illustrates the structure of all the hardware and software components, as well as how they interact with each other.

The project commenced as a modest undertaking, utilising an ESP32 microcontroller and a DHT22 sensor to gather and transmit temperature and humidity data. Subsequent to this, the setup was expanded by the addition of further sensors, including the TSL2561 for the purpose of measuring light intensity, and subsequently the MQ7 and MQ135 for the purpose of measuring air quality. In order to enhance the ease of use, a number of quality-of-life features have been incorporated. These included an LCD screen that displayed the IP address and the time until the next sensor reading. Furthermore, an HTTP server was configured on the ESP32, incorporating two endpoints. The primary endpoint facilitates the retrieval of hardware-related information in the form of an HTML file, encompassing details such as the IP address, MAC address, host name, WiFi SSID, and the list of connected sensors along with their respective functions. In conclusion, a touch button was incorporated, the actuation of which initiates a sensor reading. Presently, both the ESP32 and the sensors are stored within a cardboard box. This short term storage method will be replaced in the future by a custom 3D printed case.
The system is constructed around a Raspberry Pi 3, which hosts a variety of essential services. The system operates a Tomcat service, which contains a Spring application, thereby providing a robust backend for the management of a variety of tasks. Furthermore, the Raspberry Pi is equipped with a GitHub Actions runner, thereby enabling DevOps processes and continuous integration/continuous deployment (CI/CD) pipelines. It also manages a PostgreSQL database, thereby enabling efficient data storage and management. It is evident that when a multitude of applications are operating concurrently, the Raspberry Pi 3 reaches its maximum performance capacity. During periods of substantial data loading, such as retrieving large amounts of data via a REST Interface Call, the system encounters performance bottlenecks. This performance limitation suggests that, in the future, it might be beneficial to transfer these operations to a machine with greater computing power to ensure smoother and more efficient processing.
The Raspberry Pi is programmed to execute a Python script that enables the control of a connected 64x64 LED matrix. However, it should be noted that due to the utilisation of Python bindings, the performance is less than optimal which causes visible flickers caused by low Hz. The present script has been developed for interaction with the REST interface of a Spring application, with a view to both the display of data and the regulation of the brightness of the LED matrix. This objective is realised through the retrieval of the most recent light intensity data, which is then utilised to adjust the brightness. Furthermore, the script utilises the API of OpenWeatherMap to retrieve current weather information, thereby integrating external data into the display system.

With the help of a friend I managed to design a pcb using KiCad and ordered it from pcbway.
The PCB-Design is very basic and still has room for improvement.
This is an area where I had no previous experience in and I learned a lot from tinkering around with KiCad.
This is the PCB Prototype before soldering all the components to it. Unfortunately the assembly and final test has to wait until my studies are finished.
Throughout this project, I've gained a variety of skills and knowledge. This includes for example soldering and electronics, which were essential for building and troubleshooting hardware. I learned about the I2C protocol for device communication and improved my ability to read datasheets for component specifications. My Linux skills advanced, particularly in system configuration and hardware interaction. Additionally, I developed an understanding of hardware requirements, such as program storage size and computational power for running httpservers.
In the future, there are a number of potential enhancements that could be made to this project. A notable enhancement would be Over-the-Air (OTA) updates on the esp32. This feature facilitates seamless, wireless updates to the system, thereby ensuring that upgrades and maintenance can be effortlessly executed without the necessity for physical access to the device. Furthermore, the utilisation of the available C++ bindings for the LED matrix is another possibility.. This would enhance performance and efficiency by leveraging the capabilities of C++, which has been demonstrated to offer superior resource management and faster execution compared to Python.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | 470 Ohm | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P1.90mm_Vertical | R1 |
| 1 | DHT22 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J3 |
| 1 | ESP32 NodeMCU | RF_Module:ESP32-C3-DevKitM-1 | U2 |
| 1 | I2C Adapter | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J5 |
| 1 | I2C Output | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J6 |
| 1 | MQ135 | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Horizontal | J4 |
| 1 | MQ7 | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Horizontal | J2 |
| 1 | SW_Push_Dual | Button_Switch_THT:SW_PUSH_6mm | SW1 |
| 1 | TO-92 S9013 NPN | Connector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_Vertical | J7 |
| 1 | TSL2561 | Connector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_Vertical | J1 |
| 1 | WC1602A | Display:WC1602A | DS1 |
It measures 180 × 160.5 mm and has 2 copper layers, 1.6 mm thick.
11 parts, built around the DHT22 and TSL2561T. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the lal02/homesensor repository on GitHub, at the commit this page was made from: the board is homelab.kicad_pcb and its schematic homelab.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

nkitanov/iaq_board
IAQ Board is a DIY (Do-It-Yourself) device for measuring internal air quality

lab11/signpost
Exploring what happens when you put computers on sign posts.


PyCubed-Mini/avionics-solarpanels
Solar panel boards for the PyCubed-Mini PocketQube platform

ZeshuLiu/SX-70-Mk2
把板子上的U+ U- GND VCC焊到usb线上,连接电脑后可以当作树莓派Pico开发板进行操作,上传代码的参见这里(树莓派官网)。 \ 在将机身主控安装至机器内部之前需要将micropython固件及代码烧录至控制器中。后续可以通过机身控制器上的USB接口连接开发板并更新python代码。 将code根目录中的所有python文件上传至控制器(文件夹不需要),并且将gmain.py命名为…

devtank-ltd/kicad_osm_env01
This documentation describes Open Hardware and is Licensed under CERN-OHL-W v2.

dileepvr/sensorbrd
KiCAD PCB design files for an external sensor board for the payload on a nearspace weather balloon.

LuizFernandoOliveira/Medidor-de-Energy-Harvesting-Wireless
This work is licensed under a [Creative Commons Attribution-NonCommercial-NoDerivs 4.0 International License][cc-by-nc-nd].