Съдържание:
- Стъпка 1: Изградете
- Стъпка 2: Код
- Стъпка 3: Свържете се с HTTPS уебсайт
- Стъпка 4: Направете POST / GET заявки
- Стъпка 5: JSON & NOKIA LCD
Видео: Свързан хронометър: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Здравейте! В този урок ще разберете как да свържете всяко съвместимо с Arduino устройство, оборудвано с WiFi, към REST API! Това използва уеб приложението GitKraken Glo Board за създаване на табла, колони и карти за организиране на неща!
Необходими са известни познания за това как работи публичният API. Този проект е предназначен да използва приложния програмен интерфейс на GitKraken Glo за проследяване на времето, което отделяте за задачи в списъците си със задачи.
Например, трябва да изпълните тези задачи:
- Пия кафе
Натискате старт, когато започнете, когато приключите, натискате Готово, и voilà, времето, което прекарвате, се коментира.
Стъпка 1: Изградете
За да изградите, можете да мислите за всичко. Малък хронометър би бил чудесен, но не направих нищо дребно.
Така че картонените и аркадни бутони бяха пътят!
Платката, която използвах, е ESP8266 WeMos D1 Mini. Това е по -евтино от Arduino и има WiFi на борда!
Екранът е Nokia 5110 LCD.
н
Списък на частите на AliExpress:
- Nokia 5110
- 2 аркадни бутона
- ESP8266
- Кабелни проводници
- Картонена кутия
Но по принцип можете да го намерите навсякъде или на други уебсайтове като Amazon или eBay.
Обща сметка: 5 € 86
Щифтови връзки:
ESP8266 WeMos D1 Mini, Nokia 5110 LCD
- D2 (GPIO4) ↔ 0 RST
- D1 (GPIO5) ↔ 1 CE
- D6 (GPIO12) ↔ 2 DC
- D7 (GPIO13) ↔ 3 DIN
- D5 (GPIO14) ↔ 4 CLK
- 3V3, 5 VCC
- D0 (GPIO16) ↔ 6 BL
- G (GND) ↔ 7 GND
ESP8266 WeMos D1 Mini ↔ Аркадни бутони
D3 (GPI18) ↔ Ляв бутон
D4 (GPI17) ↔ Десен бутон
Другият щифт на бутона е свързан към земята (GND).
Стъпка 2: Код
Просто ми дайте кода
Пълният изходен код можете да намерите тук:
github.com/antoinech/glo-stopwatch
За да работи за вас, ще трябва да промените тези променливи:
// Поставете вашите идентификационни данни за WiFi тук conc char* ssid = "--your-ssid--"; const char* password = "-твоята-парола--"; // Поставете вашия личен маркер за достъп (https://support.gitkraken.com/developers/pats/) const char *bearer = "Носител XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
Ще ви трябват и 2 библиотеки Adafruit:
github.com/adafruit/Adafruit-GFX-Library
github.com/adafruit/Adafruit-PCD8544-Nokia…
И този страхотен Arduino Json:
arduinojson.org/
Обяснения
В изходния код ще разберете:
- как да се свържете с HTTPS крайна точка
- как да направите POST или GET заявка
- как да сериализирате JSON отговор, за да получите обекти и масиви
- как да показвате текст и снимки на LCD дисплей на Nokia 5110
Ако искате да научите повече за този API:
support.gitkraken.com/developers/overview/
Тази заявка може да работи с дистанционно всеки API, който използва POST и GET заявки:)
Стъпка 3: Свържете се с HTTPS уебсайт
Този псевдокод ви обяснява как да се свържете с HTTPS уебсайт. Първите му стъпки са същите като при a
WiFiClient клиент
но със стъпка за проверка. Трябва да отидете до крайната точка на API, която искате да проверите, и да проверите SHA1 пръстовия отпечатък на сертификата. Копирайте го поставете като низ в кода си и се обадете на client.verify (пръстов отпечатък, hosturl).
Клиент WiFiClientSecure;
// Свържете се с WiFi WiFi.mode (WIFI_STA); WiFi.begin (ssid, парола); while (WiFi.status ()! = WL_CONNECTED) {забавяне (500); Serial.print ("."); } if (! client.connect (host, httpsPort)) {Serial.println ("връзката е неуспешна"); връщане; } if (client.verify (пръстов отпечатък, хост)) {Serial.println ("сертификати съвпадат"); } else {Serial.println ("сертификатът не съвпада"); }
Стъпка 4: Направете POST / GET заявки
POST
Това е синтаксисът за отправяне на POST заявка:
Низ PostData = "{"; PostData += "\" текст / ": \" моето съобщение / ""; PostData += "}"; Serial.print (PostData); client.print (String ("POST") + url + "HTTP/1.1 / r / n" + "Хост:" + хост + "\ r / n" + "Упълномощаване:" + носител + "\ r / n" + "User-Agent: BuildFailureDetectorESP8266 / r / n" + "кеш-контрол: no-cache / r / n" + "Content-Type: application/json / r / n" + "Content-Length:" + PostData. length () + "\ r / n" + "\ r / n" + PostData + "\ n"); Serial.println ("изпратена заявка");
PostData са данните, които изпращате като JSON, в този случай:
{
"text": "моето съобщение"}
Променливата url е URL адресът на крайната точка, хостът, URL адресът на уебсайта, носител е маркерът за достъп до API.
ПОЛУЧАВАЙТЕ
Това е псевдокодът за GET заявка:
client.print (String ("GET") + url + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Упълномощаване:" + носител + "\ r / n" + "Потребителски агент: BuildFailureDetectorESP8266 / r / n" + "Връзка: поддържане на живи / r / n / r / n"); Serial.println ("изпратена заявка"); while (client.connected ()) {String line = client.readStringUntil ('\ n'); if (ред == "\ r") {Serial.println ("получени заглавки"); прекъсване; }} Низов ред = client.readStringUntil ('\ n');
Резултатът от тази команда ще се съхранява в променливата на реда.
Стъпка 5: JSON & NOKIA LCD
За да постигнете подобен проект, ще трябва да изведете изображения, текстове и символи на дисплея на Nokia 5110. Можете да разгледате този задълбочен урок от lastminuteengineers.
За да работите с JSON в Arduino C ++, използвайте уебсайта ArduinoJson, който ще ви разкаже всичко за него!
Не се колебайте да публикувате въпроси, ако имате такива, или да публикувате това, което сте направили с този изходен код / урок.
Препоръчано:
Хронометър на Arduino Leonardo: 3 стъпки
Хронометър Arduino Leonardo: Кредит: https://www.instructables.com/id/Arduino-Stopwatch … Този дизайн на хронометъра произхожда от връзката по-горе, която е хронометър, който брои от 1, докато този отброява от 60 секунди . По -голямата част от кода, който използвах, следва оригинала
Прост цифров хронометър CloudX M633: 4 стъпки
Прост цифров хронометър CloudX M633: В този проект ще направим версия на цифров часовник, който може да съхранява записи на часове, минути и секунди, точно като хронометър на вашия мобилен телефон! Ще използваме LCD за показване на часа
Всичко в едно Цифров хронометър (часовник, таймер, аларма, температура): 10 стъпки (със снимки)
Всичко в един цифров хронометър (часовник, таймер, аларма, температура): Планирахме да направим таймер за някое друго състезание, но по -късно въведохме и часовник (без RTC). С навлизането в програмирането се заинтересувахме да приложим повече функционалности към устройството и в крайна сметка добавихме DS3231 RTC като
Arduino Project - хронометър: 3 стъпки
Arduino Project - Хронометър: Този хронометър може да се използва за измерване на времето, което искате, например времето, необходимо за завършване на дадена задача, или да си осигурите натиск върху времето, използвано за завършване на работа. Светодиодите помагат на потребителя ясно да знае времето за стартиране и спиране
Хронометър Arduino, използващ I2C LCD: 5 стъпки
Хронометър на Arduino, използващ I2C LCD: В този проект ще ви науча да използвате LCD дисплей и Arduino като интерактивен хронометър. Когато вашият проект приключи с предоставения код, той трябва да изглежда като снимката по -горе. Отидете на следващата стъпка, за да научите откъде да започнете