In-Depth: Smart Containers
Need
Question: Is there enough flour and sugar at home to make a cake for your friend's birthday tomorrow? Or do you need to stop at the store on your way home?
Concept
Containers for pantry bulk items that relay content levels to smart phone app in real time.
Equipment
- Arduino
- Sharp GP2D120XJ00F Analog Distance Sensor 4-30cm
- Container
- Computer
Prototype
(coming soon)
Code
Arduino
int IRpin = 1;
int val = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
float volts = analogRead(IRpin)*0.00322265624;
float distance = 12.21*pow(volts, -1.15);
Serial.println(distance);
}
Processing
Tab 1
Serial myPort;
Table dataTable;
import processing.serial.*;
int incomingVal;
int level;
int r;
int b;
int q;
int o;
void setup(){
size(255,255);
dataTable = new Table("data.tsv");
//rowCount = dataTable.getRowCount();
myPort = new Serial(this,"/dev/tty.usbmodem411",9600);
}
void draw(){
background(0);
while(myPort.available() > 0){
incomingVal = myPort.read();
}
level = height - incomingVal;
fill(level);
rect(0,level,width,height);
PrintWriter output = createWriter("data/data.tsv");
output.println("Pasta:" +level+ " Rice:" +r+ " Bulgar:" +b+ " Quinoa:" +q+ " Oats:" +o );
output.flush();
}
Tab 2
PHP
(Uploads data to web)
<?php
$file_handle = fopen("data.tsv", "r");
while (!feof($file_handle)) {
$line = fgets($file_handle);
echo $line;
}
fclose($file_handle);
?>
References
Reference for Sharp GP2D120XJ00F Analog Distance Sensor 4-30cm
Arduino – Using a Sharp IR Sensor for Distance Calculation
The Right Way to Read Files with PHP