ESP8266:Примеры/Как запросить курс биткоина при помощи ESP8266

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 1848 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Как запросить курс биткоина при помощи ESP8266[1]

Эта статья рассказывает, как создать простой HTTP-клиент на базе WiFi-модуля ESP8266. Этот клиент будет подключаться к сети и запрашивать информацию о курсе биткоина. Другими словами, это пример того, как извлекать из глобальной сети какие-то данные.

Esp8266 Retrieving Bitcoin Price Using ESP8266 WiFi Module 1.jpg

Перед тем, как продолжить, рекомендую пройти вот эти руководства:

Загрузка прошивки NodeMCU на ESP8266

NodeMCU – это прошивка, позволяющая программировать модули ESP8266 скриптами формата LUA, и это очень похоже на программирование Arduino. Скрипты NodeMCU, как и скетчи для Arduino, позволяют настроить WiFi-соединение, управлять GPIO-контактами, превратить ESP8266 в веб-сервер и многое другое. О том, как загрузить на ESP8266 прошивку NodeMCU, читайте тут.

Схема для подключения к 3,3-вольтовому программатору

Чтобы загружать скрипты на ESP8266, между ним и программатором FTDI нужно установить последовательное соединение. Вот так выглядит распиновка ESP8266:

Esp8266 pinout Retrieving Bitcoin Price Using ESP8266 WiFi Module 2.png

Чтобы подсоединить ESP8266 и программатор, нужно подключить друг к другу следующие контакты:

  • Контакт RX на ESP8266 – к контакту TX на программаторе FTDI
  • Контакт TX – к контакту RX
  • Контакт CH_PD – к контакту 3.3V
  • Контакт VCC – к контакту 3.3V
  • Контакт GND – к контакту GND
ESP-Retrieving Bitcoin Price Using ESP8266 WiFi Module 3.png

Загрузка ESPlorer IDE

Для записи LUA-файлов на ESP8266 рекомендую использовать программу ESPlorer IDE, написанную пользователем 4refr0nt. Чтобы скачать и установить ESPlorer IDE, проделайте следующее:

  1. Кликните здесь, чтобы загрузить ZIP-архив с ESPlorer IDE
  2. Распакуйте ZIP-архив
  3. Пройдите в папку «dist» (она находится по маршруту «ESPlorer-master\ESPlorer\dist»)
  4. Запустите файл «ESPlorer.jar». Это программа на JAVA, поэтому JAVA должна быть установлена на вашем компьютере.
  5. Откройте ESplorer IDE

В результате должно открыться вот такое окно:

Esplorer-start Retrieving Bitcoin Price Using ESP8266 WiFi Module 4.png

Как отправлять команды на ESP8266

Открыв ESPlorer IDE, проделайте следующее:

  1. Подключите программатор FTDI к компьютеру
  2. Выберите порт, к которому подключен программатор FTDI (например, COM8)
  3. Нажмите кнопку «Open/Close»
  4. Выберите вкладку «NodeMCU+MicroPython»
  5. Скопируйте в ESPlorer IDE скрипт, показанный ниже

Примечание: Впишите во вторую строчку данные, соответствующие вашей сети.

  1. wifi.setmode(wifi.STATION)
  2. wifi.sta.config("YOUR_NETWORK_NAME","YOUR_NETWORK_PASSWORD")
  3. print(wifi.sta.getip())
  4. conn=net.createConnection(net.TCP, 0)
  5. conn:on("receive", function(conn, payload) print(payload) end )
  6. conn:connect(80,"api.coindesk.com")
  7. conn:send("GET /v1/bpi/currentprice.json HTTP/1.1\r\nHost: api.coindesk.com\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n")

Затем просто нажмите на кнопку «Save to ESP». После этого в правой части ESPlorer IDE должен курс биткоина и другая информация. Все элементы ESPlorer IDE, необходимые для этих действий и содержащие нужные данные, выделены на картинке ниже красным цветом:

Esplorer Retrieving Bitcoin Price Using ESP8266 WiFi Module 5.png

Извлеченные данные

Доступ к данным, которые запрашивает ESP8266, можно получить и через браузер – вот они. Это курс биткоина в американских долларах, фунтах стерлингов и евро:

{"time":{"updated":"May 16, 2017 13:11:00 UTC","updatedISO":"2017-05-16T13:11:00+00:00","updateduk":"May 16, 2017 at 14:11 BST"},"disclaimer":"This data was produced from the CoinDesk Bitcoin Price Index (USD). Non-USD currency data converted using hourly conversion rate from openexchangerates.org","chartName":"Bitcoin","bpi":{"USD":{"code":"USD","symbol":"$","rate":"1,705.9225","description":"United States Dollar","rate_float":1705.9225},"GBP":{"code":"GBP","symbol":"£","rate":"1,322.6256","description":"British Pound Sterling","rate_float":1322.6256},"EUR":{"code":"EUR","symbol":"€","rate":"1,539.9823","description":"Euro","rate_float":1539.9823}}}

Возможные проблемы

Иногда ESP8266 не успевает отправить HTTP-запрос, когда вы нажимаете на кнопку «Send to ESP», и в итоге никаких данных не извлекает. В этом случае можно воспользоваться функцией «Send current line to ESP8266». Она отправляет строчки скрипта не сразу, а поочередно.

Send current line Retrieving Bitcoin Price Using ESP8266 WiFi Module 6.png

Что дальше

Итак, мы научились извлекать данные о курсе биткоина, но это кажется не слишком нужным и полезным, верно? Нет! Потому что при помощи ESP8266 из сети можно извлекать совершенно разную информацию. К примеру, данные о погоде или финансах, спортивную статистику и т.д. Просто поищите в интернете «weather api», «finances api» и т.д.

См.также

Внешние ссылки

  1. randomnerdtutorials.com - Retrieving Bitcoin Price Using ESP8266 WiFi Module