สารบัญ:
- ขั้นตอนที่ 1: สร้าง
- ขั้นตอนที่ 2: รหัส
- ขั้นตอนที่ 3: เชื่อมต่อกับเว็บไซต์
- ขั้นตอนที่ 4: สร้างคำขอ POST / GET
- ขั้นตอนที่ 5: JSON & NOKIA LCD
วีดีโอ: นาฬิกาจับเวลาที่เชื่อมต่อ: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
สวัสดี!ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีเชื่อมต่ออุปกรณ์ที่เข้ากันได้กับ Arduino ที่ติดตั้ง WiFi เข้ากับ REST API! ใช้เว็บแอป GitKraken Glo Board เพื่อสร้างบอร์ด คอลัมน์ & การ์ดเพื่อจัดระเบียบสิ่งต่างๆ!
จำเป็นต้องมีความรู้เกี่ยวกับวิธีการทำงานของ API สาธารณะ โครงการนี้มีขึ้นเพื่อใช้ API ของ GitKraken Glo เพื่อติดตามเวลาที่คุณใช้กับงานในรายการสิ่งที่ต้องทำของคุณ
ตัวอย่างเช่น คุณต้องทำงานนี้:
- ดื่มกาแฟ
คุณกดเริ่มเมื่อคุณเริ่ม เมื่อเสร็จสิ้น คุณกดเสร็จสิ้น และ voila เวลาที่คุณใช้ไปจะถูกแสดงความคิดเห็น
ขั้นตอนที่ 1: สร้าง
ในการสร้างคุณสามารถคิดอะไรได้ นาฬิกาจับเวลาขนาดเล็กจะดีมาก แต่ฉันไม่ได้วางอะไรเล็ก ๆ ไว้
ดังนั้นปุ่มกระดาษแข็งและอาร์เคดจึงเป็นทางไป!
บอร์ดที่ฉันใช้คือ ESP8266 WeMos D1 Mini ราคาถูกกว่า Arduino และมี WiFi ในตัว!
หน้าจอเป็น Nokia 5110 LCD
NS
รายการอะไหล่ใน AliExpress:
- โนเกีย 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 ของคุณที่นี่const char* ssid = "--your--ssid--"; const char* password = "--ของคุณ--รหัสผ่าน--"; //ใส่โทเค็นการเข้าถึงส่วนบุคคลของคุณ (https://support.gitkraken.com/developers/pats/) const char *bearer = "Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
คุณจะต้องมีห้องสมุด Adafruit 2 แห่ง:
github.com/adafruit/Adafruit-GFX-Library
github.com/adafruit/Adafruit-PCD8544-Nokia…
และ Arduino Json ที่ยอดเยี่ยมนี้:
arduinojson.org/
คำอธิบาย
ในซอร์สโค้ดคุณจะพบ:
- วิธีเชื่อมต่อกับปลายทาง
- วิธีสร้างคำขอ POST หรือ GET
- วิธีทำให้เป็นอันดับการตอบสนอง JSON เพื่อรับวัตถุและอาร์เรย์
- วิธีแสดงข้อความและรูปภาพใน Nokia 5110 LCD
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ API นี้:
support.gitkraken.com/developers/overview/
คำขอเหล่านี้สามารถทำงานกับ API ใด ๆ ที่ใช้คำขอ POST และ GET จากระยะไกลได้:)
ขั้นตอนที่ 3: เชื่อมต่อกับเว็บไซต์
รหัสเทียมนี้อธิบายวิธีเชื่อมต่อกับเว็บไซต์ HTTPS ขั้นตอนแรกเหมือนกับ a
ไคลเอนต์ WiFiClient
แต่มีขั้นตอนการตรวจสอบ คุณต้องไปที่ปลายทาง API ที่คุณต้องการตรวจสอบ และตรวจสอบลายนิ้วมือ SHA1 ของใบรับรอง คัดลอกวางเป็นสตริงในรหัสของคุณและโทร client.verify(ลายนิ้วมือ, hosturl)
ไคลเอนต์ WiFiClientSecure;
//เชื่อมต่อกับ WiFi WiFi.mode(WIFI_STA); WiFi.begin(ssid, รหัสผ่าน); ในขณะที่ (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:
สตริง PostData = "{"; PostData +="\"text\":\"ข้อความของฉัน\""; PostData += "}"; Serial.print (PostData); client.print(String("POST ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Authorization: " + bearer + "\r\n" + "User-Agent: BuildFailureDetectorESP8266\r\n" + "cache-control: 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 ของ endpoint, โฮสต์, url ของเว็บไซต์, bearer คือโทเค็นการเข้าถึง API
รับ
นี่คือรหัสเทียมสำหรับคำขอ GET:
client.print(String("GET") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Authorization: " + bearer + "\r\n" + "ตัวแทนผู้ใช้: BuildFailureDetectorESP8266\r\n" + "การเชื่อมต่อ: keep-alive\r\n\r\n"); Serial.println("ส่งคำขอแล้ว"); while (client.connected()) { String line = client.readStringUntil('\n'); ถ้า (บรรทัด == "\r") { Serial.println ("ส่วนหัวที่ได้รับ"); หยุดพัก; } } สายอักขระ = client.readStringUntil('\n');
ผลลัพธ์ของคำสั่งนี้จะถูกเก็บไว้ในตัวแปรบรรทัด
ขั้นตอนที่ 5: JSON & NOKIA LCD
เพื่อให้บรรลุโครงการที่คล้ายคลึงกัน คุณจะต้องแสดงรูปภาพ ข้อความ และสัญลักษณ์บน Nokia 5110 LCD คุณสามารถดูบทช่วยสอนแบบเจาะลึกนี้ได้จากวิศวกรล่าสุด
ในการจัดการ JSON ใน Arduino C++ ให้ใช้เว็บไซต์ ArduinoJson ที่จะบอกคุณทุกอย่างเกี่ยวกับมัน!
อย่าลังเลที่จะโพสต์คำถามถ้าคุณมี หรือโพสต์สิ่งที่คุณสร้างด้วยซอร์สโค้ด / บทช่วยสอนนี้
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง