ควบคุมทีวี ด้วย LINE Chat bot ,Dialogflow และ Flask -Part3

Eddie eddie
2 min readMay 29, 2018

--

ควบคุมทีวี ด้วย LINE Chat bot ,Dialogflow และ Flask -Part1
ควบคุมทีวี ด้วย LINE Chat bot ,Dialogflow และ Flask -Part2

ติดตั้ง ngrok บน Raspberry Pi

เอาล่ะ ตอนนี้เราลองรัน server ได้แล้ว ต่อไปเราก็ต้องให้เจ้า Raspberry pi server เรา access ได้จากภายนอก ปกติแล้วเราสามารถทำ Port forwarding ที่ router ได้ แต่ผมจะใช้อีกวิธีการนึงคือใช้ ngrok แทน

ขั้นตอนนี้จะยุ่งยากนิดนึง เนื่องจาก ngrok ไม่ใช่ Python package เพราะฉะนั้นเรา install ด้วย pip ไม่ได้ ต้องเข้าไป download ตรงๆที่ website ของ ngrok เลย

จริงๆเราสามารถ install ผ่าน apt-get ได้ แต่เหมือนที่ผมลองทำไมไม่รู้บน Linux มันดันได้เป็น version เก่า (1.6 มั้ง) แล้วพอรันคำสั่งมันจะขึ้น Error แบบนี้ตลอดเลย

You may only specify one port to tunnel to on the command line, got 2:

ไม่รู้ว่าเพราะบน Pi เป็น ARMด้วยหรือเปล่าใครรู้วิธีแก้รบกวนคอมเม้นบอกกันทีครับ

ต่อ keyboard mouse และหน้าจอให้เจ้า Pi แล้วเข้ามาที่ https://dashboard.ngrok.com/user/login บน Browser จากนั้นทำการ Signup ให้เรียบร้อย แล้ว Login

หลังจาก Login สำเร็จ หน้าเว็บจะมีหน้าขึ้นมาให้เราทำตามโดย

  1. Download ngrok (อย่าลืมเลือกเป็น Linux ล่ะ)
  2. Unzip ให้เรียบร้อย
  3. run คำสั่ง บน Terminal
./ngrok authtoken <TOKEN>

4. ลองรันคำสั่ง (default port ของ flask เป็น 5000)

./ngrok http 5000

หน้าตา Terminal หลังจาก run คำสั่ง

ตรง Hilight นั่นแหละคือ public address ที่เราสามาระ access เข้ามาที่เจ้า Pi เราได้เอาล่ะในเมื่อเรา Access เองเข้ามาได้แปลว่า Dialogflow ก็ต้องทำได้ งั้นมาต่อที่ขั้นตอนต่อไปกันเลย

หลังจากที่เราทำ public address ด้วย ngrok ให้เจ้า Pi เรากันแล้ว ขั้นตอนต่อไปเราก็ต้อง config เจ้า Fullfillment ของ Dialogflow กันต่อ ให้เราเข้ามาที่หน้า console ของ Dialogflow กันอีกครั้ง เลือกเมนูด้านซ้ายที่เขียนว่า fullfillment

เลือก enabled แล้วใส่ URL ของเราเข้าไป

กลับมาที่ Intent ของการเปิดทีวี เลื่อนลงมาข้างล่างสุดจะมี switch เขียนว่า “Enable webhook call for this intent” ให้เรา enabled ซะ

อ้อ อย่าลืม enable switch ที่เขียนว่า “Set this intent as end of conversation” ด้วยนะ ก็มันจบการสนทนาแล้วนี่

จากนั้นก็กด save ให้เรียบร้อย

เอาล่ะ ทีนี้เราก็มาลงส่งข้อความหาเจ้า Bot กันอีกครั้ง!

แต่นนแต๊นน~~

นอกจากการเปิดปิดทีวีหรืออุปกรณ์ต่างๆในบ้านเราแล้ว ผมเชื่อว่าเราจริงๆ สามารถนำเจ้า Dialogflow ไปใช้ประยุกต์งานต่างๆได้อีกมากมายหลายอย่าง ด้วยความที่ เราแทบไม่ต้องเขียน Code เลย เชื่อว่า ภายในไม่กี่ปีนี้ เราน่าจะได้เห็นโปรเจกเจ๋งๆที่ใช้เจ้า Dialogflow และแอพ chat ทั้งหลายมาประยุกต์อย่างแน่นอนครับ

--

--