Apr 30

After extensive troubleshooting and testing of our wifi shield, we’re starting to believe it’s faulty. This is the risk of working with hardware! If the shield fails the last round of tests David gives it today, our plan of action is to return the shield and order a new shield which qualifies for fast shipping.

Our goals for today’s work meeting are:

  • Ascertain the source of the strange readings from the thermistor. Victoria has kept good notes of her testing.
  • Program a webpage according to the agreed design set by the group — Devin  and David both are working on this, but David will be testing the wifi shied for at least some of the day.
  • Draw out logo — Dani will bring tablet to do so.
  • Ascertain if wifi shield is faulty — take appropriate action if so.
Apr 29

In the process of working on our webserver design, we’ve have a few mockups made to direct us.

 

Here’s a rough draft of the logo design we’ve selected for the website:

meat_mock

 

And here is a mockup of our website layout (the large box at the top being where the thermometer logo will be).website_mck

Apr 09

We will be using this web server code to help us gain direction for our own!

/*
  WiFi Web Server

 A simple web server that shows the value of the analog input pins.
 using a WiFi shield.

 This example is written for a network using WPA encryption. For 
 WEP or WPA, change the Wifi.begin() call accordingly.

 Circuit:
 * WiFi shield attached
 * Analog inputs attached to pins A0 through A5 (optional)

 created 13 July 2010
 by dlf (Metodo2 srl)
 modified 31 May 2012
 by Tom Igoe

 */

#include <SPI.h>
#include <WiFi.h>

char ssid[] = "yourNetwork";      // your network SSID (name) 
char pass[] = "secretPassword";   // your network password
int keyIndex = 0;                 // your network key Index number (needed only for WEP)

int status = WL_IDLE_STATUS;

WiFiServer server(80);

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

  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present"); 
    // don't continue:
    while(true);
  } 

  // attempt to connect to Wifi network:
  while ( status != WL_CONNECTED) { 
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:    
    status = WiFi.begin(ssid, pass);

    // wait 10 seconds for connection:
    delay(10000);
  } 
  server.begin();
  // you're connected now, so print out the status:
  printWifiStatus();
}

void loop() {
  // listen for incoming clients
  WiFiClient client = server.available();
  if (client) {
    Serial.println("new client");
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");  // the connection will be closed after completion of the response
          client.println("Refresh: 5");  // refresh the page automatically every 5 sec
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          // output the value of each analog input pin
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            int sensorReading = analogRead(analogChannel);
            client.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(sensorReading);
            client.println("<br />");       
          }
          client.println("</html>");
           break;
        }
        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
        } 
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);

    // close the connection:
    client.stop();
    Serial.println("client disonnected");
  }
}

void printWifiStatus() {
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print your WiFi shield's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}
Apr 01

3.25

11:30am

In Attendance: Dani,  David, Devin, Vic, Ashish

Summary of Last Meeting:

At our last meeting we decided that our meat thermometer would not calculate the time remaining for a meat to be done cooking. Instead our application will output the percentage of time remaining until the user should remove the meat from the oven. We came to this decision upon comparing the work time complexity of developing that algorithm to the work required to complete other important tasks for the project.

Individual Updates:

-Dani and David performed excellently at the annual PRRCCDC competition

-David read tutorials online and explored Arduino software.

-Devin took on additional management responsibilities.

-Vic looked for arduino resources online, checked that our hardware functions correctly, and realized that the group must choose which kind of software to use.

In this meeting:

The group discussed the CCDC competition; congratulations on winning 2nd place, Evergreen. Vic led the group in testing the equipment, specifically the LED circuit.  She chose to set up the Blinky program, the “Hello World” of hardware.

During the test we experienced the following problem: the software program was not responding to the Arduino. At first we thought that a faulty circuit may be the issue and that our hardware was not working, but that was not the case. Next, Vic downloaded missing drivers and Node.js, which allows programmers to code for Arduino and javaScript, to connect the software to the hardware.

Each group member will set up the same Arduino software on their machine. Our hardware assembly tasks may continue tomorrow. We were glad that we began implementing our project in week 0. The group disassembled at 1:58.

Next Meeting

Tomorrow, 3/26 at 11:00am

3.26

11:30am

This was an extension of yesterday’s meetings hardware work.

In Attendance: Dani, David, Devin, Victoria

In this meeting:

The hardware was tested, we worked on finding what works and what doesn’t with the arduino. Victoria and David ran blinky light programs (the helloworld of arduino) which served as a good start on interfacing with the arduino.

Next meeting: Tuesday 4.01, Lib 2611 (Affinity group with Judy)

Mar 19

Group Gif

Mar 19

What a great day! We’ll be meeting tomorrow, 12pm, at David’s house to begin putting things together!

Let’s be sure to take photos of the process for the blog.

Feb 25

–and waiting for the wifi shield to arrive!

Jan 27

PART                                                             COST (estimate based on research)
—————————————————————————————-

Thermistor                                                $10-20

Audio Jack                                                 Already procured.

Resistor(s)                                                 Already procured.

Alligator Clamp Connectors               Already procured.

WiFi Shield                                                $55 – $86 (there are options in between these ranges as well.)

Arduino unit                                              Already procured — 2 uno, 1 duemillenove.

 

Jan 27

An arduino BBQ thermometor project which we can modify for our usage (re: connecting thermistor and translating voltage to temp).

The wikipedia article on Thermistors.

Jan 23

Algorithm — no progress since last meeting. By next Thurs, David is going to have read up on heat transfer (linking those materials to Devin for her reading as well) and prepared psuedocode with Devin for presentation. Devin has researched how people measure temperature change and mass but had poor luck; will research heat transfer (linking those materials to David for his reading as well).

Hardware — we have schematics for our arduinos thanks to the wonderful Vic! We know what connectors we can use. Now we need to procure thermistor and connector, and understand how to translate from voltage to temperature. Dani and Victoria will be going over an arduino BBQ thermometer project to see how they sourced their parts and put it together and plan our own procurement (incl. checking out funding for parts — don’t worry, Sherri, we have backup plan if no school funding!). Dani has researched thermistor options, and will be narrowing them down with Vic. She will also check on the status of the bluetooth transmitter in the MML.

 

 

SOS Meat Thermometer Project