Abstract
What started as a simple hobby project has proven flexible & stable enough to continually enable the addition of many bits & bobs,
accidentally creating an end-to-end platform of sorts. The aim here is to capture all those bits in one place & discuss them more thoroughly.
The primary "data bus" is redis pub/sub while implementation languages vary depending on the platform & requirements.
Both Raspberry Pi and Arduino devices feature significantly, and in the fully-deployed system under discussion rely on
the Bosch BME280 for T/H/P sensing & the
Sensirion SPS30 for particulate matter (air quality) sensing.
The Bits & Bobs
(arranged roughly in order of where each appears in the pipeline, from sources to sinks; maturity varies widely)
RPJiOS
A sensor management & data collection/emission suite for Raspberry Pi devices written in Python 2.7 that acts as the primary data source for the platform. The namesake of the system and this site, it is a portmanteau of my initials (RPJ), "RPI" and "OS".spheremon
Azure Sphere-based pipeline monitoring devices that inspired the creation of & consume YARL (below).YARL
Yet Another Redis Library, this one in POSIX-compliant C.ZeroWatch
Arduino live data display devices that inspired the creation of & consume Arduino-Redis (below).Arduino-Redis
A Redis client library for Arduino devices written in C++11.rhp
A rudimentary Redis-to-HTTP proxy, written in Go, that enables the Weather Dashboard (below).weather-dashboard
A live dashboard of weather & air quality data built with vanilla Javascript/HTML/CSS (and a bit of help from Plotly). Features user-configurable plots with both historic and live data.Air-quality index dashboard
Enabled by ThinkSpeak and the powerful MatLab integration within, this dashboard features a live air-quality index value based on data from the pipeline, as defined by the US EPA. The MatLab source is available here.And now... for something a bit different
("games" & gamedev-related things)
fauna
A game (of sorts) that became an unintended but welcome respite during the COVID-19 quarantine(s). Not yet compelete & and unlikely to ever be, it has been a thouroughly enjoyable endeavour nonetheless.Infinite Fauna
The video development log for the next iteration of Fauna: to be the infinite-world "massively"-multiplayer game I always intended the first version to be. Already playable and has been by family members & friends, but development is progressing at a truly glacial pace. Expected public release: sometime in the next decade.2d sparse bitmaps library
Created for Fauna, this library for node.js is published in the hope that may help other developers who face similar challenges.TileMapTool
Created to assit in development of Planned Community, TileMapTool is a single-file, no-dependency, offline-capable tool for exploring, annotating & exporting tilemaps (a.k.a spritesheets). Source is available here.Planned Community
An attempt to distill the city simulation game down to its essence, in a single-file browser-based package. Still being actively developed. Source is available here.Grab Bag
(projects I hope are
useful, but categorically
have no home)
useful, but categorically
have no home)