Нашел на просторах интернета очень интересный сервис – Teleduino.
Если у вас есть Ethernet шилд, то с помощью этого сервиса у вас есть возможность управлять Arduino из любой точки планеты.
Что же позволяет делать Teleduino:
- Reset, ping, узнать версию, узнать время работы вашего устройства, узнать объем свободной памяти.
- Установка состояний цифровых и аналоговых пинов, чтение цифровых и аналоговых пинов. Так же можно узнать состояние всех пинов одним вызовом API-функции.
- Работать с COM-портом (чтение/запись)
- Чтение и запись EEPROM
- Управлять шестью сервоприводами
- И многое другое….
Возможности практически ничем не ограничены. И делается это всё очень просто и быстро.
Ниже я опишу как сделать простой индикатор работы устройства, как получить и загрузить библиотеку/скетч Teleduino на Arduino.
Нам понадобятся:
- Arduino Uno (или аналог)
- Ethernet Sheild
- Светодиод
- Ограничительный резистор для светодиода
Для того чтобы однозначно идентифицировать устройство на сервере Teleduino, вам необходимо получить уникальный API-ключ.
Ключ можно получить на этой странице: https://www.teleduino.org/tools/request_key.php
После заполнения формы, ключ должен придти на указанный e-mail. Запоминаем, далее его нужно будет вставить в скетч.
Подключаем индикатор состояния
После включения Arduino, светодиод будет отображать текущее состояние (статус):
Количество миганий / Статус
1 / Инициализация
2 / Запуск сети
3 / Подключение к серверу
4 / Аутентификация
5 / Сессия уже существует для такого API-ключа (иногда случается после быстрой перезагрузки, нужно немного подождать)
6 / Неверный API-ключ
7 / Подключение разорвано
Индикатор состояния предварительно настроен на цифровой вывод 8 Arduino. Подключаем светодиод к этому пину:
Скачиваем и устанавливаем библиотеки Teleduino
Teleduino поставляется в виде библиотеки для Arduino IDE. Библиотека написана для версий IDE 1.0 и 1.0.1 (последняя версия на момент написания статьи).
Скачать библиотеку Teleduino можно по этой ссылке.
После загрузки, откройте архив и вы увидите папку под названием «Teleduino328″. Скопируйте эту папку в папку «libraries» в каталоге c установленной Arduino IDE.
Самое интересное…
Запускаем Arduino IDE. Открываем пример: Examples -> Teleduino328 -> TeleduinoEthernetClientProxy
В начале скетча вы уведите несколько переменных для конфигурирования сети. Рекомендуется изменить MAC адрес. Это уникальный адрес устройства и в вашей сети он не должен совпадать. Если будете использовать несколько Teleduino устройств обязательно делайте эти адреса разными.
Так же обязательно нужно настроить API-ключ (как его получить написано в начале урока). По умолчанию он состоит из множества нулей.
После указания настроек сети и ввода API-ключа, компилируем и загружаем скетч в Ардуино.
Примеры вызова API
После подключения Ардуино к сети можно с помощью индикатора наблюдать за ходом подключения к серверу Teleduino. После успешного подключения, светодиод будет однократно моргать каждые 5 секунд.
Вот и все. Теперь можно открыть браузер выполнять команды через адресную строку. Давайте попробуем узнать версию и время безотказной работы нашего устройства.
Узнать версию:
https://us01.proxy.teleduino.org/api/1.0/328.php?k={API-ключ}&R=GetVersion
Время работы:
https://us01.proxy.teleduino.org/api/1.0/328.php?k={API-ключ}&R=getUptime
Давайте теперь посмотрим как управлять состоянием выводов
Возьмите ещё один светодиод и подключите его к третему пину (pin 3). Подключаем именно к этому выводу, так как он имеет ШИМ (PWM). Мы сможем управлять подаваемым на светодиод напряжением, то есть регулировать яркость.
Сначала нужно инициализировать цифровой выход (pin 3). Это делается один раз при загрузке устройства:
http://us01.proxy.teleduino.org/api/1.0/328.php?k={API-ключ}&r=definePinMode&pin=3&mode=1
‘pin=3′ — номер вывода, ‘mode=1′ — значит что будем использовать этот пин как выход (OUTPUT)
Теперь можно установить pin3 в высокий уровень (HIGH)
http://us01.proxy.teleduino.org/api/1.0/328.php?k={API-ключ}&r=setDigitalOutput&pin=3&output=1
‘output=1′ значит HIGH
Соответственно, поменяв значение «output=1″ на «output=0″ на pin 3 не будет подаваться напряжение => светодиод потухнет:
http://us01.proxy.teleduino.org/api/1.0/328.php?k={API-ключ}&r=setDigitalOutput&pin=3&output=0
Что бы задать значение ШИМ необходим такой запрос:
http://us01.proxy.teleduino.org/api/1.0/328.php?k={API-ключ}&r=setPwmOutput&pin=3&output=32
‘output=32′ — значение ШИМ (может быть от 0 до 255)
Как видите, все очень просто.
|