This blog is an assignment submitted to the department of Creative Computing at Bath Spa University in partial fulfilment of the requirements for the module of Physical ComputingMay 2019
Don't wanna be here? Send us removal request.
Text
Servos
What Are Servos?
Servos which are short for servomechanism are electric devices that rotate or push. Servos are created from a motor and a potentiometer which connect to the output shaft and a control board. Their angles can be changed to serve different purposes.
What Are They Used For?
Servos are have many different functionalities and are very flexible regarding their usage. Their most popular uses are in electronic cars, planes boats etc. similar to an RC car. They can also be used to provide robots the movement they require. Their sizes vary and can be used for small projects such as rc cars or even industrially depending on their size
Our Class Experiments
Components We Used
Arduino Leonardo
Breadboard
2 LEDs
Potentiometer
Servo
Wires
Using The Servo
Servos are great when working with Arduino since they can be used in so many different ways and can fit in projects regardless of the project scales.
We had the opportunity to experiment using Servos in class and we were given the components listed above to help our experimenting.
Hardware Setup
We began the experiment by creating a circuit using the 5 volt pins and ground pins of the Arduino and connected two of the wires of the servo to the ground and 5 volt pins respectively and the last wire to digital pin 2 so we are able to control the servo. In a similar fashion, we connected the potentiometer and LEDS to pins 3,4 and 5 and also made sure that electricity is flowing through as well as the ground wires grounding the units.



