В мире интернета вещей важной функцией является возможность получать уведомления о состоянии устройств в реальном времени. Одним из популярных способов отправки таких уведомлений является использование мессенджеров, благодаря их широкому распространению и возможности использования на множестве устройств. В этой статье мы рассмотрим, как настроить ESP32 для отправки уведомлений на WhatsApp.
Как зарегистрировать бота в WhatsApp
Для отправки сообщений с ESP32 на ваш аккаунт WhatsApp мы воспользуемся бесплатным сервисом CallMeBot. Этот сервис позволяет отправить сообщение самому себе через WhatsApp. Прежде чем начать использовать бот, вам потребуется получить ключ API от CallMeBot. Следуйте инструкциям ниже:
- Добавьте номер телефона +34 644 45 70 57 в список контактов на вашем телефоне и дайте ему любое имя.
- Отправьте новому контакту сообщение: «I allow callmebot to send me messages» (через WhatsApp).
- Дождитесь сообщения от бота, подтверждающего активацию API для вашего номера телефона. В сообщении будет указан ваш уникальный API-ключ.
Если вам не удалось получить ключ API в течение двух минут, рекомендуется повторить попытку через 24 часа. Уведомление от бота содержит уникальный ключ, необходимый для отправки сообщений через API.
Как работает CallMeBot API
Чтобы отправить сообщение с помощью CallMeBot API, необходимо выполнить POST-запрос по указанному ниже URL-адресу:
https://api.callmebot.com/whatsapp.php?phone=[номер телефона]&text=[сообщение]&apikey=[ваш ключ API]
- [номер телефона] – это номер телефона, связанный с вашим аккаунтом WhatsApp в международном формате.
- [сообщение] – это текст сообщения, который должен быть закодирован в формате URL.
- [ваш ключ API] – это ключ API, который вы получили на предыдущем шаге при активации CallMeBot.
Необходимые библиотеки для Arduino IDE
Чтобы передать сообщение, необходимо закодировать его в формате URL. Этот формат конвертирует символы в формат, подходящий для передачи данных через Интернет. Для этого мы воспользуемся библиотекой UrlEncode.
Откройте меню Sketch и выберите пункт Include Library. Найдите библиотеку URLEncode от Masayuki Sugahara, как показано на изображении и установите её.
Пример кода
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
#include <WiFi.h> #include <HTTPClient.h> #include <UrlEncode.h> // Замените учетные данные на название вашей Wi-Fi сети и ваш пароль const char* ssid = "Замените на свое название сети"; const char* password = "Замените на свой пароль"; // Замените на ваш номер телефона в международном формате, например, +79950001111 String phone_number = "Замените на свой номер"; // Замените на ваш токен, который был получен ранее String api_key = "Замените на свой токен"; HTTPClient http; void sendMessage(String message) { // Собираем URL адрес для отправки POST запроса String url = "https://api.callmebot.com/whatsapp.php?phone=" + phone_number + "&apikey=" + api_key + "&text=" + urlEncode(message); http.begin(url); http.addHeader("Content-Type", "application/x-www-form-urlencoded"); // Отправляем запрос int http_response_code = http.POST(url); if (http_response_code == 200) { Serial.print("Сообщение отправлено"); } else { Serial.println("Ошибка, сообщение не отправлено"); Serial.print("Код ошибки: "); Serial.println(http_response_code); } http.end(); } void setup() { Serial.begin(115200); WiFi.begin(ssid, password); Serial.println("Подключение к WiFi"); while(WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.print("Подключение успешно, ip="); Serial.println(WiFi.localIP()); // Отправляем сообщение в WhatsApp sendMessage("Привет от ESP!"); } void loop() { } |
Теперь у вас есть рабочий пример отправки уведомлений на WhatsApp с помощью ESP32 и CallMeBot WhatsApp API. Этот метод является удобным и простым способом интеграции мессенджера в различные IoT-системы. Мы надеемся, что эта статья поможет вам успешно настроить отправку уведомлений на WhatsApp для ваших проектов!