Introduction: How to Build a CubeSat With Arduino and DHT11 Humidity and Temperature Sensor

The full steps and instructions on how to make this DIY popsicle stick CubeSat, using a coded Arduino to be able to collect humidity and temperature data.

Step 1: Project Constraints

The CubeSat needed to be built to orbit our simulated Mars and collect data. The CubeSat was required to be built with dimensions of 10x10x10 and weigh no more than 1.3 kg. Before the official flight the CubeSat needed to pass a shake test, flight test, weight test, and size test. The sensors also need to be programmed to collect data and transfer it onto an SD card.


Step 2: Getting Started

We started by creating a plan on what to build. The CubeSat would need to be 10x10x10 cm and be able to hold a programmed arduino and be sent into “orbit” to collect data on the temperature and humidity of the atmosphere. It also needed to have a barrier around it that kept the arduino inside, yet gave it access to analyze the air. We sketch our ideas and researched arduino projects to get a good idea of how to complete this task. We then collected the materials: wood glue, popsicle sticks, masking tape, pliers, arduino, breadboard, wiring, SD card, and a computer.


Step 3: Troubleshooting

We had to switch the design of the door to be on top so the Arduino didn’t fall out from one of the sides, so we could set in the arduino better, and so we could activate the arduino easier. We also scrapped a door design in which the battery was supposed to be fit in, as we found it to be easier to place the entire Arduino in with the battery at the same time.


Step 4: Coding the Arduino

Follow the Fritzing diagram above to wire the arduino.


Arduino Uno R3 + Ethernet Shield W5100 -

4 Pin DHT11 Sensor for humidity and temperature -

Wires -

USB cable for connection to computer -

Breadboard -

A 9V battery is also needed to power arduino when not connected to computer

Open the Arduino IDE software and paste this code: it should instantly start working-

SD card datalogger

This example shows how to log data from three analog sensors to an SD card using the SD library.

The circuit: * analog sensors on analog ins 0, 1, and 2 * SD card attached to SPI bus as follows: ** MOSI - pin 11 ** MISO - pin 12 ** CLK - pin 13 ** CS - pin 4

created 24 Nov 2010 modified 9 Apr 2012 by Tom Igoe

This example code is in the public domain.


#include #include #include

dht DHT;

#define DHT11_PIN A0

const int chipSelect = 4;

void setup() { // Open serial communications and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only }

Serial.print("Initializing SD card...");

// see if the card is present and can be initialized: if (!SD.begin(chipSelect)) { Serial.println("Card failed, or not present"); // don't do anything more: return; } Serial.println("card initialized."); }

void loop() { // make a string for assembling the data to log: String dataString = "";

// read three sensors and append to the string: for (int analogPin = 0; analogPin < 1; analogPin++) { int chk = DHT.read11(DHT11_PIN); dataString += String(chk); if (analogPin < 2) { dataString += ","; } }

// open the file. note that only one file can be open at a time, // so you have to close this one before opening another. File dataFile ="datalog.txt", FILE_WRITE);

// if the file is available, write to it: if (dataFile) { dataFile.println(DHT.temperature); dataFile.println(DHT.humidity); dataFile.close(); // print to the serial port too: Serial.print("Temperature = "); Serial.println(DHT.temperature); Serial.print("Humidity = "); Serial.println(DHT.humidity); delay(500); } // if the file isn't open, pop up an error: else { Serial.println("error opening datalog.txt"); } }



Step 5: Building the Cubesat: Step 1

First we drew out a rough sketch of what our CubeSat design would look like. Using

Popsicle sticks, we began making a 10x10x10 cm square. We added platforms to the stilts in order to help the top door fit on better.


Step 6: Building: Step 2

To build all the sides of the cube we put the popsicle sticks in an “X” shape with a stick going across the middle horizontally. When we did this, the arduino could have access to measuring the air and have a decent shield that prevents it from falling out.

We left one side open so we could put our arduino and breadboard inside the cubesat.


Step 7: Building: Step 3

The breadboard will be placed on the bottom of the cubesat inside. Then we built a little shelf, still out of popsicle sticks, for the arduino to be placed on.

We used 2 popsicle sticks, cut them to be smaller, then used them as pillars to hold up the top of the shelf. We then glued the shelf inside of the cubesat, at the bottom. After gluing the pieces together, we added a second coating of glue to bind the pieces together even further.


Step 8: Building: Step 4

We then glued together 4 popsicle sticks to a piece of tape, spread out. This allows air to enter.

We then used this as a sort of hatch to be able to open up and close to see the inside of the cubesat. After the glue was dried, we taped it down on only one side of the hatch to the cubesat in order to be able to open it and close it.

We then ended up tying strings to both sides of the top of the CubeSat, but that is not a necessary step to achieve the full effect of this CubeSat. The string was used to test flight, and is only optional.


Step 9: Building: Final Product

This is the finished product of the cubesat, with the hatch, shelf inside of it, and the walls shaped as “X”s and the arduino.


Step 10: Data

Our results from this experiment were as follows:

Baseline (Temp, Humidity) (22, 42)

Maximum Humidity(%)- 68

Maximum Temperature(C)- 48

Conclusion: While exposed to elements of steam and heat, the DHT11 sensor collected data that showed drastic changes in the climate of "Mars".

v= 174.62 m/s

a= 32.27 m/s/s

Fc= 101.38

Ca= 548.58