What It Is
Morning routines can be rushed, often times leading to inappropriate clothing choices. The ability to make informed attire decisions is critical for the day's success. Watching the morning news or pulling up a weather app slows the process of getting ready. The Temperature Mirror allows the user to quickly make weather based decisions without routine interruption.
The Temperature Mirror uses a Particle Photon as a weather station to collect temperature, humidity, and light data. The Photon publishes this data to the cloud using unique variable names. A second Photon subscribes to the first Photon’s event. The weather data is displayed on an OLED and mounted behind a one way mirror.
Weather Station Setup
The following items are required for the weather station setup:
- One weatherproof enclosure
- One breadboard or prototype board
- Three resistors (arbitrary values)
- One DHT11 breakout board (or make your own circuit)
- One LiPo battery cell (hacked from a solar LED light)
- One solar cell (hacked from a solar LED light)
The wiring is fairly straight forward:
- Two resistors are used as a voltage divider to detect battery voltage at an analog pin. Voltage is fed through the voltage divider since it is over 3.3 V at full charge. This allows the Photon to detect voltage half that of the battery's full charge if set up with matching resistors, and programmatically calibrate it to the true voltage. Note that the ground for the voltage divider exists on a digital pin otherwise the battery would continue to drain to ground through the resistors.
- A photocell is placed in a voltage divider to detect ambient light levels. Light levels are used for error states when the battery fails to charge. In the event it is dark or cloudy, and the battery voltage falls below optimal levels, the Photon will enter deep sleep mode for a longer period than for the standard loop operation. This will provide the solar cell the opportunity to catch back up when light is available.
- A DHT11 is wired to two digital pins and ground. One digital pin provides power, and the other collects temperature and humidity data. The Photon ground in is used as writing a digital pin as low for ground resulted in too many losses for reliable operation of the DHT11 breakout board.
- The solar panel and battery are wired to the positive and negative side of one BUS and provide power to the Photon through Vin and ground pins.
Some issues that were encountered along with way was a poor solder connection at the battery cell. The battery was opened up, and both positive and negative multi-strand leads re-soldered and replaced with solid core wires. The length was extended and looped back along the side of the battery before taping in place with Gorilla tape. This will reduce stress on the solder joints in the even maintenance needs to be performed, or something needs to be moved.
Broken Negative Battery Lead
Longer Solid Core Battery Leads
Weather Station Internal Closeup
The following items are required for the mirror setup:
- One 12” by 12” one way mirror
- One 12” by 12” shadow box
- Four rainbow jumper wires
The shadow box’s glass pane is removed and replaced with the one way mirror. The breadboard is then mounted onto the back of the mirror. Next, the Photon is mounted on the breadboard and connected to the OLED as follows: Vin to Vcc, GND to GND, D0 to SDA, and D1 to SCL. The OLED is secured inside of the shadow box with tape and the shadow box is closed up.
Issues encountered along with way with the OLED display involved the Particle libraries. Including the Adafruit Graphics and SSD1306 libraries through Particle IDE resulted in a directory error. We simply copied the libraries in their entirety and pasted them directly into the project code.
OLED Libraries Copied Into the Project
Breadboard Mounted to Shadow Box
Data is plotted in ThingSpeak. Currently no MATLAB Analysis is implemented on this channel, and the variables are simply monitored over time. JSON integration is used, following the guide by Hans and Robert Mawrey.
Here is the ThingSpeak Channel.