Introduction: Smart Mailbox

De Smart Mailbox moet ervoor zorgen dat je altijd op de hoogte bent van of jouw pakketje al is binnengekomen.
Tegenwoordig komt het vaak voor dat mensen in een flat wonen en niet altijd even veel zin hebben om helemaal naar beneden te lopen om te kijken in hun brievenbus. Vandaar de Smart Mailbox. De Smart Mailbox moet hier verandering in gaan brengen en de bewoner altijd op het moment dat er een pakketje in de brievenbus word gegooid een email te geven dat zijn of haar pakketje binnen is gekomen.

Ik heb dit project dan ook gebaseerd op mijn ware leefomgeving en gekeken wat voor mij zeer handig zou zijn om smart te gaan maken. De brievenbus was een obstakel dus daarom heb ik dat een stukje slimmer geprobeerd te maken !

Step 1: Wat Heb Je Allemaal Nodig?

Laat ik voordat ik alle producten op een rijtje ga zetten eerst beginnen met het gebruikt te maken van de MosCow methode om te kijken wat het nou echt moet kunnen en wat misschien toch te overbodig is voor dit project.

Must Haves

  • Arduino
  • Ethernet Shield
  • Moet een melding geven
  • Brievenbus

Should Have

  • Een case om de arduino te beschermen
  • Wifi Shield

Could Have

  • Kijken hoe zwaar het pakketje moet zijn / en wat voor pakket het precies is

Wont Have

  • Oneindige Batterij

De onderdelen die ik heb gebruikt / aangeschaft moeten worden.

  • Arduino
  • Arduino Ethernet Shield
  • Kabeltjes
  • Breadboard

Step 2: Het Opzetten Van Gmail / Temboo

Bij deze stap is het simpelweg de kwestie van het omzetten van je Gmail account.De beveiliging op een standaard Gmail account is voor dit project niet goed genoeg, dus moet het omgezet worden naar een 2 Step beveiliging.

https://temboo.com/processing/send-email

Als je de stappen liever via de URL wil volgen mag dat ook, maar ik heb ze hier voor het gemak in het Nederlands beschreven en daarnaast nog wat stappen makkelijker gemaakt!

Stappenplan om tot de code te komen.

  1. U dient eerst een Temboo account aan te maken. Hier gaan we later verder op in.
  2. Als u nog geen Gmail account heeft dient deze eerst gemaakt te worden.
  3. Aangemaakt? Mooi, dan dient je nu op "Account" te klikken.
  4. Klik nu op het tabtje "Inloggen bij Google".
  5. Dan navigeer je naar "2-Step Verification" en klikt hierop.
  6. Je dient nu de stappen te doorlopen die Google je aanbied.
  7. Na deze stappen gevolgd te hebben is het tijd om een App Password aan te maken.
  8. In de dropdown menu van Select App kies je voor Other en geeft de App die je gaat maken een naam.
  9. Druk nu op Generate en er word een digitaal password voor je gemaakt (bewaar deze goed).
  10. Vervolgens dien je terug te gaan naar de Temboo website om hier je gegevens in te vullen.https://temboo.com/library/Library/Google/Gmail/Se...
  11. De triggered by sensors functies(input,output) kunnen we leeglaten, omdat we dit later zelf in onze code gaan zettten d.m.v sensoren.
  12. Vergeet niet IoT aan te vinken en stel hier Arduino,Ethernet Shield in.
  13. Alles ingevuld? Klik op Run en je unieke code word aangemaakt.
  14. Kopieer nu de code naar een leeg Arduino codeer bestand.
  15. Maak daarna een nieuw tabje aan en kopieer hier de Header code naartoe(deze 2 files dienen aan elkaar gelinked te worden).
  16. Als dit allemaal gelukt is kan je de code naar je Arduino uploaden en testen of je al een mail binnenkrijgt!

Dit is de code die ik eruit heb gekregen, bekijk dit dan ook goed of het overeen komt. De header code kan ik hier niet plaatsen, omdat deze uniek is.

/* Setup shield-specific #include statements */
#include #include #include #include #include #include #include "TembooAccount.h" // Contains Temboo account information

