Project tutorial
Smart Coffee Table with Nano and HX711

Smart Coffee Table with Nano and HX711 © GPL3+

This smart coffee table illuminates your environment according to the weight of your drink.

  • 2,948 views
  • 0 comments
  • 11 respects

Components and supplies

Necessary tools and machines

09507 01
Soldering iron (generic)
3drag
3D Printer (generic)

About this project

Hi makers,

We are in the joy of making a project that has been in our mind for a long time and sharing with you. Smart Coffee Table. Because this table is really smart. It illuminates your environment according to the weight of your drink.

How does it work? We have used a weight sensor on the smart coffee table. Thanks to this sensor, we can adjust the desired color to the desired weight to the RGB strip led that we have connected to the Arduino outputs.

If the cup is empty, the red color is lit.

Between 0-50 gr, the yellow color is lit.

Between 50-100 gr, the green color is lit.

Between 100-150 gr, the blue color is lit.

150 and higher, close to white color

And we used epoxy again in this project. Thus, the lights from RGB are better spread to the environment.

You can find below " which model we used "

Weighing Pressure Sensor: https://bit.ly/2Huz49Z

Arduino Uno: https://bit.ly/2HwZRlK

RGB Led Strip: https://bit.ly/2OcXmWx

Code

HX711_full_example.inoArduino
/**
 *
 * HX711 library for Arduino - example file
 * https://github.com/bogde/HX711
 *
 * MIT License
 * (c) 2018 Bogdan Necula
 *
**/
#include "HX711.h"


// HX711 circuit wiring
const int LOADCELL_DOUT_PIN = 2;
const int LOADCELL_SCK_PIN = 3;


HX711 scale;

void setup() {
  Serial.begin(38400);
  Serial.println("HX711 Demo");
  pinMode(9,OUTPUT);
   pinMode(10,OUTPUT);
    pinMode(11,OUTPUT);

  Serial.println("Initializing the scale");

  // Initialize library with data output pin, clock input pin and gain factor.
  // Channel selection is made by passing the appropriate gain:
  // - With a gain factor of 64 or 128, channel A is selected
  // - With a gain factor of 32, channel B is selected
  // By omitting the gain factor parameter, the library
  // default "128" (Channel A) is used here.
  scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);

  Serial.println("Before setting up the scale:");
  Serial.print("read: \t\t");
  Serial.println(scale.read());			// print a raw reading from the ADC

  Serial.print("read average: \t\t");
  Serial.println(scale.read_average(20));  	// print the average of 20 readings from the ADC

  Serial.print("get value: \t\t");
  Serial.println(scale.get_value(5));		// print the average of 5 readings from the ADC minus the tare weight (not set yet)

  Serial.print("get units: \t\t");
  Serial.println(scale.get_units(5), 1);	// print the average of 5 readings from the ADC minus tare weight (not set) divided
						// by the SCALE parameter (not set yet)

  scale.set_scale(2280.f);                      // this value is obtained by calibrating the scale with known weights; see the README for details
  scale.tare();				        // reset the scale to 0

  Serial.println("After setting up the scale:");

  Serial.print("read: \t\t");
  Serial.println(scale.read());                 // print a raw reading from the ADC

  Serial.print("read average: \t\t");
  Serial.println(scale.read_average(20));       // print the average of 20 readings from the ADC

  Serial.print("get value: \t\t");
  Serial.println(scale.get_value(5));		// print the average of 5 readings from the ADC minus the tare weight, set with tare()

  Serial.print("get units: \t\t");
  Serial.println(scale.get_units(5), 1);        // print the average of 5 readings from the ADC minus tare weight, divided
						// by the SCALE parameter set with set_scale

  Serial.println("Readings:");
}

void loop() {
  Serial.print("one reading:\t");
  Serial.print(10*scale.get_units(), 1);
  Serial.print("\t| average:\t");
  Serial.println(10*scale.get_units(10), 1);





if(10*scale.get_units()<185)
{
  analogWrite(9,255);
  analogWrite(10,0);
  analogWrite(11,0);
  }
 else if(10*scale.get_units()<220)
  {
    analogWrite(9,255);
    analogWrite(10,0);
    analogWrite(11,100);
   }
    else if(10*scale.get_units()<270)
  {
    analogWrite(9,0);
    analogWrite(10,0);
    analogWrite(11,200);
   }
    else if(10*scale.get_units()<320)
  {
    analogWrite(9,0);
    analogWrite(10,255);
    analogWrite(11,0);
   }
   else{
   analogWrite(9,100);
  analogWrite(10,200);
  analogWrite(11,200);}








  
  scale.power_down();			        
  delay(5);
  scale.power_up();
}

Schematics

hx71112222_kb1dYR9i2M.png
Hx71112222 kb1dyr9i2m
ilk_devreeee_7r9m5FaDs4.png
Ilk devreeee 7r9m5fads4

Comments

Similar projects you might like

4WD Smart Robot Car

Project tutorial by TheTNR

  • 5,724 views
  • 2 comments
  • 13 respects

Smart Home - Smart Rules using ARTIK Cloud & Photon

Project tutorial by Raghavendra Ponuganti

  • 4,731 views
  • 3 comments
  • 16 respects

Smart Thermostat

Project tutorial by Arduino_Genuino

  • 76,526 views
  • 13 comments
  • 84 respects

Animated RGB Wall Clock

Project tutorial by TheTNR

  • 13,422 views
  • 11 comments
  • 40 respects

Octopod: Smart IoT Home/Industry Automation Project

Project tutorial by Saksham Bhutani

  • 11,746 views
  • 9 comments
  • 39 respects
Add projectSign up / Login