งานที่ 9

 

 NodeMCU ESP8266 ESP32 IoT 30 วัน 30 โปรเจค วันที่ 6 แสดงราคาการซื้อขาย bitcoin ด้วย esp32

3 ปีที่ผ่านมา
 
โดย เจ้าของร้าน

NodeMCU ESP8266 ESP32 IoT 30 วัน 30 โปรเจค



หลังจากวันที่ 4 เราติดตั้ง ESP32 กันแล้ว วันนี้เราจะใช้ ESP32 แสดงราคาซื้อขาย bitcoin กันแบบสดๆ ให้เห็นผ่านทางจอ LCD ว่าตอนนี้เขาซื้อขายด้วย rate ราคาเท่าไหร่พร้อมทั้งแสดงการตั้งราคาซื้อขายกันด้วย โดยค่าเหล่านี้ได้มาจากเว็บ bx.in.th ซื้อเป็นเว็บที่ทำการซื้อขาย bitcoin ด้วยสกุลเงินไทยนั่นเอง โดยตัว bx.in.th นั้นมี api ให้สามารถดึงค่าการซื้อขายไปได้ เราก็แค่ใช้ ESP32 ไปดึงมาแสดงนั่นเอง โดยเชื่อมต่อผ่าน https เหมือนที่เราใช้กับ Facebook Fanpage Like Counter เอาหล่ะมาเริ่มกันเลยดีกว่า





อุปกรณ์
1. จอ 16x2 LCD
2. ESP32
3. สายแพเมีย-เมีย





มาอธิบายโค้ดกันสักหน่อยดีกว่า ที่ function getSecureBtc จะเป็นการเชื่อมต่อไปที่ api ของ bx.in.th แล้วเราก็จะได้เป็น stream มาเพื่อส่งต่อให้ function parseSecurePrint แปลงค่าเป็น string อีกรอบ (จริงๆเอาไป parse ตรงๆเลยก็ได้นะ ง่ายดี ไม่ต้องมาแปลงเป็น string ให้เปลือง RAM)

WiFiClientSecure getSecureBtc()
{
WiFiClientSecure client;
//client.setCACert(ca);
if (!client.connect(host_endpoint, 443))
Serial.println("Connection failed!");
else {
Serial.println("Connected to server!");
client.println(String("GET ") + api_endpoint + " HTTP/1.0");

และ ที่ parsePrint นี่เองเราจะดึงเอาค่าการซื้อขาย last_price bits ask ออกมาแล้วทำการปริ้นค่าที่ได้ไปยังจอ lcd นั่นเอง

void parsePrint(String btc_str)
{
int last_pos_st = btc_str.indexOf("last_price") + 12;
int bits_pos_st = btc_str.indexOf("highbid") + 9;

ตรงนี้เป็นการปริ้นข้อความ สามารถแก้ไขได้ตามสะดวกเลยนะ

lcd.clear();
lcd.setCursor(0,0);
lcd.print("BTC : ");
lcd.print(last);
lcd.setCursor(0,1);
lcd.print(">");
lcd.print(bits);
lcd.print(">");
lcd.print(asks);



เอาหล่ะสำหรับวันนี้ก็น่าจะมีประมาณเท่านี้ สามารถติชม comment ให้กำลังใจกันเข้ามาได้นะ หรือจะไปพูดคุยที่ fanpage fb.com/mosfex ก็ได้เช่นกัน ขอบคุณครับ ^^

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

งานที่ 16