Our initial project was essentially a really good thermometer, that would tell the user what the temperature was in the room they were currently in and what the high and low of the day would be outside. We chose this idea because we thought it was an interesting concept and useful. There are moments in bed when you want to know how to dress for both inside and outside quickly and there is no way of having a firm idea in the disparity of temperature between the two states. This would solve that issue. It also built upon several concepts we already had learned, including wifi and temperature sensors. The new knowledge we needed to obtain was an understanding of how to properly attach an LCD display to our circuit and combine the code of that with our code for the temperature sensor, button, and the code for obtaining weather data from the internet. By the first demo day we had successfully created the temperature sensor and LCD part of our circuit. The temperature sensor was wired to both Ground and 5V with a resistor and the LCD was attached to pins A4 and A5 along with 5V and Ground. The temperature sensor was attached to A0 from its middle pin. Our code worked successfully since we downloaded the LiquidCrystal library. The LCD successfully displayed the temperature of the room on the LCD in Celsius (i.e. “21.4 Celsius”).
The second part of our project is what became a headache. Initially, we had set up all the wiring necessary for the Wifi to transfer information to the LCD, but the code for obtaining data from the internet, let alone transferring this data to the LCD, became well beyond our capacities. Initially, we were going to use a Yahoo weather API, but it had been discontinued. We attempted to obtain data using Openweatherdata, html code (using textfinder function), a Wifi Shield, an Ethernet shield, but even with many TA’s assisting, we were unable to get any of these to work. Instead, we settled on using bluetooth and a button on a separate breadboard that when pressed, would update the LCD temperature reading by running the temperature sensor again. That meant the first part of the project stayed intact, except we added a bluetooth slave and wired it with the temperature sensor, connecting it to the Arduino through pins 2 and 3. Therefore, when the button was pressed, it would send the signal to the bluetooth slave, which would cause the temperature sensor to work and send information to the LCD. On the other breadboard, there was a simple button set-up based on how we learned to set up buttons from previous labs and connected to the Arduino pin 9. The master bluetooth was connected to the Arduino through pins 2 and 3. We made a new Arduino code file where we input the instructions for the button. The master slave code was sent to one circuit from one computer, and the slave from another computer to the other. When the button was pressed and held for at least 1 second (delay of 1000 milliseconds) and let go, the LCD would change the temperature displayed based on the new reading from the temperature sensor. This project could be turned into a real product as a device that could quickly give you precise updates on the temperature anywhere you go. This would useful if you wanted to compare temperatures between rooms, or inside and outside. It is far quicker at both getting readings and updating on changes than normal thermometers or warming/cooling systems. In terms of improving our project, we would try to figure out how to make the Wifi or Ethernet shields work and also display the internet temperature values in our LCD screen. Indeed, we would be able to get a separate reading and projected reading of the outside temperature simultaneously as getting the temperature wherever the circuit is.