Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Créez un Bouton d'Envoi de SMS à Distance avec Sigfox et Twilio

Composants et fournitures

Composant Quantité
Arduino MKR Fox 1200 1

Applications et services en ligne

À propos du projet

Introduction

Vous avez entendu parler du bouton utilisé par Trump pour commander un Diet Coke ? Nous avons décidé d'en créer une version améliorée grâce au réseau Sigfox. Il suffit d'un gros bouton poussoir, d'une carte Arduino MKR Fox 1200 et d'un compte Twilio pour envoyer le SMS.

Qu'est-ce que Sigfox ?

Sigfox fournit un réseau mondial, simple et économe en énergie pour l'Internet des objets. Disponible dans 32 pays, il complète les réseaux à haut débit en offrant une transmission bidirectionnelle de petites quantités de données sur de longues distances, à faible coût et consommation.

1. Matériel nécessaire

L'interrupteur est connecté entre la broche 7 et GND. Au repos, le contact est fermé. L'appui ouvre le contact (logique inversable dans le code).

Créez un Bouton d Envoi de SMS à Distance avec Sigfox et Twilio

2. Code Arduino

Le code complet est disponible sur GitHub : https://github.com/aureleq/TrumpButton

On utilise la bibliothèque ArduinoLowPower pour mettre la carte en veille profonde. Une interruption réveille la carte à l'appui du bouton :

const uint8_t SWITCH_PIN = 7;
const String payload = "COKE NOW!";
const uint8_t debug = false;

void setup() {
  if (debug) {
    Serial.begin(9600);
    while (!Serial);
  }
  if (!SigFox.begin()) {
    Serial.println("Erreur shield Sigfox !");
    return;
  }
  Serial.println("Shield Sigfox détecté");
  Serial.println("ID = " + SigFox.ID());
  delay(100);
  SigFox.end();  // Veille profonde
  
  pinMode(SWITCH_PIN, INPUT_PULLUP);
  LowPower.attachInterruptWakeup(SWITCH_PIN, buttonPressed, RISING);
}

void loop() {
  LowPower.sleep();  // Dort jusqu'à interruption
  Serial.println("Bouton appuyé !");
  delay(100);
  sendString(payload);
}

void sendString(String str) {
  SigFox.begin();
  delay(100);
  SigFox.status();
  delay(1);
  SigFox.beginPacket();
  SigFox.print(str);
  int ret = SigFox.endPacket();
  if (ret > 0) Serial.println("Échec transmission");
  else Serial.println("Transmission OK");
  SigFox.end();
}

void buttonPressed() { }  // Gestionnaire d'interruption vide

3. Configuration Twilio

  1. Créez un compte gratuit sur Twilio.
  2. Ajoutez un numéro vérifié (destinataire du SMS).
  3. Notez votre Numéro Twilio, Account SID et Auth Token.

4. Configuration du callback Sigfox

Dans le backend Sigfox (backend.sigfox.com) :

Paramètre Valeur
Type DATA UPLINK
Canal URL
URL https://[AccountSID]:[AuthToken]@api.twilio.com/2010-04-01/Accounts/[AccountSID]/Messages.json
Méthode HTTP POST
Content-Type application/x-www-form-urlencoded
Corps From=[VotreNuméroTwilio]&To=[NuméroDestinataire]&Body=covfefe!

Le message "covfefe!" sera envoyé à chaque appui.

5. Validation

Appuyez fermement sur le bouton et attendez que le majordome vous apporte une boisson !

Créez un Bouton d Envoi de SMS à Distance avec Sigfox et Twilio

Code source complet

/* 
 * @aureleq
 * Envoie un message Sigfox à l'appui d'un bouton
 * Bouton câblé entre GND et broche 7 (par défaut)
 * Utilise les interruptions pour le mode basse consommation
 * Double appui sur reset pour téléverser un nouveau sketch
 */
#include <SigFox.h>
#include <ArduinoLowPower.h>

const uint8_t SWITCH_PIN = 7;
const String payload = "COKE NOW!";
const uint8_t debug = false;

void setup() {
  if (debug) {
    Serial.begin(9600);
    while (!Serial);
  }
  if (!SigFox.begin()) {
    Serial.println("Shield error or not present!");
    return;
  }
  SigFox.debug();  // Commenter en production
  Serial.println("Sigfox shield detected");
  String ID = SigFox.ID();
  Serial.println("ID = " + ID);
  delay(100);
  SigFox.end();
  
  pinMode(SWITCH_PIN, INPUT_PULLUP);
  LowPower.attachInterruptWakeup(SWITCH_PIN, buttonPressed, RISING);
}

void loop() {
  LowPower.sleep();
  Serial.println("Button pushed!");
  delay(100);
  sendString(payload);
}

void sendString(String str) {
  SigFox.begin();
  delay(100);
  SigFox.status();
  delay(1);
  SigFox.beginPacket();
  SigFox.print(str);
  int ret = SigFox.endPacket();
  if (ret > 0) Serial.println("No transmission");
  else Serial.println("Transmission ok");
  Serial.println(SigFox.status(SIGFOX));
  Serial.println(SigFox.status(ATMEL));
  SigFox.end();
}

void buttonPressed() { }

GitHub : https://github.com/aureleq/TrumpButton

Processus de fabrication

  1. Le bouton : de la fixation antique à l'innovation moderne
  2. Sigfox lance réseau privé, améliore la géolocalisation et étend ses solutions IoT
  3. Contrôler la Luminosité de LEDs par PWM avec un Bouton Poussoir sur Arduino Mega
  4. Photographie Haute Vitesse : Capturez les Gouttes d'Eau avec Arduino Nano
  5. Giftduino : Boîte cadeau interactive Arduino pour makers et éducateurs
  6. Créer un bouton clavier personnalisé « frappable » avec Arduino : guide pas à pas
  7. Mesurer la masse de la Terre avec Arduino : Guide DIY étape par étape
  8. Intégrer le capteur de pouls MAX30100 avec Arduino : Guide complet
  9. Health Band : Bracelet intelligent fiable d'assistance pour personnes âgées