Der Trump-Button
Komponenten und Verbrauchsmaterialien
| × | 1 |
Apps und Onlinedienste
| ||||
|
Über dieses Projekt
Einführung
Wir alle haben von dem Knopf gehört, mit dem Trump eine Diät-Cola bestellt hat, oder? (http://time.com/4758059/donald-trump-coke-nuclear-button/)
Wir dachten, wir könnten eine bessere Version mit dem Sigfox-Netzwerk erstellen. Alles, was Sie brauchen, ist ein sperriger Knopf, ein Arduino MKRFox1200-Board und ein Twilio-Konto, um die SMS zu senden.
Was ist Sigfox?
Sigfox bietet ein globales, einfaches und energieeffizientes Netzwerk für das Internet der Dinge. Das Sigfox-Netzwerk ist derzeit in 32 Ländern verfügbar oder wird ausgerollt. Das Netzwerk ergänzt bestehende Systeme mit hoher Bandbreite, indem es eine kostengünstige, stromsparende Zwei-Wege-Übertragung kleiner Datenmengen über große Entfernungen ermöglicht. Die Sigfox-Technologie wird von Hunderten von Hardware- und Lösungspartnern unterstützt.
1. Hardwareanforderungen
- Arduino MKRFox1200
- Ein großer Knopf
- LiPo-Akku oder 2xAA/AAA-Batterien
- Ein Druckknopfschalter
- thethings.io-Aufkleber
- Und natürlich eine Trump-Maske
Wir verwenden einen Druckknopfschalter, der mit den Pins 7 und GND des Arduino verbunden ist. Im Normalzustand ist der Schalter geschlossen. Beim Drücken des Knopfes öffnet er den Schalter. Der Schaltzustand kann im Arduino-Code einfach umgekehrt werden.
2. Arduino-Code
Sie können den Arduino-Code auf GitHub abrufen:https://github.com/aureleq/TrumpButton
Wir verwenden die Low-Power-Library, um das Board in den Tiefschlaf zu versetzen. Ein Interrupt wird verwendet, um das Board aufzuwecken und eine Sigfox-Nachricht zu senden:
// Schaltstift anfügen und Interrupt bei Spannungsanstieg aktivieren pinMode (SWITCH_PIN, INPUT_PULLUP); LowPower.attachInterruptWakeup(SWITCH_PIN, buttonPressed, RISING); // Schalter ist standardmäßig geschlossen, öffnet beim Drücken der Tastevoid loop () { // Sleep bis ein Ereignis erkannt wird LowPower.sleep (); // Wenn wir hierher kommen, bedeutet dies, dass ein Ereignis empfangen wurde Serial.println("Button gedrückt!"); Verzögerung (100); sendString(payload);}
3. Twilio
- Melden Sie sich hier kostenlos an
- Fügen Sie eine neue Nummer in den "Bestätigten Anrufer-IDs" hinzu (Telefonnummer, um die Benachrichtigung zu erhalten)
- Notieren Sie sich Ihre generierte Twilio Telefonnummer , KONTO-SID und Auth-TOKEN:
4. Sigfox Callback-Konfiguration
- Verbinden Sie sich mit Ihrem Sigfox-Backend-Konto. Wenn Sie Ihr Arduino-Board nicht registriert haben, können Sie es hier aktivieren:https://backend.sigfox.com/activate/
- Wählen Sie den Gerätetyp Ihres Arduino-Geräts. Link zum Gerätetyp ist unter den Informationen verfügbar Kategorie.
Erstellen Sie einen neuen benutzerdefinierten Rückruf mit den folgenden Parametern:
- Typ:
DATEN-UPLINK
- Kanal:
URL
- URL-Muster:
https://[AccountSID]:[AuthToken]]@api.twilio.com/2010-04-01/Accounts/[AccountSID]/Messages.json
- HTTP-Methode verwenden:
POST
- Inhaltstyp:
application/x-www-form-urlencoded
- Body:
From=[YourTwilioPhonenumber]]&To=[PhoneNumber]&Body=
covfefe!
Die SMS covfefe! wird jedes Mal gesendet, wenn die Taste gedrückt wird.
5. Validierung
Drücke fest auf den Knopf und warte, bis der Butler dir ein Getränk bringt!
Code
- Arduino-Quellcode
Arduino-QuellcodeArduino
/* * @aureleq * * Beschreibung:Sendet eine Sigfox-Nachricht beim Drücken einer Taste * Die Taste muss standardmäßig zwischen GND und Pin 7 verdrahtet sein * Interrupts werden verwendet, um den Energiesparmodus zu aktivieren. * Da sich das Board die meiste Zeit im Ruhemodus befindet, muss ein Board-Reset durchgeführt werden, um eine neue Skizze hochzuladen (Doppeltippen Sie auf die Reset-Schaltfläche)*/#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); while (!Seriell) {}; } if (! SigFox.begin ()) { Serial.println ( "Schildfehler oder nicht vorhanden!"); Rückkehr; } // Debug-LED aktivieren und automatischen Tiefschlaf deaktivieren // Diese Zeile kommentieren, wenn Sie Ihr Projekt versenden :) //SigFox.debug(); Serial.println ( "Sigfox-Schild erkannt"); String-ID =SigFox.ID(); Serial.println("ID =" + ID); Verzögerung (100); // Senden Sie das Modul an den tiefsten Schlaf SigFox.end(); // Schaltstift anbringen und den Interrupt bei Spannungsanstieg aktivieren PinMode (SWITCH_PIN, INPUT_PULLUP); LowPower.attachInterruptWakeup(SWITCH_PIN, buttonPressed, RISING); // Schalter ist standardmäßig geschlossen, öffnet beim Drücken der Taste}void loop(){ // Sleep bis ein Ereignis erkannt wird LowPower.sleep(); // Wenn wir hierher kommen, bedeutet dies, dass ein Ereignis empfangen wurde Serial.println("Button gedrückt!"); Verzögerung (100); sendString(payload);}void sendString(String str) { // Starten Sie das Modul SigFox.begin(); // Warten Sie mindestens 30 ms nach der ersten Konfiguration (100 ms vorher) delay (100); // Löscht alle anstehenden Interrupts SigFox.status(); Verzögerung (1); SigFox.beginPacket(); SigFox.print(str); int ret =SigFox.endPacket(); // Puffer an SIGFOX-Netzwerk senden if (ret> 0) { Serial.println ( "Keine Übertragung"); } else {Serial.println ( "Übertragung ok"); } Serial.println (SigFox.status (SIGFOX)); Serial.println (SigFox.status (ATMEL)); SigFox.end();}void buttonPressed() {}
Github
https://github.com/aureleq/TrumpButtonHerstellungsprozess
- Schaltfläche
- Private Area Network baut auf dem öffentlichen Sigfox-Netzwerk auf
- Dimmen von Lichtern mit PWM über Drucktasten
- Einfangen der Wassertropfen mit Arduino
- Giftduino - Die perfekte Arduino-Geschenkbox
- So erstellen Sie eine anpassbare stanzbare Tastaturtaste
- So misst man die Masse der Erde mit Arduino
- Verwenden des tragbaren Pulssensors MAX30100 mit Arduino
- Erstellen Sie die Fridgeye-App mit einem Nextion-Display
- Health Band - Ein intelligenter Assistent für ältere Menschen