Монк - Программируем Arduino. Профессиональная работа со скетчами.

Тут можно читать онлайн Монк - Программируем Arduino. Профессиональная работа со скетчами. - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом Питер, год 2017. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Программируем Arduino. Профессиональная работа со скетчами.
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом Питер
  • Год:
    2017
  • Город:
    СПб.
  • ISBN:
    978-5-496-02385-6
  • Рейтинг:
    5/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Монк - Программируем Arduino. Профессиональная работа со скетчами. краткое содержание

Программируем Arduino. Профессиональная работа со скетчами. - описание и краткое содержание, автор Монк, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Arduino — стандартный микроконтроллер, получивший широкое признание у инженеров, мастеров и преподавателей благодаря своей простоте, невысокой стоимости и большому разнообразию плат расширения. Платы расширения, подключаемые к основной плате Arduino, позволяют выходить в Интернет, управлять роботами и домашней автоматикой.
Простые проекты на основе Arduino не вызывают сложностей в реализации. Но, вступив на территорию, не охваченную вводными руководствами, и увеличивая сложность проектов, вы быстро столкнетесь с проблемой нехватки знаний — врагом всех программистов.
Эта книга задумана как продолжение бестселлера «Programming Arduino: Getting Started with Sketches». Несмотря на то что эта книга включает краткое повторение основ из книги «Programming Arduino», она познакомит читателя с более продвинутыми аспектами программирования плат Arduino.

Программируем Arduino. Профессиональная работа со скетчами. - читать онлайн бесплатно полную версию (весь текст целиком)

Программируем Arduino. Профессиональная работа со скетчами. - читать книгу онлайн бесплатно, автор Монк
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Analog Inputs

A0 0.58 V
A1 0.63 V
A2 0.60 V
A3 0.65 V
A4 0.60 V

Output Pins



Pin 3 Off On

Pin 4 Off On

Pin 5 Off On

Pin 6 Off On

Pin 7 Off On

value='Update'/>

Увидеть этот код можно, воспользовавшись функцией View Source (Исходный код страницы) в браузере.

Использование веб-службы JSON

Для иллюстрации возможности отправки веб-запросов из платы Arduino внешним веб-сайтам я воспользуюсь веб-службой, возвращающей данные о погоде в определенном географическом пункте. Плата будет выводить краткое описание погоды в монитор последовательного порта (рис. 12.6). Описываемый скетч посылает запрос один раз в момент запуска, но его нетрудно изменить, чтобы он запрашивал погоду каждый час и выводил результаты на двухстрочный жидкокристаллический дисплей.

Рис 126Получение информации о погоде от вебслужбы Скетч для этого примера - фото 82

Рис. 12.6.Получение информации о погоде от веб-службы

Скетч для этого примера получился очень коротким, всего 45 строк кода (sketch_12_03_web_request). Наибольший интерес для нас представляет функция hitWebPage:

void hitWebPage()

{

if (client.connect("api.openweathermap.org", 80))

{

client.println("GET /data/2.5/weather?q=Manchester,uk HTTP/1.0");

client.println();

while (client.connected())

{

if (client.available())

{

client.findUntil("description\":\"", "\0");

String description = client.readStringUntil('\"');

Serial.println(description);

}

}

client.stop();

}

}

Прежде всего необходимо подключить клиента к порту 80 сервера. Если соединение благополучно установлено, серверу посылается заголовок запроса:

client.println("GET /data/2.5/weather?q=Manchester,uk HTTP/1.0");

Дополнительная команда println нужна, чтобы отметить конец заголовка запроса и побудить сервер прислать ответ.

Далее в цикле while инструкция if проверяет получение данных от сервера, пока соединение с ним не закрыто. Непосредственное чтение данных из потока помогает избежать необходимости сохранять все данные в памяти. Данные поступают в формате JSON:

{"coord":{"lon":-2.23743,"lat":53.480949},

"sys":{"country":"GB","sunrise":1371094771,

"sunset":1371155927},"weather":[{"id":520, "main":"Rain",

"description":"light intensity shower rain", "icon": "09d"}]

"humidity":87,"temp_min":283.15,"temp_max":285.93},

"wind":{"speed:5.1,"deg":270},"rain":{"1h":0.83},

"clouds":{"all":40},"dt":1371135000,"id":3643123,

"name":"Manchester","cod":200}

Функция hitWebPage с помощью функций findUntil и readStringUntil извлекает фрагмент текста, следующий за словом «description», с двоеточием и двойной кавычкой до следующей двойной кавычки.

Функция findUntil просто игнорирует все, пока не встретит указанную строку. Затем функция readStringUntil читает текст из потока, пока не встретит двойную кавычку.

Библиотека WiFi

