OpenTrashCan: En Smart Internet ansluten papperskorg som talar (7 / 8 steg)
Steg 7: Ladda upp här koden till din styrelser
Nu innan vi ladda upp Arduino skiss måste du registrera dig för ett Temboo konto och få dina referenser. Temboo är en tjänst som gör att använda API's extremt snabbt och enkelt. Detta script gör anrop till Temboo för att skicka e-post när Papperskorgen är full.
Skaffa ett Temboo konto och gå till avsnittet "Program" för att få din
-Temboo namn
-Namn på app
-App nyckel
Ladda upp denna kod till din Arduino ombord:
Papperskorgen kan
#include
#include
#include "TembooAccount.h"
#include
#include
mjukvaran följetong #1: TX = digital stift 10, RX = digital stift 11
SoftwareSerial portOne (10, 11);
SoftwareSerial Geno(7,8); RX, Tx
Servo trashServo;
int trigPin = 2;
int echoPin = 4;
lång varaktighet, cm, inches;
unsigned char Data [10].
unsigned char i.
int counter = 0;
int trigPin1 = 5;
int echoPin1 = 6;
lång varaktighet 1, cm1, inches1;
void setup() {
portOne.begin(9600);
Serial.BEGIN (9600);
Serial.println ("bridge öppna...");
Bridge.BEGIN();
Serial.println ("bridge öppna!");
Geno.BEGIN(9600);
SetVolume(25);
trashServo.attach(9);
pinMode (trigPin, produktionen);
pinMode (echoPin, ingång);
pinMode (trigPin1, produktionen);
pinMode (echoPin1, ingång);
Delay(5000);
Serial.println ("starta Smart papperskorgen kan...");
}
Annullera playTrack (int spår) {
Delay(1000);
Data [0] = 0x7E;
Data [1] = 0x04;
Data [2] = 0xA0;
Data [3] = 0x00;
Data [4] = 0x00 + spår;
Data [5] = 0x7E;
Command(data,5);
play_pause();
Delay(3000);
}
void playTrackFULL (int spår) {
Delay(1000);
Data [0] = 0x7E;
Data [1] = 0x04;
Data [2] = 0xA0;
Data [3] = 0x00;
Data [4] = 0x00 + spår;
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 spår) {
Delay(1000);
Data [0] = 0x7E;
Data [1] = 0x04;
Data [2] = 0xA0;
Data [3] = 0x00;
Data [4] = 0x00 + spår;
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 spår) {
Delay(1000);
Data [0] = 0x7E;
Data [1] = 0x04;
Data [2] = 0xA0;
Data [3] = 0x00;
Data [4] = 0x00 + spår;
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; Längd inte 0x02
Data [2] = 0xA7; Kommandot
Data [3] = vol; ny volym
Data [4] = 0x7E; SLUTET
Command(data,5);
}
Annullera kommando (unsigned char * Data, int längd) {
för (int jag = 0; jag 1000) {
trashServo.write(80); Locket öppet
Delay(5000);
}
digitalWrite (trigPin1, låg); Inside Sensor
delayMicroseconds(1);
digitalWrite (trigPin1, hög);
delayMicroseconds(2);
digitalWrite (trigPin1, låg);
pinMode (echoPin1, ingång);
varaktighet 1 = pulseIn (echoPin1, hög);
inches1 = (varaktighet 1 / 2) / 74;
Serial.println(inches1);
om (inches1 < 3 & & counter == 0) {
räknaren ++;
playTrackFULL(2);
Serial.println ("skicka e-post...");
TembooChoreo SendEmailChoreo;
Anropa Temboo klienten
SendEmailChoreo.begin();
Ange Temboo kontoautentiseringsuppgifter
SendEmailChoreo.setAccountName(TEMBOO_ACCOUNT);
SendEmailChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
SendEmailChoreo.setAppKey(TEMBOO_APP_KEY);
Ställa in profil att använda för verkställighet
SendEmailChoreo.setProfile("EmailTest");
Identifiera den koreografiska att köra
SendEmailChoreo.setChoreo("/Library/Google/Gmail/SendEmail");
Kör koreografiska; När resultaten är tillgängliga, skriva ut dem till seriell
SendEmailChoreo.run();
While(SendEmailChoreo.available()) {
char c = SendEmailChoreo.read();
Serial.Print(c);
}
SendEmailChoreo.close();
Serial.println ("e-post skickas...");
}
Serial.println(Incoming);
om (inkommande == 111) {//Open locket från App
trashServo.write(80);
Delay(2000);
}
Serial.println(Incoming);
om (inkommande == 49) {
playTrackFULL(2); Jag har nått kapacitet
}
Serial.println(Incoming);
om (inkommande == 50) {
playTrackHEY(1); Hej kom ut därifrån
}
Serial.println(Incoming);
om (inkommande == 51) {
playTrackHI(3); Hej, är jag öppna papperskorgen kan
}
} //ends loop
I Arduino IDE på att lägga till en ny flik och skapa en header-fil kallas: TembooAccount.h lägga till denna kod till din header-fil och fylla den med dina Temboo referenser.
header-fil
/*
VIKTIG information om TembooAccount.h
TembooAccount.h innehåller information om ditt Temboo konto och ingå
tillsammans med din skiss. Till gör så, gör en ny flik i Arduino, kalla det TembooAccount.h,
och kopiera innehållet i den.
*/
#define TEMBOO_ACCOUNT "***" / / din Temboo kontonamn
#define TEMBOO_APP_KEY_NAME "***" / / din Temboo app nyckel namn
#define TEMBOO_APP_KEY "***" / / din Temboo app nyckel
/*
Samma TembooAccount.h filen inställningar kan användas för alla Temboo SDK skisser.
Att hålla din kontoinformation i en separat fil innebär att du kan dela den
huvudsakliga .ino fil utan oroande att du glömde att ta bort dina uppgifter.
*/