Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

De Trump-knop

Componenten en benodigdheden

Arduino MKR Fox 1200
× 1

Apps en online services

Sigfox
Twilio SMS Messaging API

Over dit project

Inleiding

We hebben allemaal gehoord van de knop die Trump gebruikte om een ​​cola light te bestellen, toch? (http://time.com/4758059/donald-trump-coke-nuclear-button/)

Wel, we dachten dat we een betere versie konden bouwen met het Sigfox-netwerk. Het enige wat je nodig hebt is een dikke knop, een Arduino MKRFox1200-bord en een Twilio-account om het sms-bericht te verzenden.

Wat is Sigfox?

Sigfox levert een wereldwijd, eenvoudig en energiezuinig netwerk voor het Internet of Things. Het Sigfox-netwerk is momenteel beschikbaar of wordt uitgerold in 32 landen. Het netwerk vormt een aanvulling op bestaande systemen met hoge bandbreedte door een voordelige, energiezuinige tweerichtingstransmissie van kleine hoeveelheden gegevens over lange afstanden. Sigfox-technologie wordt ondersteund door honderden hardware- en oplossingspartners.

1. Hardwarevereisten

  • Arduino MKRFox1200
  • Een grote knop
  • LiPo-batterij of 2xAA/AAA-batterijen
  • Een drukknopschakelaar
  • thethings.io-sticker
  • En natuurlijk een Trump-masker

We gebruiken een drukknop die is aangesloten op pinnen 7 en GND van de Arduino. In normale toestand is de schakelaar gesloten. Bij het indrukken van de knop gaat de schakelaar open. De schakelstatus kan eenvoudig worden omgekeerd in de Arduino-code.

2. Arduino-code

Je kunt de Arduino-code op GitHub ophalen:https://github.com/aureleq/TrumpButton

We gebruiken de low power bibliotheek om het bord in diepe slaap te brengen. Een interrupt wordt gebruikt om het bord wakker te maken en een Sigfox-bericht te sturen:

// bevestig de schakelpin en schakel de onderbreking in bij spanningstoename event pinMode (SWITCH_PIN, INPUT_PULLUP); LowPower.attachInterruptWakeup (SWITCH_PIN, knop ingedrukt, RISING); // schakelaar is standaard gesloten, open bij het indrukken van de buttonvoid loop(){ // Slaap totdat een gebeurtenis wordt herkend LowPower.sleep(); // als we hier komen, betekent dit dat een gebeurtenis is ontvangen Serial.println("Knop ingedrukt!"); vertraging (100); sendString(payload);} 

3. Twilio

  • Meld u hier gratis aan
  • Voeg een nieuw nummer toe in de "Geverifieerde beller-ID's" (telefoonnummer om de melding te ontvangen)
  • Noteer uw gegenereerde Twilio Telefoonnummer , ACCOUNT SID en Authenticatietoken:

4. Sigfox callback-configuratie

  • Maak verbinding met uw Sigfox-backend-account. Als je je Arduino-bord nog niet hebt geregistreerd, kun je het hier activeren:https://backend.sigfox.com/activate/
  • Selecteer het Apparaattype van uw Arduino-apparaat. Link naar het Apparaattype is beschikbaar onder de Informatie categorie.

Maak een nieuwe aangepaste callback met de volgende parameters:

  • Type:DATA UPLINK
  • Kanaal:URL
  • URL-patroon:https://[AccountSID]:[AuthToken]]@api.twilio.com/2010-04-01/Accounts/[AccountSID]/Messages.json
  • Gebruik HTTP-methode:POST
  • Inhoudstype:application/x-www-form-urlencoded
  • Body:From=[YourTwilioPhonenumber]]&To=[PhoneNumber]&Body= covfefe!

Het sms-bericht covfefe! wordt elke keer dat op de knop wordt gedrukt verzonden.

5. Validatie

Druk stevig op de knop en wacht tot de butler je een drankje komt brengen!

Code

  • Arduino-broncode
Arduino-broncodeArduino
/* * @aureleq * * Beschrijving:Verzendt een Sigfox-bericht bij het indrukken van een knop * De knop moet standaard worden aangesloten tussen GND en pin 7 * Interrupts worden gebruikt om de energiebesparende modus in te schakelen. * Omdat het bord meestal in de slaapstand staat, moet een bordreset worden uitgevoerd om een ​​nieuwe schets te uploaden (dubbeltik op de resetknop)*/#include #include const uint8_t SWITCH_PIN =7;const String payload ="COKE NOW!";const uint8_t debug =false;void setup() {if (debug ==true) {Serial.begin(9600); terwijl (!Serial) {}; } if (!SigFox.begin()) { Serial.println("Schildfout of niet aanwezig!"); opbrengst; } // Schakel debug led in en schakel automatische diepe slaap uit // Reageer op deze regel bij verzending van uw project :) //SigFox.debug(); Serial.println ("Sigfox-schild gedetecteerd"); Tekenreeks-ID =SigFox.ID(); Serial.println("ID =" + ID); vertraging (100); // Stuur de module naar de diepste slaap SigFox.end(); // bevestig de schakelpin en schakel de onderbreking in bij spanningsstijging-gebeurtenis pinMode (SWITCH_PIN, INPUT_PULLUP); LowPower.attachInterruptWakeup (SWITCH_PIN, knop ingedrukt, RISING); // schakelaar is standaard gesloten, open wanneer u op de knop drukt}void loop(){ // Slaap totdat een gebeurtenis wordt herkend LowPower.sleep(); // als we hier komen, betekent dit dat een gebeurtenis is ontvangen Serial.println("Knop ingedrukt!"); vertraging (100); sendString(payload);}void sendString(String str) { // Start de module SigFox.begin(); // Wacht ten minste 30 mS na de eerste configuratie (100 mS ervoor) vertraging (100); // Wist alle wachtende interrupts SigFox.status(); vertraging(1); SigFox.beginPacket(); SigFox.print(str); int ret =SigFox.endPacket(); // stuur buffer naar SIGFOX-netwerk als (ret> 0) { Serial.println ("Geen verzending"); } else { Serial.println("Verzending ok"); } Serial.println(SigFox.status(SIGFOX)); Serial.println(SigFox.status(ATMEL)); SigFox.end();}void buttonPressed() {}
Github
https://github.com/aureleq/TrumpButton

Productieproces

  1. Knop
  2. Private area network bouwt voort op het openbare Sigfox-netwerk
  3. Licht dimmen met PWM met drukknop
  4. De waterdruppels vastleggen met Arduino
  5. Giftduino - De perfecte Arduino-geschenkdoos
  6. Een aanpasbare ponsbare toetsenbordknop maken
  7. Hoe de massa van de aarde te meten met Arduino
  8. De draagbare MAX30100-polssensor gebruiken met Arduino
  9. Bouw de Fridgeye-app met een Nextion-display
  10. De YL-39 + YL-69 bodemvochtigheidssensor gebruiken met Arduino
  11. Health Band - Een slimme assistent voor ouderen