งานที่ 8
- รับลิงก์
- X
- อีเมล
- แอปอื่นๆ
NodeMCU ESP8266 ESP32 IoT 30 วัน 30 โปรเจค วันที่ 2 ทำเครื่องนับยอด Like Facebook Fanpage
NodeMCU ESP8266 IoT 30 วัน 30 โปรเจค
บทความในชุดนี้เป็นบทความต่อเนื่องที่จะให้ผู้อ่านได้ทดลองเรียนรู้ IoT ไปพร้อมๆกันการทำ Project วันล่ะโปรเจคไปเรื่อยๆ โดยเรียนรู้จากการได้ทดลองทำจริง (learning on the job) เขียนโปรแกรม ต่อวงจร ง่ายๆไม่ยุ่งยาก สามารถนำไปประยุกต์ใช้งานต่อได้ โดยเนื้อหาจะมีเรื่อยๆจนครบ 30 บทความ เหมาะสำหรับคนที่อยากเรียนรู้ IoT ด้วยตนเอง สามารถติดตามรายละเอียดได้จากหน้าร้านและทาง Fanpage Facebook fb.com/mosfexนะครับ
วันนี้เราจะมาทำ เครื่องแสดงไลค์ Fanpage Facebook กัน โดยหลักการไอ้เครื่องนี้ง่ายมาก มันจะเชื่อมต่อ WiFi จากนั้นก็เข้าไปที่ Fanpage ที่เราตั้งค่าไว้แล้วไปดึึงเอาตัวเลขของ ยอดไลค์ปัจจุบันและเลขที่คนพูดถึง (Talk about) มาแสดงให้เราดู เชื่อมต่อไปทุกๆ 1 วินาที ดังนั้นมันจึงแสดงผลแบบ Real Time เลยแหละ พอมีคนกดก็เปลี่ยนตัวเลขที่แสดงทันที และที่สำคัญคือไม่ต้องใช้ api ไม่ต้องสมัครสมาชิกอะไรเลย ง่ายไหมหล่ะ มาลองดูกันเลย
1.อันดับแรกก็ต้องเตรียมอุปกรณ์กันก่อนเลย
1. NodeMCU https://www.mosfex.com/product/38/
2. LCD 16x2 I2C https://www.mosfex.com/product/18/
3. สายแพ เมีย-เมีย https://www.mosfex.com/product/60/
2. จากนั้นก็เริ่มต่อสายตาม Diagram นี้เลย ระวังอย่าต่อผิด หรือต่อไฟกลับขั้วนะ
3. จากนั้นเราจะมาลง Library จอแสดงผลกัน
แล้วก็ไป Download โค้ดมา
โดยเข้าไปที่ https://github.com/mosfex/FacebookFanpageLikeCounter/blob/master/FacebookLikeCounter.ino
ก็อปมาเลยตั้งแต่บรรทัดแรกไปจนถึงสุดท้าย (86)
พอก็อปปี้โค้ดที่ต้องใช้มาหมดแล้วก็มาลองดูโค้ดกันเลย
ช่วงโค้ดตรงนี้สำหรับ include library ที่เราจะใช้มา
#include
#include
#include
#include
#include
---------------------------------------------------------
LiquidCrystal_I2C lcd(0x3F,16,2);
ตรงในส่วนนี้คือ เราจะใช้เชื่อมต่อจอไปที่ 0x3F และเป็นจอ 16x2 บางครั้ง จอบางรุ่นจะมี Address เป็น 0x2F
--------------------------------------
const char* ssid = "mosfex.com"; //ตั้งค่า WiFi ตรงนี้นะ
const char* password = "123456789"; //ตั้งค่า password WiFi
String page_url = "mosfex"; //ตั้งค่า panpage @account ตรงนี้นะ เช่น fb.com/mosfex
const char* host = "mbasic.facebook.com"; //ตรงนี้เป็นส่วนของ host ที่เชื่อมต่อ
const char* fingerprint = "93:6F:91:2B:AF:AD:21:6F:A5:15:25:6E:57:2C:DC:35:A1:45:1A:A5";
จากนั้นมาดู function
--------------------------------------
if (!client.connect(host, 443)) { Serial.println("connection failed"); return ""; }
เนี่ยเชื่อมต่อไปยัง https port 443 ปลายทางอยู่ที่ mbasic.facebook.com
---------
หากเราไปเปิดดู https://mbasic.facebook.com/mosfex/community?local=en_US
เราจะเห็นว่าตัวเลข like ซ่อนอยู่
-----------------
ส่วนตรงนี้คือส่วนที่จะทำให้ NodeMCU ไปดึึงข้อมูลมานั่นเอง
ส่วนนี้เป็นต้นไปคือ ส่วนของ การสกัดเอาตัวเลข Like และ Talk about มา โดยมันจะอยู่ในส่วนของ Tag description ของ html facebook เมื่อได้แล้วจะเก็บเอาไว้ในตัวแปร like และก็ talk
-----------------
จากนั้นก็แสดงผล
lcd.setCursor(4,1);
lcd.print(like); แสดงยอด Like ทางหน้าจอ
lcd.write((uint8_t)6); แสดง icon รูป Like (อาจจะไม่เหมือนหน่อย ทำเองเนอะ)
lcd.write((uint8_t)7); แสดง icon รูป Like
lcd.print(" "+talk); แสดงยอด Talk about ออกหน้าจอ
lcd.write(0b00100011); แสดง #
------------------
ส่วนตรงนี้คืออัขระพิเศษ ที่ใช้แสดงเป็นรูป logo facebook แล้วก็ icon Like
byte logo[8][8] = {
{0x07,0x0F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F},
{0x1F,0x1F,0x1E,0x1C .....
-------------------
ก็ประมาณนี้แหละ ที่สำคัญนะ
กลับมาทำกันต่อ
4.
5. จากนั้นก็ไปต่อยาวๆเลย
6. เลือกพอร์ต
- รับลิงก์
- X
- อีเมล
- แอปอื่นๆ
ความคิดเห็น
แสดงความคิดเห็น