5. ทดสอบ Python IDE
●
คลกขวาท%่ชื่อ project แล ้วเลือก New → Python file
● พมพโค ้ดเพื่อทดสอบ
if __name__ == '__main__':
print('hello, world')
●
เลือกเมนู Run เพื่อส่งทำางาน เช็คผลจากหน้าต่าง Run
6. อ่านเข%ยนไฟล
●
เตร%ยมไฟล test.txt ท%่เป็นข ้อความสำาหรบใช ้ทดสอบ
●
พมพโค ้ดสำาหรบนบคำาจากไฟล แล ้วส่ง Run
if __name__ == '__main__':
f = open('test.txt', 'r')
counts = {}
content = f.read()
for word in content.split():
if word not in counts:
counts[word] = 1
else:
counts[word] += 1
for k,v in counts.items():
print k,v
8. import urllib
if __name__ == '__main__':
url = 'http://…csv'
conn = urllib.urlopen(url)
content = conn.read()
conn.close()
lines = content.split('r')
table = []
for line in lines:
fields = line.split(',')
if not table:
for field in fields:
table.append({'name':field, 'column':[]})
else:
idx = 0
for field in fields:
table[idx]['column'].append(field)
idx += 1
for item in table:
print(item['name'])
ดึงไฟลจากเว็บไซต
แยกเนื้อหาตามบรรทด
แยกข ้อมูลด ้วย ,
ประกอบข ้อมูลใหม่
16. เชื่อมต่อ PC ↔ Raspberry Pi
●
เส%ยบ SD card เข ้า Raspberry Pi
●
เส%ยบสาย LAN และ USB เข ้าคอมพวเตอร
เช็คสถานะบูต/เครือข่ายจาก LED ส%เข%ยว
●
พมพคำาส่ง cmd ใน Start menu ของ Windows
●
พมพคำาส่ง arp -a เพื่อดู IP address ของบอรด
29. สร ้าง time lapse camera
●
เข%ยนโค ้ดเพื่อสร ้างตวบนทึก video โดยกำาหนด format
กบ frame rate
w = int(cap.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
h = int(cap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
format = cv2.cv.CV_FOURCC('M','J','P','G')
out = cv2.VideoWriter('test.avi', format, 10, (w,h))
● บนทึกเฟรมลงในคลป
out.write(frame)
●
ควบคม frame rate โดยการหน่วงเวลา
if cv2.waitKey(100) == 27:
30. import cv2
if __name__ == '__main__':
cap = cv2.VideoCapture(0)
w = int(cap.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
h = int(cap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
format = cv2.cv.CV_FOURCC('M','J','P','G')
out = cv2.VideoWriter('test.avi', format, 10, (w,h))
cv2.namedWindow('preview')
while True:
res,frame = cap.read()
frame = cv2.flip(frame, 1)
cv2.imshow('preview', frame)
out.write(frame)
if cv2.waitKey(100) == 27:
break
cap.release()
cv2.destroyAllWindows()
ใน Raspberry Pi ให ้ตดต้ง VLC player เพื่อดูไฟลท%่บนทึก
sudo apt-get install vlc
ต้งสื่อ
บนทึก
42. เตร%ยมต ้นแบบข ้อมูล (model.py)
● นยามข ้อมูล
when = เวลา which = แหล่งข ้อมูล
what = ข ้อมูล how = วธ%การ
where = ตำาแหน่ง ...
from google.appengine.ext import ndb
class MyData(ndb.Model):
timestamp = ndb.DateTimeProperty(auto_now_add=True)
serial = ndb.IntegerProperty(required=True)
value = ndb.FloatProperty(required=True)
43. เพ่มบรการ (service.py)
class UpdateHandler(webapp2.RequestHandler):
def get(self):
sn = self.request.get('sn')
val = self.request.get('value')
if sn != '' and val != '':
resp = {'status':'OK'}
data = MyData(serial=int(sn),value=float(val))
data.put()
else:
resp = {'status':'ERR'}
self.response.write(json.dumps(resp))
app = webapp2.WSGIApplication([
('/ws/test', TestHandler),
('/ws/update', UpdateHandler)
], debug=True)
แยกข ้อมูลจาก arg
จดเก็บข ้อมูล
http://appname.appspot.com/ws/update?sn=11&val=1.0
44. เตร%ยมเชื่อมต่อ Arduino
●
Raspberry Pi สามารถเชื่อมต่อ Arduino ผ่านพอรต
USB ท้งรูปแบบข ้อมูลและโค ้ด
sudo apt-get install arduino arduino-mk
python-serial
●
เส%ยบ Arduino เข ้ากบ Raspberry Pi
●
พมพคำาส่ง dmesg ดูรายงานการเชื่อมต่อ
●
ตรวจสอบพอรตอนกรมท%่เป็น Arduino: ttyACMx หรือ
ttyUSBx
> ls /dev/tty*
48. สืบค ้นข ้อมูลจาก datastore
●
ข ้อมูลถูกจดเก็บในรูป object อ ้างองได ้ด ้วย key
●
ใช ้เทคนค templating เพื่ออ่านไฟล HTML ต ้นแบบ
from model import *
sn = self.request.get('sn')
if sn != '':
resp = {'status':'OK'}
query = MyData.query(MyData.serial==int(sn))
data = query.fetch(10)
resp['values'] = [entity.value for entity in data]
else:
resp = {'status':'ERR'}
template = JINJA_ENV.get_template('index.html')
กำาหนดเงื่อนไข/สืบค ้น
49. ไฟล HTML ต ้นแบบ
●
ใช ้การทดแทน HTML tag ในระหว่าง rendering
ทดแทนตวแปร
<div data-role="footer">
<h2>{{status}}</h2>
</div>
แบบรายการ list, tuple
<ui>
{% for value in values %}
<li>Value is {{value}}</li>
{% endfor %}
</ui>
ดึงค่าตวแปรมาแสดง
วนสร ้างรายการจาก list