Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Удалённая кнопка SMS-уведомлений на Sigfox и Twilio

Компоненты и материалы

КомпонентКоличество
Arduino MKR Fox 12001

Приложения и сервисы

О проекте

Введение

Все слышали про кнопку Трампа для заказа Diet Coke? Мы решили сделать улучшенную версию на сети Sigfox. Нужен: крупная кнопка, Arduino MKRFox1200, аккаунт Twilio для отправки SMS.

Что такое Sigfox? Глобальная, простая и энергоэффективная сеть для IoT. Доступна в 32 странах. Дополняет высокоскоростные сети, обеспечивая дешёвую двухстороннюю передачу малых объёмов данных на большие расстояния. Поддерживается сотнями партнёров.

1. Аппаратные требования

Кнопка подключена к пинам 7 и GND. В нормальном состоянии контакты замкнуты, при нажатии — размыкаются. Логику можно инвертировать в коде.

Удалённая кнопка SMS-уведомлений на Sigfox и Twilio

2. Код Arduino

Полный код на GitHub: github.com/aureleq/TrumpButton

Используется библиотека низкого потребления для глубокого сна. Прерывание пробуждает плату и отправляет сообщение в 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("Shield error!"); return; }
  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");
  SigFox.end();
}

void buttonPressed() { } // обработчик прерывания

3. Настройка Twilio

  1. Зарегистрируйтесь бесплатно на twilio.com.
  2. Добавьте номер получателя в «Verified Caller IDs».
  3. Запишите: Phone Number, Account SID, Auth Token.

4. Настройка Callback в Sigfox Backend

  1. Войдите в backend.sigfox.com. Активируйте плату, если нужно: activate.
  2. Выберите Device Type вашего устройства.
  3. Создайте Custom Callback:
    • Type: DATA UPLINK
    • Channel: URL
    • URL pattern: https://[AccountSID]:[AuthToken]@api.twilio.com/2010-04-01/Accounts/[AccountSID]/Messages.json
    • HTTP Method: POST
    • Content-Type: application/x-www-form-urlencoded
    • Body: From=[YourTwilioNumber]&To=[DestinationNumber]&Body=covfefe!

Текст «covfefe!» будет приходить при каждом нажатии.

5. Проверка

Нажмите кнопку крепко и ждите, пока дворецкий принесёт напиток! 😄

Удалённая кнопка SMS-уведомлений на Sigfox и Twilio

Исходный код (GitHub)

/* @aureleq
 * Отправка Sigfox-сообщения при нажатии кнопки.
 * Кнопка между GND и пином 7. Прерывания для низкого потребления.
 * Для загрузки нового скетча — двойной тап по Reset.
 */
#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; }
  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

Производственный процесс

  1. Пуговица: от древней застежки к современной инновации
  2. Sigfox запускает частную сеть (PAN), улучшает геолокацию и расширяет IoT-решения
  3. Управление яркостью LED с ШИМ через кнопку на Arduino Mega
  4. Высокоскоростная фотография капель воды на Arduino Nano — DIY-триггер для вспышки
  5. Giftduino: идеальный набор Arduino для подарков — проект для хоббистов и педагогов
  6. Создание настраиваемой «бьющейся» клавиши на Arduino: пошаговое руководство
  7. Измерение массы Земли с Arduino: пошаговое руководство по DIY
  8. Подключение датчика пульса MAX30100 к Arduino: Пошаговое руководство
  9. Создание приложения Fridgeye с дисплеем Nextion: пошаговое руководство
  10. Health Band: умный браслет для мониторинга пожилых людей на Arduino Nano и DPS310