Bob - The Retired Frost Freight Lamp

Made by dongtaob

Everyone needs a retirement, who doesn't? Even when one used to be an everyday worker, he/she would be reluctant to return to work after retirement. Our old friend, Bob - a notorious frost-fright lamp, refused to return for service when summoned. To give him some persuasion, we had to work really hard to keep him nice and warm... Bob starts panicking immediately after being woken up, then he starts to feel more comfortable as he is getting a hug. (a huge one)

Created: February 17th, 2023

0

Intention

Everyone needs a retirement, who doesn't? Even when one used to be an everyday worker, he/she would be reluctant to return to work after retirement. Our old friend, Bob - a notorious frost-fright lamp, refused to return for service when summoned. To give him some persuasion, we had to work really hard to keep him nice and warm... Bob starts panicking immediately after being woken up, then he starts to feel more comfortable as he is getting a hug.  


0

Context

Being inspired by one of my childhood bedtime readings - 'Lino the Lamp Is Afraid of the Dark'; This project sought to represent an intriguing idea about animistic every-day objects. What if a utilitarian object in the household was found reluctant to work? Just like what a human being would feel like on a Monday morning. In this case, Bob is a retired lamp with his hood sagging on the ground. He is not obeying human instructions anymore. However, he could be convinced with a little extensive hug session - cheering him back up into working order. 

0

Prototype/Outcome

In order to understand whether Bob feels comfortable enough to return to work, the project uses a humidity/temperature sensor to detect his condition of him. When bob feels too cold or lacks moisture - he will start to panic and blink his light at random intervals. In order to calm him down, one has to keep hugging Bob on his hood using his palms.

As Bob becomes more comfortable, his blinking-panic state will gradually settle down with more continuous emission of light. Eventually, with the continuous hugging session, Bob becomes happy with the condition and gets back to work happily - returning a smiley face on his hood.


This project is mainly composed of three components: 

1) Sensor: A Humidity/temperature sensor (reads the 'comfort level' of Bob).

2) Micro-controller: An Arduino BLE 33 Nano microcontroller.

3) Object: An IKEA lamp (dedicate to representing Bob).

4) Utility Object: A 3.3v relay controller (articulating the on/off status of the lamp).

0
Components Schematic Diagram
Copy of final wiring and block sketch .thumb
0

Process

As an overview, the components work in a sequence together as:

--> Humid/Temp sensor detects ambient humidity and temperature level 

--> Humid/Temp sensor sending data back to the Arduino board

--> Arduino board controls on/off status of the 3.3v relay based on temp/humid level. 

--> The lamp is turned on/off based on the actions of the relay.

-->  Humid/Temp sensor continues to detect data as the user warms it up. 

The challenging part during the development of this project was attempting to make the humidity/sensor work - the sensor works best with a 5-volt power source, but it is only compatible with a 3.3-volt power source with the BLE Nano 33 board. However, once it is successfully connected, the reading is sufficiently effective and successfully drives the functionality of the relay. On the other hand, the sensor (Adafruit DTH-22) is not particularly accurate at capturing ambient humidity changes, but very effective at responding to temperature changes.

0

Next Steps

- One of the next steps of this project is mobilizing the expression of Bob to be more animated - making it a real-life motivated character. It would be compelling to design a casing for the wiring and sensor; allowing the 'hugging' action to be more realistic and embodied.

- Another aspect of the pursuit would be alternating the Arduino code to better represent Bob's panic mode; making the blink session more unsettling and anxious - triggering the user to give Bob a good hug immediately.

- On the other hand, just like a cat would make a 'meow' reaction when being picked up, Bob should also have an instant responsive reaction when being hugged at. He would also find it insecure and sad when the user stops hugging him, which should trigger another immediate response. 



0
// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain

// REQUIRES the following Arduino libraries:
// - DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library
// - Adafruit Unified Sensor Lib: https://github.com/adafruit/Adafruit_Sensor

#include "DHT.h"    //DTH sensor module
#define DHTPIN D5     // Digital pin connected to the DHT sensor

//#define DHTTYPE DHT11   // DHT 11
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

int relayPin = D2;
float HUMID_PANICPARAM_LOW = 40.0;
float HUMID_PANICPARAM_HIGH = 85.0;

//define temperature baseline based on current ambient temperature
float TEMP_PANICPARAM_LOW = 74;
float TEMP_PANICPARAM_HIGH = TEMP_PANICPARAM_LOW + 8;


// Initialize DHT sensor.
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
  // Wait one second before the things starts.
  delay(1000);
  pinMode(relayPin, OUTPUT);
}

