С появлением сотовой связи приобрели популярность различные системы передачи сообщений, использующие SMS сообщения. Данные сообщения достаточно просто рассылать подключив GSM модуль к какому-нибудь микроконтроллеру (или микроконтроллерной плате). Но по мере все большего распространения смартфонов обычные SMS сообщения стали постепенно отходить на второй план, их место заняли сообщения в различных мессенджерах, одним из наиболее популярным среди которых является приложение WhatsApp.
В данной статье мы рассмотрим передачу сообщений WhatsApp с помощью платы Arduino. Разумеется, с помощью только платы Arduino передавать сообщения WhatsApp невозможно, для этого ей будет необходима помощь платы Raspberry Pi или персонального компьютера с запущенным на них программным обеспечением Twilio Python API, но управлять этим процессом будет плата Arduino.
Примечание: вместо платы Arduino в данном проекте можно использовать плату Raspberry Pi или любую другую платформу с установленным на ней Python.
Также на нашем сайте вы можете посмотреть проекты, в которых осуществляется взаимодействие платы Raspberry Pi и приложения WhatsApp:
Необходимые компоненты
Аппаратное обеспечение
- Плата Arduino Uno (купить на AliExpress) (Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158).
- Датчик температуры (любой, который сможете подключить).
- Соединительные провода.
Программное обеспечение
- Twilio API for WhatsApp.
- Arduino IDE.
Настройка аккаунта Twilio
Мы будем использовать программное обеспечение Twilio API для передачи сообщений WhatsApp. Для этого выполните следующую последовательность шагов:
- Создайте аккаунт на сервисе www.twilio.com и подтвердите в нем номер своего мобильного телефона.
- Перейдите на вкладку SMS chatbot.
- Задайте имя для своего проекта.
- Откроется технологическая схема (flow chart), но поскольку мы будем использовать Twilio API для python, нам она будет не нужна. Вместо нее выберите программируемые (programmable) SMS.
- Выберите WhatsApp.
- Активируйте инструментарий WhatsApp зайдя в него.
- После этого вам будет предоставлен номер WhatsApp и код, с помощью которого вы будете передавать сообщения.
- Перейдите в консоль (console) и скопируйте там свой Account SID (идентификатор аккаунта) и auth token (токен авторизации).
Схема проекта
Схема проекта передачи сообщений WhatsApp с помощью Arduino представлена на следующем рисунке.
На схеме нарисована плата Arduino Diecimila, однако вместо нее вы можете использовать любую другую плату Arduino, соединения будут те же самые.
Объяснение программы
Вначале убедитесь в том, что язык программирования python установлен на вашем компьютере или плате Raspberry Pi. После этого в окне терминала или командной строки введите команду:
1 |
pip install twilio |
После этого вставьте ваши SID и auth token в код программы на python и запустите ее на выполнение.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# Download the helper library from https://www.twilio.com/docs/python/install from twilio.rest import Client # Your Account Sid and Auth Token from twilio.com/console account_sid = 'AC1d8ea8f74323a' auth_token = 'your_auth_token' client = Client(account_sid, auth_token) message = client.messages.create( body='Hello there!',from_='whatsapp:+14155238886', to='whatsapp:+15005550006') print(message.sid) |
После этого можно загружать приведенный ниже код программы в плату Arduino.
Исходный код программы (скетча)
Этот код программы считывает показания с датчика температуры и если они превышают норму (22 градуса), то передает их по последовательному каналу связи в компьютер или плату Raspberry Pi, которые с помощью приведенной выше программы на python передают сообщение в WhatsApp.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
int val; int tempPin = 0; void setup(){ Serial.begin(9600); } void loop(){ val = analogRead(tempPin); float mv = ( val/1024.0)*5000; float cel = mv/10;if(cel>=22.00) { Serial.println(cel); } delay(1000); } |