byte ethernetMACAddress[] = ETHERNET_SHIELD_MAC; EthernetClient client;

int numRuns = 1; // Execution count, so this doesn't run forever int maxRuns = 10; // Maximum number of times the Choreo should be executed

void setup() { Serial.begin(9600); // For debugging, wait until the serial console is connected delay(4000); while(!Serial);

Serial.print("DHCP:"); if (Ethernet.begin(ethernetMACAddress) == 0) { Serial.println("FAIL"); while(true); } Serial.println("OK"); delay(5000);

Serial.println("Setup complete.\n"); }

void loop() { if (numRuns <= maxRuns) { Serial.println("Running SendEmail - Run #" + String(numRuns++));

TembooChoreo SendEmailChoreo(client);

// 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 Choreo inputs String UsernameValue = "Dominichoogkamer@gmail.com"; SendEmailChoreo.addInput("Username", UsernameValue);

// 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("\nWaiting...\n"); delay(30000); // wait 30 seconds between SendEmail calls }

Step 3: De Code Aanpassen Naar De Smart Mailbox

Om de sensor aan de praat te krijgen, zodat deze kan aanvoelen of er post in de brievenbus word gedaan, dienen we de code een beetje te veranderen.

1. Als eerste dien je deze bibliotheek voor Arduino te downloaden
http://playground.arduino.cc/Main/CapacitiveSensor...
Deze zorgt ervoor dat we de kabeltjes kunnen gebruiken als sensor. Download het zip bestandje en zet de map in de Library map van Arduino. Als dat gedaan is kunt u nu de CapacitiveSensor bibliotheek toevoegen in de header.

#include <CapacitiveSensor.h>

2. Meteen hieronder dien je de CapacitiveSensor aan te roepen en hier een variabel aan te koppelen en hier de inputs door te geven waar de kabels zodrekt ingaan.

#include <CapacitiveSensor.h>
4_2 = CapacitiveSensor(4,2);

3.Verander de Delay in de Ethernet Check naar 500.

Serial.print("DHCP:");
if (Ethernet.begin(ethernetMACAddress) == 0) { Serial.println("FAIL"); while(true); } Serial.println("OK"); delay(500);

4.In de void loop moet er nog een variable aangemaakt worden die de gevoeligheid van de sensor vastlegt.

void loop(){
long totall = cs_4_2.capacitiveSensor(60);

5.Direct hieronder staat een if loop die bekijkt hoeveel num rows er zijn. Deze if loop kan veranderd worden naar:

void loop() {
if (totall > 0) { Serial.println("Running SendEmail - Run #" + String(numRuns++));

TembooChoreo SendEmailChoreo(client);

// 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);

// 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); }

Serial.println("\nWaiting...\n"); delay(30000); // wait 30 seconds between SendEmail calls

} }

6.Weet je zeker dat het helemaal klopt!? Dan kunnen we verder naar de volgende stap.

Step 4: Connecten Van Arduino

Zoals je al kan zien op het plattegrondje is het bouwen van de Arduino veel minder werk dan het programmeren.
Tijdens het bouwen van de Arduino dien je dan ook goed naar de foto's te kijken en de plattegrond anders werk het niet.

  1. Als eerste moet je de Ethernet Shield bevestigen op de Arduino Uno.
  2. Nadat je dit gedaan heb kan je als eerste een kabeltje in pin nummer 2 stoppen
  3. Daarna kan je 2 pins verder opschuiven en ook een kabeltje in 4 doen (denk hierbij goed aan de code, daar werd een variable aangemaakt waar deze 2 nummers inzaten).
  4. Als je deze 2 kabels erin heb gedaan kan je het breadboard erbij pakken en dit precies zo aansluiten als op de foto's is gedaan. De plek maakt niet uit als de resistor maar goed is en het pad van het stroom maar goed loopt.Hiermee spelen is dan ook een goede oefening.
  5. Als dit allemaal gelukt is kan je de USB-kabel aansluiten en daarnaast de Ethernet kabel en kijken of het werkt.

Step 5: Plaatsen Van De Arduino in De Brievenbus