Библиотека WiFi, как можно было ожидать, очень похожа на библиотеку Ethernet. Если в скетче заменить Ethernet на WiFi, EthernetServer на WiFiServer и EthernetClient на WiFiClient, остальной код останется почти неизменным.

Создание соединения

Главное отличие библиотеки WiFi от Ethernet заключается в подключении к сети. Прежде всего нужно импортировать библиотеку WiFi:

#include

#include

Чтобы установить соединение с сетью, следует вызвать команду WiFi.begin и передать ей имя беспроводной сети и пароль:

WiFi.begin("MY-NETWORK-NAME", "mypassword");

Пример в разделе «Пример использования WiFi» иллюстрирует еще одно отличие, о котором вы должны знать.

Особые функции в библиотеке WiFi

Библиотека WiFi включает несколько специальных функций. Они перечислены в табл. 12.1.

Полное описание библиотеки WiFi можно найти по адресу http://arduino.cc/en/Reference/WiFi [11] Перевод на русский язык: http://arduino.ua/ru/prog/WiFi . — Примеч. пер. .

Таблица 12.1.Специальные функции в библиотеке WiFi

Функция Описание
WiFi.config Позволяет установить статические IP-адреса платы, сервера имен (DNS) и шлюза
WiFi.SSID Возвращает строку идентификатора беспроводной сети SSID
WiFi.RSSI Возвращает значение мощности сигнала типа long
WiFi.encriptionType Возвращает числовой код, соответствующий методу шифрования
WiFi.scanNetworks Возвращает количество найденных сетей, но никакой дополнительной информации о них не возвращается
WiFi.macAddress Помещает MAC-адрес адаптера WiFi в шестибайтный массив, переданный как параметр

Пример использования WiFi

Для этого примера я изменил скетч sketch_12_02_server, адаптировав его для работы с платой расширения WiFi. Полный исходный код можно найти в скетче sketch_12_04_server_wifi. Я не буду повторять пример целиком, только отмечу отличия от оригинальной версии.

Чтобы подключиться к беспроводной точке доступа, нужно указать имя беспроводной сети и пароль:

char ssid[] = "My network name"; // имя сети (SSID)

char pass[] = "mypassword"; // пароль для доступа к сети

Также нужно изменить имена классов сервера и клиента, EthernetServer и EthernetClient, на WiFiServer и WiFiClient:

WiFiServer server(80);

WiFiClient client;

При определении объекта сервера все так же требуется указать номер порта 80.

Следующее ракзличие между двумя платами заключается в инициализации подключения. В данном случае должна использоваться команда

WiFi.begin(ssid, pass);

Прочий код остался почти без изменений. В функции loop вы увидите команду delay(1) перед остановкой клиента, она дает клиенту время завершить чтение до того, как соединение будет закрыто. В версии на основе библиотеки Ethernet такая задержка не нужна. Обратите также внимание на то, что кое-где я объединил несколько вызовов client.print в один, чтобы каждый вызов выводил более длинные строки. Этот прием увеличивает скорость взаимодействий, потому что плата WiFi крайне неэффективно обрабатывает короткие строки. Но не забывайте, что каждый отдельный вызов client.print или client.println не может обрабатывать строки длиннее 90 байт — они просто не будут отправлены.

Версия программы на основе библиотеки WiFi работает заметно медленнее версии на основе библиотеки Ethernet и тратит на загрузку около 45 секунд. Плата расширения WiFi поддерживает возможность изменения прошивки, и если в будущем разработчики Arduino повысят эффективность работы платы WiFi, вам определенно стоит подумать об обновлении прошивки в своей плате расширения. Инструкции по прошивке платы WiFi можно найти на странице http://arduino.cc/en/Main/ArduinoWiFiShield.

В заключение

В этой главе мы познакомились с разными способами подключения платы Arduino к сети и выполнения некоторых сетевых операций с использованием плат расширения Ethernet и WiFi. Здесь вы также узнали, как использовать Arduino в качестве веб-сервера и веб-клиента.

В следующей главе вы познакомитесь с цифровой обработкой сигналов (Digital Signal Processing, DSP) с помощью Arduino.

13. Цифровая обработка сигналов

Плата Arduino способна выполнять простую обработку сигналов. В этой главе обсуждаются разные способы такой обработки, от фильтрации сигнала, поступающего на аналоговый вход, с применением программного обеспечения вместо внешних электронных устройств до вычисления относительной величины различных частотных сигналов с применением быстрого преобразования Фурье.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Монк читать все книги автора по порядку

Монк - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Программируем Arduino. Профессиональная работа со скетчами. отзывы


Отзывы читателей о книге Программируем Arduino. Профессиональная работа со скетчами., автор: Монк. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x