void loop() {
  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float readHumid = dht.readHumidity();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float readTemp = dht.readTemperature(true);


  // Check if any reads failed and exit early (to try again).
  if (isnan(readHumid) || isnan(readTemp)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;}


  //print to represent current humidity and temperature readings.
  Serial.print(F("Humidity: "));
  Serial.print(readHumid);
  Serial.print(F("%  Temperature: "));
  Serial.print(readTemp);
  Serial.println(F("F"));

  // fully turn on Bob when temp and humid level reaches 'happy level'
  if ((readHumid > HUMID_PANICPARAM_HIGH ) && (readTemp > TEMP_PANICPARAM_HIGH)) {
    Serial.println("Bob is happy");
    digitalWrite(relayPin, HIGH); // Call the relay panic mode function with the current temperature
    delay(5000);
  }

  // when temp and humid level drops below 'happy level' Bob begins to panic/blinking and defined interval
  else if ((readHumid < HUMID_PANICPARAM_HIGH ) || ((readTemp < TEMP_PANICPARAM_HIGH) && (readTemp > TEMP_PANICPARAM_LOW ))) {
    Serial.println("Bob is panicing");
    relayPanicMode(readTemp); // Call the relay panic mode function with the current temperature
  }

  //Bob 'dies' when the humid and temp level drops below acceptable range 
  else {
     digitalWrite(relayPin, LOW);
     Serial.println("Bob is dead");
     delay(3000);
  }
}

//panic mode function to define the blinking interval of Bob.
void relayPanicMode(float currentTemp) {
  //random factor to randomize interval a bit
  int rd1 = random(-300, 300);
  int rd2 = random(-1000, 1000);

  //parameters for on/off time of Bob when panicing
  int onTimeMax = 2500 + rd2;
  int onTimeMin = 50 + rd1;
  int offTimeMax = 2500 + rd2;
  int offTimeMin = 50 + rd1;

  //remap temperature level to corresponding panic time interval
  int remapOnTime = constrain(map(currentTemp, TEMP_PANICPARAM_LOW, TEMP_PANICPARAM_HIGH, onTimeMin, onTimeMax),50, 3000);
  int remapOffTime = constrain(map(currentTemp, TEMP_PANICPARAM_LOW, TEMP_PANICPARAM_HIGH, offTimeMax, offTimeMin),50, 3000);

  //send data to control the on/off status of the relay
  digitalWrite(relayPin, HIGH); // Turn on the relay
  Serial.print("Bob ON time: ");
  Serial.println( remapOnTime);
  delay(remapOnTime); // Wait for the on time

  digitalWrite(relayPin, LOW); // Turn off the relay
  delay(remapOffTime); // Wait for the off time
  Serial.print("Bob OFF time: ");
  Serial.println( remapOffTime);
}
Click to Expand
0

Reflection

As an investigation experiment, this project went pretty well overall in terms of technical implementations. However, it would be more compelling to mix in other fabrication/ computing methods in articulating the objects, such as woodworking/ 3D printing / Tiny Machine Learning - the remixed method will open up more possibilities in animating everyday objects while mobilizing more interactive features in its functionalities.

On the other hand, safety measures in the working process is also a critical factor. For instance, unlike other components in the Arduino circuit system, the relay is actually connected to high-voltage power sources. It would be critically important to make sure its exposed metal compartments are properly insulated before powering it up - exposed metal tips on the back of the circuit board of a relay could potentially cause electrical shocks to the user.


0
An overview of wiring connections between Arduino board, relay, and the lamp (with split hot wire)
Wechat image 202302172139059.thumb
0
A 3.3v relay connected to the humidity/temperature sensor - providing the lamp with on/off control through Arduino
Wechat image 20230217213905.thumb
0
Humidity/temperature sensor hidden in the back of Bob - with the wire being organized together.
Wechat image 202302172139052.thumb
0
Using a compact size breadboard allows the project to be carried out more conveniently.
Wechat image 202302172139051.thumb
0
Bob in his emotional state, upset and refusing to work.
Wechat image 202302172139056.thumb
0
Bob is happy now after the hugging session!
Wechat image 202302172139053.thumb
0

(Does the same concept apply to a cat? We have yet to find out..)

0
x
Share this Project


Focused on
Skills
About

Everyone needs a retirement, who doesn't? Even when one used to be an everyday worker, he/she would be reluctant to return to work after retirement. Our old friend, Bob - a notorious frost-fright lamp, refused to return for service when summoned. To give him some persuasion, we had to work really hard to keep him nice and warm... Bob starts panicking immediately after being woken up, then he starts to feel more comfortable as he is getting a hug. (a huge one)