2015/06/07



萊恩大兵在 Openlab Taipei 混了一年多, 這期間遇見很多才華洋溢的 maker. 他們各有擅長, 作品創意滿載. 只是, 這些作品常常都是做完了在臉書貼張相片得幾個讚, 然後就淹沒在日復一日的柴米油鹽裡. 知識沒有累積, 經驗沒有流轉, 很可惜. 於是, 萊恩大兵有個想法, 想邀請 maker 來分享作品的心得與經驗. 不必是高手, 不用擔心才入門初學. 只要曾經花過二十小時鑽研一個題目, 就一定能做一小時的分享. 

就這個推坑的概念, 萊恩大兵邀請來 PTT 地震文團隊, 做連續三場的分享與交流.


(PTT地震文團隊是由章國俊, Frank Wang 和梁景智三人組成的隊伍, 他們的作品在 2015 May 台灣黑克松 奪得最佳技術與最佳人氣兩個獎項)


這三連發的系列分享, 由國俊兄打頭陣, 講題為 "Maker 的 IOT 遊樂場".



萊恩大兵簡單地做了筆記, 分享給大家.

(1) 動手做就對了, just for fun.

開場白, 國俊兄很謙虛的表示, 他自己在 IOT 領域也是初學者, 什麼都不懂. 但身為一個 maker, 就是要自己動手, 以好玩為目的.




(2) 緣起

為什麼會做 PTT 地震自動發文器呢?


  • 好玩與爽度. 當有地震發生時, 讓機器人自動發文, 在 PTT 搶到頭香, 超爽 der.
  • 想順便學習 mbed.


(3) 作品架構

PTT 地震自動發文器的架構與運作, 大致為:


它基本是由 (mbed + MPU6050) 組成的 client 端, 感應到震動後, 將資訊送到 MQTT server. 再由 Raspberry Pi 上的機器人去訂閱這些感測數據, 做出判斷後, 去 PTT 貼地震文.





國俊兄介紹作品裡面的技巧或工具.

(4) Hack PTT

先弄清楚手動發文到 PTT 的完整步驟.



再寫隻 python 程式去做發文的動作.
(記得要將程式裡的 user 與 passwd 改成自己的登入帳密)


# -*- coding: utf-8 -*-
 
import platform
import telnetlib
import time


telnet = telnetlib.Telnet()
host = 'ptt.cc'
user = 'your_account'
passwd = 'your_password'


def key_left():
    telnet.write('\033[D')

def key_control(key):
    telnet.write(chr(ord(key) - ord('a') + 1))

def login(host, user, passwd):
    telnet.open(host)
    telnet.write('%s\r%s\r' % (user, passwd))
    telnet.write('\r')

def post(board, title, content):
        telnet.write('\s')
        telnet.write(board + '\r')
        telnet.write('\r\r')
        time.sleep(1)
        data = telnet.read_until('(0)', 3)
        print data

        key_control('p')
        telnet.write('\r')
        telnet.write('%s\r' % tobig5(title))
        telnet.write(tobig5(content))
        key_control('x')
        telnet.write('s\r')
        telnet.write('0\r')

    
def tobig5(str):
    return str.decode('utf8').encode('big5')

def disconnect():
        key_left()
        key_left()
        key_left()

        telnet.write('G\r')
        login_status = telnet.read_until('[N]', 3)

        print login_status

        telnet.write('y\r\r')
        telnet.close()


#----------------------------
login(host, user, passwd)
post('Test', ' Test', 'test test')
disconnect()

真的在 PTT 發文成功了

(5) 免費的雲端物聯網伺服器


感測器的數據要送上雲端, 有些好用的免費資源可以利用, 例如 Mediatek Cloud Sandbox是一個類似 Xively 的物聯網數據收集伺服器. 

若不知道 Xively 或 Mediatek Cloud Sandbox 能做什麼事, 請參考萊恩大兵這篇: 小惡魔, (1) 溫度感測 + 物聯網 (Electric Imp, Xively, LM35, Internet of Things)




Mediatek Cloud Sandbox 會連推送數據的程式碼都產生出來.



再透過 Hurl.it 服務來發送 HTTP request.


Mediatek Cloud Sandbox 這端就會有即時數據呈現出來.



其它還有 mbed 與 MQTT 等主題, 敬請期待 Frank 與景智兄的分享.


(2015/6/14, 更新) PTT 地震文團隊的第二發分享, 連結在這: 藍色小鋪, PTT地震文團隊分享三連發, (2) mbed 新手分享 (mbed, MPU6050, Hackathon, Internet of Things)

[萊恩大兵的其它文章]

自製大四軸

自製大四軸, 實作分享@華山文創園區
自製大四軸, (1) 零組件篇, 遙控器 (Drone, Quadcopter, Futaba, Maker, Arduino, Animatronic Eye)
自製大四軸, (2) 零組件篇, 飛控板 (Drone, Quadcopter, MultiWii, Arduino, Futaba, Maker)
自製大四軸, (3) 零組件篇, 自行雷切木質機架 (Drone, Quadcopter, Maker, Laser Cut)
自製大四軸, (4) 零組件篇, 馬達與電變調整 (Drone, Quadcopter, Maker, Electric Speed Control, Motor)
自製大四軸, (5) 組裝篇, 四軸飛行器成形 (Drone, Quadcopter, MultiWii, Arduino, Maker, Electric Speed Control, Motor)
自製大四軸, (6) 調整篇, 飛行前兩三事 (Drone, Quadcopter, Maker, Futaba, Arduino, MultiWii)
自製大四軸, (7) 充電篇, iMax B6 充電器操作記要 (Charger, Battery)
自製大四軸, (8) 問題篇, 機架損壞維修 (Drone, Quadcopter, Laser Cut)
自製大四軸, (9) 改良篇, 方便拆卸的木質機架 (Drone, Quadcopter, Maker, Laser Cut)
自製大四軸, (10) 外飛篇, 新手的青蛙跳與遛狗 (Drone, Quadcopter, Maker, MultiWii)

自動報球速的棒球



CC2540 Bluetooth Low Energy
筆記, CC2540 Bluetooth Low Energy, (1) 開發環境 架設 (Bluetooth, CC2540)
筆記, CC2540 Bluetooth Low Energy, (2) 跑第一個範例程式 (Bluetooth, CC2540)
筆記, CC2540 Bluetooth Low Energy, (3) SimpleBLEPeripheral 簡單介紹 (Bluetooth, CC2540)
筆記, CC2540 Bluetooth Low Energy, (4) 在智慧手機上執行範例程式 (Bluetooth, CC2540)
筆記, CC2540 Bluetooth Low Energy, (5) 偵測與發送 iBeacon 訊號 (Bluetooth, CC2540, iBeacon)
實作, iBeacon 發訊器 x 防丟器 (Bluetooth, CC2540, iBeacon)
實作, iBeacon 尋寶遊戲 (Bluetooth, CC2540, iBeacon, iOS app)
實作, BLE + iOS app, 遙控燈泡君 (Bluetooth, CC2540, iOS app)
做實驗, 用 iBeacon 做自動控制的可行性 (Bluetooth, iBeacon, CC2540, Automation, URL Scheme, iOS app)

藍色小鋪一起來做

藍色小鋪一起來做, (1) 用 beacon 控制開關的枱燈
藍色小鋪一起來做, (2) 講解 BLE CC2540 UART 通訊範例程式 (Bluetooth, CC2540, UART)
藍色小鋪一起來做, (3) 藍牙枱燈專案實作 (上) (Bluetooth, CC2540)
藍色小鋪一起來做, (4) 藍牙枱燈專案實作 (下) (Bluetooth, CC2540)
藍色小鋪一起來做, (5) iBeacon scanner 專案示範與解說 (Bluetooth, CC2540, iBeacon)
藍色小鋪一起來做, (6) 完成, 用 iBeacon 控制開關的枱燈 (Bluetooth, CC2540, iBeacon)
藍色小鋪, 初嚐樹莓派 (Raspberry Pi)
藍色小鋪, iBeacon 應用, 自動記錄到訪時間 (iBeacon, Geohopper, Zapier)

小惡魔 無線溫度感測器

108 大眼仔
Plot Clock

體驗, 原住民互動故事書@宜蘭大同鄉泰雅生活館
體驗, 蛋生音互動裝置@兒童美術館 (Arduino, 3D Printing, HC-SR04, Interactive)



實作, 電容感應音樂樹


0 意見:

張貼留言