OpenTrashCan: Een slimme Internet verbonden prullenbak die praat (7 / 8 stap)

Stap 7: Upload deze Code naar uw planken


Nu voordat we uploaden van de Arduino schets moet u aanmelden voor een Temboo Account en uw referenties te krijgen. Temboo is een service waarmee met behulp van API's uiterst snel en eenvoudig. Dit script maakt oproepen naar Temboo om het e-mailbericht verzenden wanneer de Prullenbak vol is.

Aanmelden voor een Temboo Account en ga naar de sectie "Toepassingen" om uw

-De naam van de account van de Temboo

-De naam van de sleutel van de app

-Sleutel app

Upload deze code naar je Arduino board:

 //Trash Can #include #include #include "TembooAccount.h" #include #include // software serial #1: TX = digital pin 10, RX = digital pin 11 SoftwareSerial portOne(10, 11); SoftwareSerial Geno(7,8); // Rx , Tx Servo trashServo; int trigPin = 2; int echoPin = 4; long duration, cm, inches; unsigned char Data[10]; unsigned char i; int counter = 0; int trigPin1 = 5; int echoPin1 = 6; long duration1, cm1, inches1; void setup() { portOne.begin(9600); Serial.begin (9600); Serial.println("bridge opening..."); Bridge.begin(); Serial.println("bridge OPEN!!"); Geno.begin(9600); SetVolume(25); trashServo.attach(9); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(trigPin1, OUTPUT); pinMode(echoPin1, INPUT); delay(5000); Serial.println("Initiate Smart Trash Can..."); } void playTrack(int track){ delay(1000); Data[0] = 0x7E; Data[1] = 0x04; Data[2] = 0xA0; Data[3] = 0x00; Data[4] = 0x00 + track; Data[5] = 0x7E; Command(Data,5); play_pause(); delay(3000); } void playTrackFULL(int track){ delay(1000); Data[0] = 0x7E; Data[1] = 0x04; Data[2] = 0xA0; Data[3] = 0x00; Data[4] = 0x00 + track; Data[5] = 0x7E; Command(Data,5); trashServo.write(160); play_pause(); delay(300); trashServo.write(180); delay(200); trashServo.write(160); delay(100); trashServo.write(180); delay(100); trashServo.write(160); delay(200); trashServo.write(180); delay(100); trashServo.write(160); delay(100); trashServo.write(180); delay(600); trashServo.write(160); delay(200); trashServo.write(180); delay(100); trashServo.write(160); delay(100); trashServo.write(180); delay(100); trashServo.write(160); delay(200); trashServo.write(180); delay(200); trashServo.write(160); delay(100); trashServo.write(180); delay(200); trashServo.write(160); delay(300); trashServo.write(180); delay(200); trashServo.write(160); delay(100); trashServo.write(180); delay(200); trashServo.write(160); delay(300); trashServo.write(180); delay(200); } void playTrackHEY(int track){ delay(1000); Data[0] = 0x7E; Data[1] = 0x04; Data[2] = 0xA0; Data[3] = 0x00; Data[4] = 0x00 + track; Data[5] = 0x7E; Command(Data,5); trashServo.write(150); play_pause(); delay(400); trashServo.write(180); delay(300); trashServo.write(160); delay(100); trashServo.write(180); delay(100); trashServo.write(160); delay(200); trashServo.write(180); delay(200); trashServo.write(160); delay(400); trashServo.write(180); delay(400); } void playTrackHI(int track){ delay(1000); Data[0] = 0x7E; Data[1] = 0x04; Data[2] = 0xA0; Data[3] = 0x00; Data[4] = 0x00 + track; Data[5] = 0x7E; Command(Data,5); trashServo.write(150); play_pause(); delay(400); trashServo.write(180); delay(300); trashServo.write(160); delay(100); trashServo.write(180); delay(100); trashServo.write(160); delay(200); trashServo.write(180); delay(200); trashServo.write(160); delay(100); trashServo.write(180); delay(300); trashServo.write(160); delay(400); trashServo.write(180); } void SetVolume( int vol){ Data[0] = 0x7E; // START Data[1] = 0x03; // Length Not 0x02 Data[2] = 0xA7; // Command Data[3] = vol; // new volume Data[4] = 0x7E; // END Command(Data,5); } void Command(unsigned char *Data, int length){ for(int i=0; i 1000) { trashServo.write(80); //Lid open delay(5000); } digitalWrite(trigPin1, LOW); //Inside Sensor delayMicroseconds(1); digitalWrite(trigPin1, HIGH); delayMicroseconds(2); digitalWrite(trigPin1, LOW); pinMode(echoPin1, INPUT); duration1 = pulseIn(echoPin1, HIGH); inches1 = (duration1 / 2) / 74; Serial.println(inches1); if (inches1 < 3 && counter == 0) { counter ++; playTrackFULL(2); Serial.println("Sending Email..."); TembooChoreo SendEmailChoreo; // Invoke the Temboo client SendEmailChoreo.begin(); // Set Temboo account credentials SendEmailChoreo.setAccountName(TEMBOO_ACCOUNT); SendEmailChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME); SendEmailChoreo.setAppKey(TEMBOO_APP_KEY); // Set profile to use for execution SendEmailChoreo.setProfile("EmailTest"); // Identify the Choreo to run SendEmailChoreo.setChoreo("/Library/Google/Gmail/SendEmail"); // Run the Choreo; when results are available, print them to serial SendEmailChoreo.run(); while(SendEmailChoreo.available()) { char c = SendEmailChoreo.read(); Serial.print(c); } SendEmailChoreo.close(); Serial.println("Email Sent..."); } //Serial.println(incoming); if (incoming == 111){ //Open Lid from App trashServo.write(80); delay(2000); } //Serial.println(incoming); if (incoming == 49){ playTrackFULL(2); //I have reached capacity } //Serial.println(incoming); if (incoming == 50){ playTrackHEY(1); //hey get out of there } //Serial.println(incoming); if (incoming == 51){ playTrackHI(3); //Hi, I am open Trash Can } }//ends loop 

