mirror of
				https://github.com/NotAShelf/air-quality-monitor.git
				synced 2025-10-31 11:12:38 +00:00 
			
		
		
		
	update installation instructions
This commit is contained in:
		
					parent
					
						
							
								c266988396
							
						
					
				
			
			
				commit
				
					
						000b7b1c9a
					
				
			
		
					 1 changed files with 60 additions and 12 deletions
				
			
		
							
								
								
									
										72
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										72
									
								
								README.md
									
										
									
									
									
								
							|  | @ -1,30 +1,73 @@ | ||||||
| # Raspberry Pi Air Quality Monitor | # Raspberry Pi Air Quality Monitor | ||||||
|  | 
 | ||||||
| A simple air quality monitoring service for the Raspberry Pi. | A simple air quality monitoring service for the Raspberry Pi. | ||||||
| 
 | 
 | ||||||
| ## Installation | ## Installation | ||||||
| Clone the repository and run the following: | 
 | ||||||
|  | There are multiple ways to install this program. The main highlight of this fork is Nix & NixOS support, which would be the recommended way. | ||||||
|  | If you depend on Docker for running this program, refer to the original repository. | ||||||
|  | 
 | ||||||
|  | ### With Nix | ||||||
|  | 
 | ||||||
|  | If you are on non-NixOS, but still have Nix installed on your system; you can install the package with | ||||||
|  | 
 | ||||||
| ```bash | ```bash | ||||||
| make install | nix profile install github:notashelf/air-quality-monitor | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ## Running | After which you can use the installed package inside `screen` or with a Systemd service. | ||||||
| To run, use the run command: | 
 | ||||||
| ```bash | ### On NixOS | ||||||
| make run | 
 | ||||||
|  | This flake provides a NixOS module for automatically configuring the systemd service as well as the redis database for you. | ||||||
|  | A sample configuration would be as follows: | ||||||
|  | 
 | ||||||
|  | ```nix | ||||||
|  | # flake.nix | ||||||
|  | { | ||||||
|  |   inputs = { | ||||||
|  |     nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; | ||||||
|  |     pi-air-monitor.url = "github:notashelf/air-quality-monitor"; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   outputs = { self, nixpkgs, ... } @ inputs:  { | ||||||
|  |     nixosConfigurations."<yourHostname>" = nixpkgs.lib.nixosSystem { | ||||||
|  |       # ... | ||||||
|  |       services.pi-air-quality-monitor = { | ||||||
|  |         enable = true; | ||||||
|  |         openFirewall = true; # if you want your service to only serve locally, disable this - defaults to true | ||||||
|  | 
 | ||||||
|  |         settings = { | ||||||
|  |           port = 8081; # serve web application on port 8081 | ||||||
|  |           user = "pi-aqm"; | ||||||
|  |           group = "pi-aqm"; | ||||||
|  |           device = "/dev/ttyUSB0"; # this is the device port that corresponds to your sensor device | ||||||
|  | 
 | ||||||
|  |           redis.createLocally = true; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |       # ... | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ## Architecture | The above configuration will set up a systemd service and configure necessary environment variables for you without any additional input. | ||||||
| This project uses python, flask, docker-compose and redis to create a simple web server to display the latest historical values from the sensor. | Plug in your sensor, and observe. | ||||||
|  | 
 | ||||||
|  | For a more hands-on approach, you may also choose to add `pi-air-monitor` package exposed by this flake to your systemPackages and | ||||||
|  | use it manually, or write your own systemd service. | ||||||
| 
 | 
 | ||||||
| ## Example Data | ## Example Data | ||||||
|  | 
 | ||||||
| Some example data you can get from the sensor includes the following: | Some example data you can get from the sensor includes the following: | ||||||
| 
 | 
 | ||||||
| ```json | ```json | ||||||
| { | { | ||||||
|     "device_id": 13358, |   "device_id": 13358, | ||||||
|     "pm10": 10.8, |   "pm10": 10.8, | ||||||
|     "pm2.5": 4.8, |   "pm2.5": 4.8, | ||||||
|     "timestamp": "2021-06-16 22:12:13.887717" |   "timestamp": "2021-06-16 22:12:13.887717" | ||||||
| } | } | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
|  | @ -33,3 +76,8 @@ The sensor reads two particulate matter (PM) values. | ||||||
| PM10 is a measure of particles less than 10 micrometers, whereas PM 2.5 is a measurement of finer particles, less than 2.5 micrometers. | PM10 is a measure of particles less than 10 micrometers, whereas PM 2.5 is a measurement of finer particles, less than 2.5 micrometers. | ||||||
| 
 | 
 | ||||||
| Different particles are from different sources, and can be hazardous to different parts of the respiratory system. | Different particles are from different sources, and can be hazardous to different parts of the respiratory system. | ||||||
|  | 
 | ||||||
|  | ## Useful references | ||||||
|  | 
 | ||||||
|  | - [SDS011 datasheet](https://cdn-reichelt.de/documents/datenblatt/X200/SDS011-DATASHEET.pdf) | ||||||
|  | - [Air Quality Index meaning](https://www.airnow.gov/aqi/aqi-basics/) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue