Mobile Thermostat

From ESE205 Wiki
Jump to: navigation, search

Project Proposal


In the Mobile Thermostat project, I will build a mobile robot to gather environmental data from different points in a room. Traditional thermostats read temperature and humidity from a single point but by gathering data from many points, we can reach a better understanding of the environment over a larger area.


The Mobile Thermostat project aims to make improvements to the traditional thermostat..

  1. Measure temperature, humidity, and barometric pressure. The purpose of the project is to increase the amount of data gathered over that of a traditional thermostat. If the Mobile Thermostat measures these data from a single point multiple times a day, then the project will have matched the sensing functionality of a thermostat.
  2. Create a mobile robot. The next step after gathering data points is to ensure that the Mobile Thermostat measures data from multiple points in a room. A walking robot is preferred over a wheeled robot. The project will explore motion planning and simultaneous localization and mapping (SLAM), and use an inertial measurement unit to track relative position of the robot. The robot will collect environment data and move to a different location in the room periodically (e.g. every 3 hours). The robot should run between 12 and 24 hours without a recharge.
  3. Stream and display data. As the Mobile Thermostat receives data, it will wirelessly transmit the data to an external computer to log and display the data. Since the robot will collect data from different locations in the room, there are multiple ways to display the data. The average temperature of all the data points within a temporal window will be displayed. If the project successfully maps the floor space of the room, I could display the temperatures at each of the measured locations.


The Mobile Thermostat will use a 3D-printed Klann linkage system to enable locomotion. The CAD files and description can be found here. A Klann linkage uses a continuous rotation servo to spin a crank connected to two grounded rockers and two couplers, all connected by pivot joints. Similar to the famous Jansen linkage, the mechanism simulates the gait of a legged animal to function as a wheel replacement. Two sets of Klann linkages will sit on either side of a platform, supporting the electronics of the robot. A Sparkfun Photon RedBoard will be used to drive the servos powering the Klann linkage, as well as communicate with an external PC and collect position and environmental data. On board the Photon is an ARM Cortex M3 with built-in Wifi to connect the external PC. Two ultrasonic rangefinders facing opposite directions on top of a 180° servo will provide position data to the robot, along with an inertial measurement unit to provide direction data. Sparkfun provides an atmospheric sensor breakout board that uses the BME280 sensor to measure the atmospheric pressure, relative humidity, and temperature of the environment. All sensor data is connected to either an analog input or I2C on the Photon, which has a single I2C interface. Therefore, an I2C multiplexer is included in the budget.

The Photon will use no more than 800mA current under strenuous load and powering each of the peripheral boards (500mA expected). Each servo uses no more than 200mA during full drive. With three servos and the Photon under full load, the robot will consume no more than 1.4A during locomotive operation (1.1A expected). The robot will not run in locomotive operation for more than 15 minutes per data collection cycle (every 3 hours). While the robot rests, the servos will not run and the Photon will operate at no more than 80mA (30mA expected). For one 3 hour cycle with 15 minutes of locomotion included, the robot will require no more than 0.57Ahr for one cycle (0.3575Ahr expected). Thus, a 12V 3000mAh battery has been chosen to provide power to the robot for 5.3 3-hour cycles (8.4 3-hour cycles expected). A 5V, 2A regulator was chosen to keep the electronics safe.


Most of the hardware for the project has already been designed. The 3D printed frame for the Mobile Thermostat was provided, but may have some modifications. I’ll also have to mount the battery, ultrasonic sensors, and third servo to the frame. Some of this design will likely be 3D printed. I’ve never used any 3D CAD software, so modifying any components may be a challenge. The electrical components have been designed, so the only challenge with electronics will be interfacing between components (besides normal debugging and testing). This will not be trivial, since there are many different parts and a multiplexer will be used to differentiate between channels of data.

Most of the challenging portions of the project will be software-related. I’ve never worked with Wifi protocols before, so programming the robot, as well as the external PC to communicate will take some time. Then, keeping track of the Mobile Thermostat’s position inside a room will require critical thinking. I’ve been exposed to the simultaneous localization and mapping (SLAM) algorithm, so I want to implement parts or all of the algorithm. This will be a challenge since I’m not using high speed light detection and ranging (LiDAR). I’ll have to interpret the ultrasonic rangefinders’ data and coordinate them with the servo’s direction and account for error. It’s likely the map created by the algorithm will be noisy, but a detailed map of the room is not required. The inertial measurement unit (IMU) in on board will be able to give heading direction with the integrated magnetometer. Integrating the acceleration of motion on the robot will give the velocity of the robot and I can time the length travel. Using these parameters, I can find the relative position of the robot and track its movement. However, error will accumulate as the robot travels. Since the robot will move only every three hours, the position of the robot may be reset at for each period of locomotion.


Item Description Source URL Price/unit Quantity Shipping/Tax Total
Battery 12V 3A Link $16.21 1 $0 $16.21
Continuous Rotation Servo Parallax brand, for locomotion Link $13.99 2 $0 $27.98
Standard Servo Parallax brand, 180 degree rotation, for mapping Link $12.99 1 $0 $12.99
Machine Screws For robot frame, pack of 100 Link $9.28 1 $0 $9.28
Locknuts For robot frame, pack of 100 Link $5.10 1 $0 $5.10
SparkFun Photon RedBoard On-board microcontroller with Wifi Link $39.95 1 $0 $39.95
Atmospheric Sensor To gather environmental data Link $19.95 1 $0 $19.95
Ultrasonic Rangefinder To gather room and position data Link $25.95 2 $0 $51.90
SparkFun inertial measurement unit To measure heading direction and position Link $14.95 1 $0 $14.95
I2C multiplexer To switch between sensor data channels Link $6.95 1 $0 $6.95
Voltage regulator 5V 2A regulator between the battery and the Photon board and servos Link $0.81 2 $0 $1.62
Heat sink To dissipate heat from the voltage regulator Link $0.21 1 $0 $0.21
Barrel jack (female) To interface between the battery and the voltage regulator Link $0.95 1 $0 $0.95
Barrel jack (male) To interface between the voltage regulator and the Photon board Link $0.95 1 $0 $0.95
Break away headers Male straight headers Link $1.50 3 $0 $4.50
Solderable breadboard To solder the voltage regulator Link $4.95 1 $0 $4.95
Heat shrink Purchase 1 set for all robots Link $7.95 1 $0 $7.95
22 AWG wire Purchase 1 set for all robots Link $16.95 1 $0 $16.95
Sparkfun shipping $0.00 $0.00
Digikey shipping $5.00 $5.00
Parallax shipping $8.51 $8.51
Adafruit shipping $8.72 $8.72
McMaster shipping $9.11 $9.11
Single Robot Budget
4 Robots Budget


Mobile Thermostat Timeline.pdf

Gantt Chart

Mobile Thermostat Gantt.pdf