In de Arduino IDE-Klik op een nieuw tabblad toevoegen en maken een headerbestand genoemd: TembooAccount.h deze code toevoegt aan uw headerbestand en vul het met de referenties van uw Temboo.

 //header file /* IMPORTANT NOTE about TembooAccount.h TembooAccount.h contains your Temboo account information and must be included alongside your sketch. To do so, make a new tab in Arduino, call it TembooAccount.h, and copy this content into it. */ #define TEMBOO_ACCOUNT "********" // Your Temboo account name #define TEMBOO_APP_KEY_NAME "*******" // Your Temboo app key name #define TEMBOO_APP_KEY "******************************" // Your Temboo app key /* The same TembooAccount.h file settings can be used for all Temboo SDK sketches. Keeping your account information in a separate file means you can share the main .ino file without worrying that you forgot to delete your credentials. */ 

Gerelateerde Artikelen

ImPrinter: de elektrische Imp draadloze, internet-verbonden thermische printer

ImPrinter: de elektrische Imp draadloze, internet-verbonden thermische printer

thermische printers hebben gekregen (alweer) erg populair in de afgelopen paar maanden; veel mensen lijken te zijn heel geïnteresseerd in het hebben van relevante info pop omhooggaand op een kleine rol van thermisch papier in plaats van in de telefoo
Slimme HuD - de helm van een slimme AR

Slimme HuD - de helm van een slimme AR

Met al bespreking rondgaan over alles draaien slim, uit uw televisie, koelkasten om zelfs polsbandjes, ik dacht dat ik zou iets meer aan die lijst toevoegen. Hebt u ooit gedacht aan het hebben van uw rit te slim? Ik wil introduceren een slimme helm d
TempBug: internet-verbonden thermometer

TempBug: internet-verbonden thermometer

Laatste januari, hadden we wat moeite met de hitte in mijn kantoor. In het bijzonder de aard van de problemen waarin de warmte kan niet, u draai het omhoog, en het nog steeds niet op. Dit ging voor meer dan een paar dagen, en uiteindelijk een dag of
Kartonnen Radio gecontroleerde K-9, die praat

Kartonnen Radio gecontroleerde K-9, die praat

Doctor Who heeft vele metgezellen door de jaren heen, en toen fans krijgen vroeg "wie is uw favoriete metgezel van de Dr. Who?", hoort u gewoonlijk antwoorden als Rose Tyler en Sarah-Jane Smith, Captain jack Harkness, Leela, Jamie McCrimmon onde
Christmas Tree Lights gecontroleerd via de telefoon? Een eenvoudige Internet of Things hack.

Christmas Tree Lights gecontroleerd via de telefoon? Een eenvoudige Internet of Things hack.

Mijn zoon wilde zitten kundig voor zet de kerstboom met zijn telefoon in- en uitschakelen. We gegraven rond in het geheim berg laboratorium (AKA de kelder) en kwam met het volgende project, dat een Arduino gebruikt voor het opknappen van een domme in
Steampunk ESP8266 Internet verbonden klok met behulp van de Arduino IDE

Steampunk ESP8266 Internet verbonden klok met behulp van de Arduino IDE

Wat u krijgt wanneer een ring NeoPixel, een goedkope Arduino Wifi aan boord en een laser cutter in een stoom-Punk-Sedan lopen?Een modieuze Steampunk ontworpen Internet verbonden klok met behulp van de ESP8266 chip en de Arduino IDE natuurlijk!Hier is
Internet-verbonden huis energie monitor

Internet-verbonden huis energie monitor

Dit is een magische doos die laat u kunt controleren het stroomverbruik van uw huis vanaf elke locatie op het Internet! Het meet zowel vermogen (watt) en schijnbaar vermogen (VA), het houdt een lopend totaal van elektriciteit eenheden gebruikt, en ma
Foot - een slimme metgezel voor het fysiek uitgedaagd met behulp van Intel Galileo Super

Foot - een slimme metgezel voor het fysiek uitgedaagd met behulp van Intel Galileo Super

Inductie van dit idee:We voelden echt erg jammer voor een collega in ons kantoor, waarvan benen zeer slecht zijn uitgeschakeld en ze worstelt alot dagelijks met krukken lopen. Hoewel er lift voorzien is, is het moeilijker voor haar om te bereiken dat
Internet-verbonden joystick

Internet-verbonden joystick

vorige week, ik heb gepost een demo op het opbouwen van impBot, een eenvoudige pan/tilt servo "robot" gecontroleerd via het internet met de elektrische imp. Op het moment, alles wat ik had voor controlerende genoemde robot een potentiometer in e
Een slimme aangesloten Timer

Een slimme aangesloten Timer

U moet altijd timers, vooral in uw keuken, tijdsinstellingen, en te waarschuwing wanneer iets klaar is. Laten we de 10 minuten nodig om te bouwen van een slimme verbonden timer. In dit recept, zal de timer nemen informatie van NFC, en zal een geluid
Mijn partij-In-A-Box. Een echte DIY van dingen die je hebt.

Mijn partij-In-A-Box. Een echte DIY van dingen die je hebt.

Deze instructablesis gewijd aan alle DIY liefhebbers als een bron van inspiratie, zodat je kon nemen van ideeën en dingen van dingen doen die u hebt in uw huis.Voordat ik u dat het project laat me introduceren van mijn zelf tonen.Ik ben 12e rang stud
Chronobot: Een slimme wekker

Chronobot: Een slimme wekker

Chronobot is een slimme wekker die eigen geaardheid kunt voelen. Het is een analoge klok met een geweldig uitziende geval. De klok is vrij eenvoudig om te bouwen en instellen. Het gemaakt met behulp van een mini ardunio en een TFT-scherm. Chronobot i
Laat geven Linux een poging (aka laat weer die oude PC gaan)

Laat geven Linux een poging (aka laat weer die oude PC gaan)

Bent u één van die mensen die krimpen en verbergen van het woord "LINUX"? Ik weet dat er nog steeds enkele van jullie daar. Maak je geen zorgen, uw angst is behandelbaar. Geloof me. Ik was een van u!Dit Instructable is voor mensen zoals wij.Ik g
Heroverwegen telefoon voor slechtzienden - met een slimme stok

Heroverwegen telefoon voor slechtzienden - met een slimme stok

Hier is het eerste prototype van de telefoon van de Arduino voor de slechtzienden met behulp van een Arduino Uno en het Seeed studio GPRS schild 1.0. Er zijn twee functies die deze telefoon heeft, die wordt gedreven door de modus-schakelaar, net onde