Pith - garbage_gauge
garbage_gauge/garbage_gauge.ino [1.6 kb]
Modified: 22:28:46 56 026 (14 May 026)
16 Days Ago
// Garbage Gauge
// vgmlr
#ifdef SPARK
#include "ThingSpeak/ThingSpeak.h"
#else
#include "ThingSpeak.h"
#endif
#ifdef SPARK
TCPClient client;
#define VOLTAGE_MAX 3.3
#define VOLTAGE_MAXCOUNTS 4095.0
#endif
// ThingSpeak
unsigned long myChannelNumber = CHANNEL;
const char * myWriteAPIKey = "APIKEY";
// Input
int scale = A5;
// Variables
int current = 0;
int tare = 0;
int preweight = 0;
int adjust = 0;
int week = 0;
int total = 0;
int wait = 10800; // 3 Hours
void setup() {
  Serial.begin(9600);
  ThingSpeak.begin(client);
  // Calm Down Power-Up Fluctuation
  delay(5000);
  // Empty Garbage Bin Weight
  tare = analogRead(scale);
  delay(5000);
}
void loop() {
  // Read Pot
  current = analogRead(scale);
  // Convert to Pounds
  // Pot Turn Limitation 254 Pounds
  // Particle Photon is 0 to 4095
  preweight = map(current, 0, 4095, 0, 254);
  // Subtract Tare
  adjust = preweight - tare;
  if (adjust < week && preweight < tare) {
    // No Barrel? Ignore
  }
  else if (adjust < week && preweight > tare) {
    // Barrel Emptied? Reset Week
    week = adjust;
  }
  else if (adjust == week) {
    // No Change? Ignore
  }
  else if (adjust > week) {
    // Remove Previous Week Addition
    total = total - week;
    // Adjust Week
    week = adjust;
    // Add to Total
    total = total + week;
  }
  // Total Amount
  ThingSpeak.writeField(myChannelNumber, 1, total, myWriteAPIKey);
  // Amount Since Emptying
  ThingSpeak.writeField(myChannelNumber, 2, week, myWriteAPIKey);
  // Low Power During Delay
  System.sleep(wait);
  delay(wait);
  // Allow WIFI Recovery
  delay(10000);
}
Updates
Shim - Android 70.026.1
Wedge - Linux 68.026.1
Wedge - Android 68.026.1
Taper - Linux 64.026.1
Ayh Extension - Chrome 63.026.1
Dev
TVShow (227) 'CSA'
TVShow (228) 'APT'
TVProgram (83) 'BXT'
Miter Update(s)
Shim (Dictation)

Menu
Calendar
Project Tin (024/029)
Miter
RSS Feed
User Avatar
@vgmlr
=SUM(parts)