Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Botón Remoto de Mensajería con Sigfox y Twilio: Arduino MKR Fox 1200

Componentes y suministros

ComponenteCantidad
Arduino MKR Fox 1200 (con módem Sigfox integrado)1
Botón grande (pulsador)1
Batería LiPo o 2 pilas AA/AAA1
Interruptor pulsador (normalmente cerrado)1
Etiqueta thethings.io (opcional)1
Máscara de Trump (para la broma original)1

Aplicaciones y servicios online

Sobre el proyecto

Introducción

Todos hemos oído hablar del botón que usaba Trump para pedir una Diet Coke. Pensamos: "¡Podemos hacer una versión mejor con la red Sigfox!". Solo necesitas un botón grande, una placa Arduino MKR Fox 1200 y una cuenta Twilio para enviar el SMS.

¿Qué es Sigfox? Sigfox ofrece una red global, simple y eficiente energéticamente para IoT. Disponible en 32 países, complementa redes de alta banda ancha transmitiendo pequeños paquetes de datos a larga distancia con muy bajo consumo. Soportado por cientos de partners hardware.

1. Requisitos de hardware

El pulsador se conecta entre el pin 7 y GND. En estado normal el contacto está cerrado; al pulsar se abre. La lógica puede invertirse en el código.

Las imágenes muestran el montaje: botón, placa, batería y carcasa.

2. Código Arduino

El código completo está en GitHub: github.com/aureleq/TrumpButton

Usamos la librería ArduinoLowPower para dormir profundamente. Una interrupción despierta la placa y envía el mensaje Sigfox:

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("Error shield Sigfox"); return; }
  SigFox.end(); // Modo sueño profundo
  
  pinMode(SWITCH_PIN, INPUT_PULLUP);
  LowPower.attachInterruptWakeup(SWITCH_PIN, buttonPressed, RISING);
  // Contacto normalmente cerrado -> flanco ascendente al abrir
}

void loop() {
  LowPower.sleep(); // Duermen hasta interrupción
  Serial.println("¡Botón pulsado!");
  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("Sin transmisión");
  else Serial.println("Transmisión OK");
  SigFox.end();
}

void buttonPressed() { } // ISR vacía, solo despierta

3. Configuración de Twilio

  1. Regístrate gratis en twilio.com
  2. Añade tu número en "Verified Caller IDs" (destinatario del SMS)
  3. Anota: Phone Number, Account SID, Auth Token

4. Configuración del Callback en Sigfox Backend

  1. Accede a backend.sigfox.com y registra tu placa si no lo has hecho: activate
  2. Selecciona el Device Type de tu Arduino (en categoría Information)
  3. Crea un Custom Callback:

El mensaje "covfefe!" se enviará cada vez que se pulse el botón.

5. Validación

Pulsa firmemente el botón y espera a que el mayordomo te traiga la bebida. ¡Funciona!

Código fuente completo (Arduino)

/* Botón Sigfox + Twilio - por aureleq
 * Envía mensaje Sigfox al pulsar botón (pin 7-GND)
 * Usa interrupciones para modo bajo consumo.
 * Para subir nuevo sketch: doble tap en reset (entra en bootloader)
 */
#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.end(); // Deep sleep
  
  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() { }

Enlace al repositorio

https://github.com/aureleq/TrumpButton

Proceso de manufactura

  1. El Botón: De Sujetador Ancestral a Innovación Moderna
  2. Control de Brillo LED con PWM mediante Pulsador en Arduino Mega
  3. Captura Gotas de Agua en Acción con Arduino Nano: Fotografía de Alta Velocidad DIY
  4. Giftduino: El Set de Regalo Arduino Definitivo para Aficionados y Educadores
  5. Crea un Botón de Teclado Personalizado y "Apuñalable" con Arduino: Guía Paso a Paso
  6. Mide la masa de la Tierra con Arduino: Guía paso a paso DIY
  7. Integración del Sensor de Pulso MAX30100 con Arduino: Guía Paso a Paso
  8. Construye la App Fridgeye con una Pantalla Nextion: Guía Paso a Paso
  9. Guía Paso a Paso: Conectar Sensor de Humedad de Suelo YL-39/YL-69 a Arduino UNO
  10. Health Band: Asistente Inteligente Vestible para Personas Mayores
  11. Sigfox lanza red de área privada, mejora geolocalización y expande soluciones IoT