Thursday, 6 February 2025

Week 1

Updated: Feb 24, 2025

Members: Hamad Alsayed, Amanda Guo, Sultan Hassan, Aaron Symonds


Components list:

Waterproof Temperature sensor Ds18B20 WPSE324

Red LED HLMP-3390

Blue LED C503B-Bcs-CVOZ0461

Green LED MCOI 1363

Arduino Uno R3

4.7kOhm resistor

AA battery x3

Waterproof battery case

Electronics grade silicone adhesive sealant EGSI OC-20G

Speaker module for arduino FIT0449

Micro SD card reader for arduino DFR0229

Micro SD card Netac 32 GB

USB-A to mini USB-B cable 


Week 1 activities:

During this week, we firstly tested all of our components to ensure they were all working as intended. The photos below show us testing the coloured LEDs.




We also downloaded the sample code from the temperature sensor's datasheet to trial the Arduino. 

Sample code:

#include <OneWire.h>

int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2

//Temperature chip i/o
OneWire ds(DS18S20_Pin);  // on digital pin 2

void setup(void) {
  Serial.begin(9600);
}

void loop(void) {
  float temperature = getTemp();
  Serial.println(temperature);
  delay(100); //just here to slow down the output so it is easier to read
}


float getTemp(){
  //returns the temperature from one DS18S20 in DEG Celsius

  byte data[12];
  byte addr[8];

  if ( !ds.search(addr)) {
      //no more sensors on chain, reset search
      ds.reset_search();
      return -1000;
  }

  if ( OneWire::crc8( addr, 7) != addr[7]) {
      Serial.println("CRC is not valid!");
      return -1000;
  }

  if ( addr[0] != 0x10 && addr[0] != 0x28) {
      Serial.print("Device is not recognized");
      return -1000;
  }

  ds.reset();
  ds.select(addr);
  ds.write(0x44,1); // start conversion, with parasite power on at the end

  byte present = ds.reset();
  ds.select(addr);    
  ds.write(0xBE); // Read Scratchpad

  for (int i = 0; i < 9; i++) { // we need 9 bytes
    data[i] = ds.read();
  }
  ds.reset_search();
  byte MSB = data[1];
  byte LSB = data[0];

  float tempRead = ((MSB << 8) | LSB); //using two's compliment
  float TemperatureSum = tempRead / 16;
  return TemperatureSum;
}

However, we did encounter some setbacks regarding the code. While the code compiled successfully, the code would not upload to the Arduino Nano. The photo inserted below is the error code we were getting. After doing some research, we determined that the Arduino Nano is known to be unreliable. Following this, we swapped the Nano for an Arduino Uno R3 and the code was successfully uploaded. 


We also came up with a preliminary circuit diagram, this is shown below.




Plans for next week:

1) Start and finish assembling entire circuit 

2) Test and ensure entire circuit is working order, ready for soldering the week after











No comments:

Post a Comment

Poster