Software Setup
For the software, we have tried many different approaches but we have been failing most of the time. We included the servo library and created a servo variable found in the library. We also created 3 more variables 2 for the LEDs and 1 named degree so we can create a spinning motion on the servo using a for loop later on.
In the setup section, we have set the pins for the two LED variables as output pins and declared that our servo is connected to pin 2 using the “.attach” command found in the library.
Within our loop, we created a for loop which will uses the variable “degrees” as a number which is incremented by 1 every time the loop is ran. The limitation we added was when that variable was lower or equal to 180 which represent the angle the servo can turn. We also sent that value to the servo using the servo.write command from the library.
We copied the for loop once again but this time set the limitation to more than or equal to 0 and the variable is decremented by 1 rather than being incremented so that the servo can rotate the other way.
As an added functionality we created an if statement which would turn the two LEDs on individually depending if the value of the variable was less than or more than 100. To do this we added a digital write command which contained the variable for each light followed by either “HIGH” or “LOW.
However we were not able to test this functionality yet.
The Code
#include <Servo.h>
Servo servo; int light1 = 3; int light2 = 4; int degree = 0;
void setup() { // put your setup code here, to run once: pinMode(light, OUTPUT); pinMode(light2, OUTPUT); myservo.attach(2); }
void loop() { // put your main code here, to run repeatedly: for(degree = 0; degree<=180; degree +=1;){ servo.write(degree); delay(500); } for (degree = 180; degree >=0; degree -=1;){ servo.write(degree); delay(500); } if (Servo.degree>100){ digitalWrite(light1, HIGH); digitalWrite(light2, LOW); }else if (Servo.degree<100){ digitalWrite(light1, LOW); digitalWrite(light2, HIGH); } }
References
http://www.mertarduino.com/servo-motor-control-with-potentiometer/2018/11/19/
https://www.jameco.com/Jameco/content/servos.html
0 notes
Text
Sound Sensors
What Are Sound Sensors
Before i explain the experiment conducted, i would like to define what sound sensors are.
To keep it simple, sound sensors are hardware devices usually made up mainly of a type of microphone which allows them to detect sound.
How Are Sound Sensors Used
As with any sensor, sound sensors can use the sound data they are receiving to manipulate other components of a project such as LEDs, speakers, LCD screens etc.
Sound sensors can also be used to show data about certain sounds to the user such as decibels (dB) and frequencies if the sensors are advanced enough.
Our Class Experiments
Components We Used
Sound Sensor
LED


Using The Sound Sensor
Sound sensors are one of the most creative ways to manipulate data and people are always fascinated when technology is combined with voice input.
Today we had the opportunity to use sound sensors during our lecture and we had some time to use the sensors in order to manipulate other components.
The component i chose to control using the sound sensor was an LED.
To do this, we simply connected our sound sensor to the Arduino and defined it as an input device coming from the specified pin
We have repeated this step using the LED only this time defining it as an output device as we want to display data from the LED rather than capture data.
Our next step was to implement a function in a loop which would turn on the LED if any sound is received through the sound sensor.
To do this we created a variable which will be used to show the status of the sensor and let us know if any sound has been received. We used the number 1 to show that sound has been received in our if statement. If sound has been received then the LED will turn on. Alternatively if no sound has been received the the LED will turn off.
The Complete Code
void setup() { // put your setup code here, to run once: pinMode(soundSensor, INPUT); pinMode(LED, OUTPUT) }
void loop() { // put your main code here, to run repeatedly: int statusSensor = digitalRead (soundSensor);
if(statusSensor == 1){ digitalWrite(LED, HIGH); } else { digitalWrite(LED,LOW); } }
Hardware
To complete the circuit we have connected the sound sensor using 3 pins composed of the following:
5 volt pin
ground pin
The digital pin we have used to receive the data from the sound sensor
The sound Sensor
To connect the LED we used the following
The LED
The ground cable
The 5 volt cable
A Resistor
The digital pin we have used to output data to the LED

References
https://create.arduino.cc/projecthub/iotboys/control-led-by-clap-using-arduino-and-sound-sensor-e31809
https://www.instructables.com/id/Arduino-Sound-Sensor-with-LED/
0 notes
Text
The Final Project
The Aim
The aim of this project is to connect the LEDs, the temperature sensor and the heat mat in the same circuit and create a code that can utilise the functionality of every individual component working together.
The first aim is to use 3 different LEDs (2 yellow and 1 red) which would turn on and off individually depending on the temperature
The second aim is to implement the unsoldered heat mat in the circuit without bottlenecking the current flow
The third aim is to turn on and off the heat mat depending on the temperature to make sure that the reptile enclosure is starting to heat up if the temperature is below the optimal point. I would also like to turn off the heat mat if the temperature is too high for the reptiles that way they are not overheated.
Components Used
This experiment consisted of the most components so far and while there are alternatives to these components, any component used of the same type will be able to work as long as it is implemented in the code correctly.
Arduino Leonardo
DHT11 Temperature and Humidity Sensor
3 LEDs
4 Resistors
A Heat Mat
A Mosfet
A Diode
LCD screen
Hardware Setup
To connect all the components together, we first have to supply the breadboard with an electrical current (5 volt pin from the Arduino) and also ground it to make a complete circuit.
The second step is to add the DHT11 sensor to the circuit and also connect it to an analog pin which we once again used the A0 pin for. To make things easier, i connected the DHT11 directly to the Arduino’s 5 volt, ground and A0 pins rather than having it run inside the circuit to see if it still works.

I then added 3 LEDS to the breadboard circuit by giving them electricity through the 5volt circuit we have created and grounding them once again through the circuit. Last but not least, the LEDs would have to be manipulated in the code so i connected them to the 9,10 and 11 digital pins respectively. A resistor for each LED was also used to prevent them from being burned

Lastly, I connected the unsoldered heat mat to the Mosfet’s ground pin via male to female wires and the 5 volt wire of the heat mat directly to the bread board circuit. The other two pins of the Mosfet were connected to a grounding spot in the circuit and a space on the breadboard which connected directly to pin 2 on the Arduino.


Once i tested that everything was working, i also implemented the LCD screen to the circuit and also included the soldered heat mat

The breadboard circuit was enough to provide the 5volt power the LCD required and i also grounded the LCD through the circuit. Lastly, i connected the SDA and SCL pins from the LCD to the SDA and SCL pins on the Arduino.
Software Setup
To add functionality to the experiment we had to first use the following libraries:
“LiquidCrystal_I2C” to implement functions regarding the LCD
“Wire” to communicate with the I2C attached to the LCD
“dht” to implement functions regarding the temperature sensor
We also defined the temperature sensor to the analog pin we have it connected to using the “#define”
Afterwards, i created the variables which i will be using these were composed of the 3 integer variables i have used for the LEDs set to the digital pin number they are connected to, the fetPin variable which is equal to the pin number the heat mat/mosfet is connected to, a variable named dht to help us manipulate the temperature and a liquid crystal library variable named “lcd” to manipulate the LCD screen later on.
Moving on to the setup, i set the LCDs’ screen specifications using the lcd.begin() function from the library and also used the wire.begin() function to be able to use the I2C interface. I also configured the 3 individual LEDs as output devices by entering the pin they are connected to using the variables created earlier. Similarly, i configured the heat mat pin as an output device using the variable created to enter the pin it is connected to. In the final 3 lines of the setup, i initiated the LCD screen and turned on its’ backlight using the functions provided by the library followed by a 1 second delay
Last but not least, in the loop section, i first set up the functionality of the temperature sensor and the LCD by first reading the temperature and humidity data using the DHT11 read function from the library, setting the cursor on the first character of the first and second row and printing messages for the humidity and temperature along with their correct units of measurement and displaying the data received from the DHT11 sensor to the LCD screen.
Once that was working and displaying the temperature data on the LCD screen, i created an if statement, an “else if” statement and an “else” statement which with the conditions that the current temperature was either higher than 30 degrees celsius, lower than 14 degrees celsius or between 14 and 30. Depending on the temperature the two yellow lights would be on and the red light would be off, all the lights would be on or none of the lights would be on. To do this i used the digital write function and added the name of the variable for each LED along with the state i would like the to be in depending on the conditions of the statements.
To turn on the heat mat at different temperatures i used the “analogWrite” function instead since we are using an analog connection, used the variable i created which holds the pin number the MOSFET is connected to and set a different value depending on if i wanted the heat mat to be off, at full power or around half power.
The Final Product
I have also included a video of me explaining the functionality of the final product. Since the potentiometer was connected directly to the LCD screen, no code was used to adjust the brightness of the display.
youtube
The Code
#include <LiquidCrystal_I2C.h> #include <Wire.h> #include "dht.h" #define dht_apin A0
int yellow_light_pin = 11; int red_light_pin = 10; int yello_light2_pin = 9; int fetPin = 3; dht DHT; LiquidCrystal_I2C lcd(0x27,16,2); void setup(){ lcd.begin(16,2); Wire.begin(); pinMode(red_light_pin, OUTPUT); pinMode(yellow_light_pin, OUTPUT); pinMode(yellow_light2_pin, OUTPUT); pinMode(fetPin , OUTPUT ); lcd.init(); lcd.backlight(); delay(1000);
}//end "setup()"
void loop(){ //Start of Program
DHT.read11(dht_apin); lcd.setCursor(0,0); lcd.print("Humid. = "); lcd.print(DHT.humidity); lcd.print("%"); lcd.setCursor(0,1); lcd.print("Temp. = "); lcd.print(DHT.temperature); lcd.print("C");
if(DHT.temperature>30){ analogWrite(fetPin,0); //lcd.println("The heat mat is off"); digitalWrite (yellow_light2_pin, LOW); digitalWrite (yellow_light_pin, LOW); digitalWrite (red_light_pin, LOW); }else if (DHT.temperature<14){ digitalWrite (red_light_pin, HIGH); digitalWrite (yellow_light_pin, HIGH); digitalWrite (yellow_light2_pin, HIGH); analogWrite(fetPin,255); //lcd.println("The heat mat is on at 100% power"); }else{ digitalWrite (yellow_light_pin, HIGH); digitalWrite (red_light_pin, LOW); digitalWrite (yellow_light2_pin, HIGH); analogWrite(fetPin,140); //lcd.println("The heat mat is on at 66% power");
} delay(15000);
}// end loop()
References
https://astronomersanonymous.wordpress.com/2016/04/02/controlling-heating-pads-with-arduino-uno/
https://learn.sparkfun.com/tutorials/heating-pad-hand-warmer-blanket/all
0 notes
Text
Displaying Data On the LCD Screen
The Aim
The aim of this experiment is to push the data received from the temperature and humidity sensors to the LCD screen.
Now that the LCD screen is working and we managed to display a hello message, it is time to implement our temperature sensors and display their data on the LCD instead of the serial monitor.
This is important because the reptile owners would be able to view temperature and humidity data regarding their reptiles directly from the LCD which they can attach to the terrarium.
To do this we combined the electrical circuit we created using the LCD screen with the code we created for the temperature sensors, making some changes to implement both components.
Components used
Lcd screen using an I2C interface
DHT11 temperature and humidity sensor
Wires
Arduino Leonardo
Hardware setup
To start things off, we kept our setup for the LCD screen as well as the electrical circuit since the LCD is already running but we implemented the temperature monitor by connecting it to the ground unit as well as the 5v unit.
We made sure that the ground and 5 volt wires are providing current to every component on the breadboard.

Once again, we are only using the 5volt and ground ports as well as the A0 pin to connect the temperature sensor, the SDA and SDL pins to connect the LCD screen


Software Setup
The code will be receiving the most changes in this experiment as we have to implement both the LCD and the temperature sensor.
The first step is to include the libraries for both the DHT11 and the LCD screen as well as initialise and define both components using the following codes.
The LCD screen uses the “LiquidCrystal_I2C” library as well as the “Wire” library for the I2C functionality
The temperature sensor uses the “dht” library and also has a defined pin (in this case the pin we used is named “A0″)
We have created a variable for the LCD screen which allows us to use 16 characters and 2 rows
Similarly, a variable for the dht was created
The Setup
We started off by turning on the lcd using the lcd.begin code and set the amount of characters and columns
We initialised and turned on the backlight of the lcd using the “lcd.backlight()” and “lcd.init()” functions provided by the library
Lastly, we added a 1 second delay at the end of the setup
The Loop
Next we want to create a loop so that the temperature and humidity is constantly shown on the screen.
Since the particular screen we are using only allows for 16 characters per line, we need to make sure that the humidity and temperature can fit on the screen.
The main function of the loop and the first action that should be taken should be the sensor reading the temperature by using the DHT.read11() command before displaying any text on the LCD.
Next, we want to start writing on the LCD by pointing the cursor on the first row and first column of the screen and typing in “humidity”/”temperature” accordingly followed by the reading of the DHT sensor for either the temperature or humidity.
We also want to make sure that we print the units of the reading after displaying the reading on the LCD since the DHT sensor will only show numerals.
We will repeat these steps for the temperature/humidity depending on which one we would like to show next with the only difference being that the units should change and the cursor should point on the first column of the second row.
We could also add an optional delay and some code to clear the LCD before showing the temperature again.
If everything is setup correctly, we should be able to view the temperature and humidity on the LCD screen in the first and second line

If the LCD screen is displaying unrecognised symbols, you can shorten the humidity and temperature names to “humid.” and “temp.” to make sure that we are not surpassing the 16 character limit.
What could be changed
Before ending this blog post i would like to discuss some limitations i have found while using the LCD screen and the DHT11 sensor.
One of the major disadvantages of using an Arduino Leonardo is it’s short memory. This has prevented me from using multiple sensors to capture different data such as sound and data about the time.
To further improve the project i could add a timer to the program and a minimum temperature alarm. One of the alarms would beep if the temperature was too low or too high for a certain reptile and the other alarm could manipulate the temperature based on a day and night cycle.
To do this i would also need a heat mat and an “alarm receiver”.
References
https://create.arduino.cc/projecthub/ThothLoki/portable-arduino-temp-humidity-sensor-with-lcd-a750f4
https://create.arduino.cc/projecthub/onatto22/dht11-humidity-temperature-sensor-with-16x2-lcd-display-1046e0
0 notes
Text
Experimenting with LCD screen
What Is An LCD Screen?
LCD stands for liquid crystal display, it is the main technology used to display information to users on a laptop because they allow displays to be made thinner
How Are LCD Screens Used?
LCDs can be used to display information to users and in the Arduino LCDS are support few characters but can also be used to clear current information being displayed and display new information or data
The Aim
Our temperature sensors are working and we can view the humidity and temperature in the serial monitor. However, customers and breeders will not be able to view them unless their computer is turned on 24/7 which is why we will be using an LCD screen to display the information.
Components Used
LCD with I2C interface (you can use a normal lcd but that would mean you have to connect all 16 pins on the screen to the Arduino using a header)
Arduino Leonardo
Wires
Hardware setup
The first step is to create an electrical circuit using the 5volts from the Arduino Leonardo and the ground unit and connect the to the breadboard.
Now that the power source is setup, it is time to connect the LCD screen via the i2c unit attached to it or by soldering a header pin on the 16 jacks of the LCD screen.
To connect the LCD screen, we connected the GND and VCC of the LCD to the ground and 5 volt wires respectively to give the LCD power
We then connected the SDA and SCl wires of the LCD to the SDA and SCL ports of the Arduino.
You should see your message being displayed on the LCD if everything was connected properly
Software Setup
Now that the LCD is connected, it is time to code it.
The first step is to download and include the LiquidCrystal_I2C library which enables us to use certain commands to manipulate the LCD as seen here: https://buildmedia.readthedocs.org/media/pdf/arduinoliquidcrystal/latest/arduinoliquidcrystal.pdf
We could use an example to test out the LCD but we will just use the following commands to initialise and print a “hello” message
After including the library in our code, we initialised the lcd screen using the function found in the library “lcd.init()”
We then turned on the backlight using the function lcd.backlight()
Finally we printed a hello message using the lcd.print(”hello”) function
As seen in later experiments, this code may not work and you might have to set the columns and rows of the LCD as well as set the cursor at a specified point to print a message. To do this we used the lcd.begin() function and set the characters of the lcd to 16 and the rows on the screen to 2.
We then set the cursor in our loop using the lcd.setCursor function from the library and added 0,0 as the coordinates which stand for the 1st character of the first row.
The Code
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup(){
lcd.init();
lcd.begin();
lcd.backlight();
}
void loop(){
lcd.setCursor(0,0);
lcd.print(”Hello”);
}
What Could Be Improved, What Went Wrong
Understanding how LCDs work has been very difficult for me as i was using an LCD without an I2C interface at the start of the experiment. I tried soldering a header pin to the LCD however i could not get the lcd to turn on.
Another issue was finding the correct library as the first 2 i have tried were not compatible with the lcd i was using and borrowed an lcd screen with an I2C interface from a friend.
I could improve the LCD screen by adding more components to it and have it switch between screens if a condition is met such as time or using a sound sensor. A great a simple idea would be using a sound sensor and clapping to turn on the LCD. However, a larger investment would have to be made regarding the components
References
https://www.youtube.com/watch?v=xVC0X_PE_XE
0 notes
Text
Experimenting with temperature/humidity sensors
What Are Temperature And Humidity Sensors?
Temperature and humidity sensors are types of sensors which are used to retrieve data regarding the humidity and temperature in certain environments or parts of an enclosure.
How Are Temperature And Humidity Sensors Used?
Temperature and humidity sensors are mainly used in combination with Arduino devices if users want to create conditional statements using temperature and humidity data. This works well when wanting to turn a component off or off if the temperature or humidity reach a certain point
Arrival of parts
The parts have arrived and i am ready to begin experimenting!
Multiple temperature sensors could be used for experimenting rather than just one

The package with the LEDS included both RGB LEDS and single colour LEDS

Unfortunately i did not get a larger breadboard or an Arduino with more memory but hopefully that will not be a problem
Connecting the Temperature and Humidity Sensor to the Arduino
The Aim
My first experiment using our components is to try and connect a sensor to the Arduino board and have it display the temperature and humidity in the serial monitor.
This is one of the most important steps as the sensor can then be manipulated to display data based on different conditions or even multiple types of data.
The plan is to gather the data about the temperature as well as manipulate that data using an if statement. This will help me later on when i have to turn on the heating pad based on the data gathered by the sensors. I also want to display the data and the time on the LCD screen rather than the serial monitor. This would mean that users would also be able to view temperature data.
Hardware Setup
The first step was to connect the Arduino board to the computer and connect the temperature sensor to the Arduino. I could do this either by connecting the temperature sensor to the breadboard or directly to the Arduino. I decided to connect it to the breadboard so i could add the LCD screen later more easily.

Note:The sensors can also be connected individually without the use of a breadboard but i decided to connect one directly to the breadboard for the purpose of this experiment
To do this, i connected the 3 wires on the temperature sensor (+, out, -) to the following:
1. The negative wire of the sensor to the ground pin on the Arduino to ground the current of our circuit
2. The “out” wire was connected to the A0 (analog 0) pin since we are using an analog connection rather than a digital
3. The positive wire to the 5 volts to give the temperature sensor enough power to run
The connections should look similar to the following images:

Software Setup
The next step was to code the sensor to actually send temperature data.
For this, i used the “dht” library and defined the analog 0 pin for the DHT since that is the pin i connected the sensor to.
I then initialised the serial monitor using the “serial.begin()” code and set it to 9600bitss. I also added a delay 1.5s later on to let the system boot since i have ran into issues while working.
To create the loop, i used the “.read11()” function provided by the library to read temperature and humidity data at the start of the loop.
I then printed the text “humidity:” followed by printing the humidity using the “.humidity” variable from the library and then printed the symbol “%” to indicate the percentage of the humidity level.
The same steps were followed for the temperature, however, i replaced the “humidity” text with “temperature” and the units with celsius to indicate the units of the temperature.
The code “DHT.temperature” was also used to show the temperature rather than the humidity.
Lastly, the sensor was spamming the data so i delayed it for 5 seconds before showing any data again.
The result i had was the temperature and the humidity being displayed every 5 seconds in the serial monitor

Lastly, i included a simple if statement which would print “it is hot” if the temperature was over 20 degrees celsius and print “it is cold” if the temperature was less than 20 degrees celsius.
I used the “dht.temperature” code from the library as my conditional statement and used the “>” sign to indicate that the temperature should be higher than 20 degrees to display the message.
The same step was followed with a different symbol to print the “it is cold” message.

The Code
#include "dht.h" #define dht_apin A0
dht DHT; void setup() {
Serial.begin(9600); delay(500); Serial.println("DHT11 Humidity & Temperature Sensor \n\n"); delay(1000);
}
void loop() {
DHT.read11(dht_apin);
Serial.print ("Current Humidity = "); Serial.print (DHT.humidity); Serial.print ("%"); Serial.println ("Temperature = "); Serial.print (DHT.temperature); Serial.print ("C");
delay(5000);
What Could Be Improved and What Went Wrong
To wrap up this blog post i would like to discuss a few things i would have done differently or have improved on.
Firstly i would have liked to have used more than one sensor and have created more if statements. While the aim has been completed, my knowledge of Arduino is still minimal and i have ran into many issues because of my lack of knowledge.
An issue i ran into was installing the correct library as i could not get the sensor to work. I had to install another library i have found online which was made specifically for DHT11 sensors. My coding skills for Arduino were minimal and my lack of knowledge resulted in me wasting 3 hours trying to create a correct circuit and trying to find out how to manipulate the data.
I could improve on this by defining more digital pins to add more sensors and manipulate each pin individually to show the lowest or highest temperature for each sensor.
References
http://www.circuitbasics.com/how-to-set-up-the-dht11-humidity-sensor-on-an-arduino/
https://howtomechatronics.com/tutorials/arduino/dht11-dht22-sensors-temperature-and-humidity-tutorial-using-arduino/
https://www.brainy-bits.com/dht11-tutorial/
0 notes
Text
Picking physical components
The Aim of the Project
We have decided to work in a group of 2 in order to make our idea work. Each one of us will be experimenting in a different area of the project with each one of our experiments being able to work by itself. However our main goal is to create an automated reptile habitat where each one of our experiments can connect with another persons’ experiment.
For example the heating sensors are able to work as a stand alone digital thermometer but can also be used to turn on the heating using their data.
The reason we have picked this approach is to have enough time to finish this project, combine our 2 Arduino boards’ memories rather than just having one Arduino board and not being able to use all of our experiments due to the lack of memory.
My Aim
My aim in this project is to gain more knowledge in using the Arduino and create a series of experiments which could be used in the final project.
The main experiments i will be attempting to complete are the following:
Connecting the temperature and humidity sensors
Create conditional statements using temperature and humidity data
Display data on the LCD screen
Display the temperature on the LCD
Use LEDS to let the user know when the temperature is above or below a certain point
Experiment using the WIFI and bluetooth module
Create a circuit which implements all areas of the project
The Components Which We Will Use
After we decided on our approach, it was time to pick all the components we will be using.
TIP120 transistors: To connect the heating mat/humidifier and any other electronic we would like to use with our Arduino boards

DHT11 temperature and humidity sensors: We wanted to automate the heating and humidity of the terrarium so we had to purchase sensors to gather temperature and humidity data

16x2 LCD display:Our initial thought was that we had to find a way for the user to monitor data such as temperature, humidity and time by sending data gathered from the sensors to an LCD display

5mm and 3mm multicoloured LEDS: We could use these for troubleshooting our other components as well as having them turn on and off depending on the time of day. Red LEDS would be used for the night cycle and White/yellow LEDS would be used for the day cycle

10cm x 5cm electric heating pad: The heating pad would be turning on and off depending on the temperature data in order to keep the reptiles warm and providing a “basking” area as well as a cool area. This also helps us manipulate the temperature without needing any switches.

ESP-32S Wi-Fi + BT + BLE MCU module: This would be used later on to connect the different parts of the project and all Arduino boards either to each other on a main computer where they can be manipulated.

Arduino Leonardo: The main board which is provided by our university will be used to link all the experiments as well as making our project possible

Arrival of parts
The parts have arrived and i am ready to begin experimenting!
Multiple temperature sensors could be used for experimenting rather than just one
The package with the LEDS included both RGB LEDS and single colour LEDS
Unfortunately i did not get a larger breadboard or an Arduino with more memory but hopefully that will not be a problem.


0 notes
Text
Coming Up With An Idea
Our deadlines have been set, our knowledge of Arduino has expanded and we are able to recognise the opportunities physical computing can create as well as it’s limits.
Our initial step is to come up with ideas of projects we can bring to life using physical computing. The project should be creative enough to bring attention to itself but it should also be possible for a university student(s) to create it.
The method i have used is to write down topics i am passionate about and then think of ways physical computing could be used to improve them. I was coming up with many ideas, however most of them were too hard for me to bring to life because of the lack of time, lack of subject knowledge or the components being too expensive.
My ideas were soon narrowed down, however i did not take into consideration the arduino board factor. The memory available was not enough and the ports limited the projects i could tackle.
I decided to create a “smart” reptile terrarium which would include the following functions: 1.Reading temperature and humidity data
2.Turning on or off the heating/humidifier based on the temperature/humidity sensors
3.Turning on the UVB lights during the day and off during the night
4.Turning on the night lamps during the night and turning them off during the day
5.Display data such as time, temperature, humidity on an LCD screen
6.Being able to monitor the terrarium through your phone
The idea behind this is that it would help the community breed more endangered reptiles as the terrarium functionalities would be automated, therefore reducing the workload of breeders enabling them to keep breed even more reptiles.
This would also create a safer environment for the reptiles as the owner would be able to monitor them from a long distance and the lighting/heating would be turning on/off more consistently creating a natural day and night cycle.
Smart reptile terrarium
LCD screen displaying temperatures in different areas of the terrarium as well as displaying the date/time
0 notes
Text
Our Experiments Portfolio Journey
Introduction
Diving into our experiments portfolio project, we have been asked to come up with a final project and create a series of blog posts to show our experiments leading up to it.
The following blog posts will include a description of our experiments including pictures and videos.
The blog posts will also include detailed documentations and presentations of the steps we followed, information about the code and the physical components of our projects as well as any errors we may have encountered and how we overcame them.
To help us out, our university has provided us with an Arduino kit which included the following items
Arduino Leonardo device
Breadboard
Wires
LEDS lights
Resistors
Further components could be purchased to provide more options for our project ideas.
Lastly, we have been creating a variety of different projects during our lectures for the past semester to become more proficient with the Arduino IDE, expand our knowledge of physical computing and learn how circuits and different physical components interact together.


Examples of these included lectures on how to use sensors, spinners, switches and led as well as exposing ourselves and learning about previous projects created by the rest of the arduino community.
0 notes
Photo
The poster above has been created using adobe photoshop after researching on how to create a successful infographic. I decided to use pixelated images as my theme each representing a different use for physical computing. Darth Vader (bottom right) using the “force” representing control over a range. Masterchief (bottom left) is wearing armor created with physical computing. Electro (top left) represents the use of it in traffic lights and the wizard is creating different effects using physical computing. The infographic is focus on how physical computing is used in our daily lives and how it has been subtly improving different areas and aspects of our lives such as controlling congestion or improving our security. References https://www.cjc-online.ca/index.php/journal/article/view/2506/2773 (Creating lighting effects and illusions)
https://www.slideshare.net/HanleyWeng/physical-computing-in-the-real-world?fbclid=IwAR2XoVhj7_Z3l-h9Wzo0tklXP9fky3iPniB2t4s1kEPGl9lqHUtqsCjLplg
https://www.youtube.com/watch?v=6HugFW8rLZ8 https://www.traffic-signal-design.com/how_do_traffic_signals_work.htm (the use of remote controls)
https://www.ocr.org.uk/Images/129940-traffic-lights.pdf (Lighting systems)
https://publications.computer.org/cloud-computing/2018/03/22/internet-of-military-battlefield-things-iomt-iobt/ (military uses)
https://www.intelligentabodes.co.uk/automated-lighting-and-design-control-systems.html
1 note
·
View note