Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Arduino yun × apiで遊んでみる

575 views

Published on

API Meetup Tokyo #12 - API Meetup | Doorkeeper

https://api-meetup.doorkeeper.jp/events/36685

にてLTで発表した資料です。

Published in: Technology
  • Be the first to comment

Arduino yun × apiで遊んでみる

  1. 1. Arduino YUN APIで 遊んでみる (株)MOONGIFT 中津川篤司
  2. 2. 自己紹介 @a_nakatsugawa fb.me/moongift 株式会社MOONGIFT 代表取締役 2004年1月よりオープンソース・ソフトウェアを毎 日紹介するブログ MOONGIFT を運営。 http://www.moongift.jp/ 中津川 篤司 @moongift fb.me/moongift.fan
  3. 3. Arduino YÚN 約1万円(スイッチサイエンスさん価格)
  4. 4. これまでのArduino // create an array of notes // the numbers below correspond to // the frequencies of middle C, D, E, and F int notes[] = {262, 294, 330, 349}; void setup() { //start serial communication Serial.begin(9600); } void loop() { // create a local variable to hold the input on pin A0 int keyVal = analogRead(A0); // send the value from A0 to the Serial Monitor Serial.println(keyVal); // play the note corresponding to each value on A0 if (keyVal == 1023) { // play the first frequency in the array on pin 8 Processingめんどい
  5. 5. これまでのArduino ネットワークがない
  6. 6. これまでのArduino スペックが貧弱
  7. 7. Arduino YÚN ネットワーク!
 無線LANもあるよ! Linuxだよ!
  8. 8. SSHサーバ立ってる! $ ssh root@arduino.local # python --version Python 2.7.3 # lua
  9. 9. 試してみる
  10. 10. Arduino側#include <Bridge.h> #include <Process.h> const int pinLight = A0; void setup() { Bridge.begin(); Serial.begin(9600); } void loop() { Process p; int sensorValue = analogRead(pinLight); p.runShellCommand("/tmp/slack.sh "+String(sensorValue)); Serial.println(p); delay(2000); }
  11. 11. Linux側 /usr/bin/curl -k -X POST --data-urlencode 'payload={"channel": "#meetup", ”username": "webhookbot", "text": ”Value is '"$1"'", "icon_emoji": ":ghost:"}' https://hooks.slack.com/ services/xxxx4
  12. 12. デモ
  13. 13. mBaaSに飛ばしてみる
  14. 14. Pythonと言えば…
  15. 15. やること pipをインストール pip install py_nifty_cloud
  16. 16. 設定ファイルを書く # cat nifty_cloud.yml APPLICATION_KEY: '120...e76d' CLIENT_KEY: 'b5f...4c8'
  17. 17. テストスクリプト # cat test.py #import from py_nifty_cloud.nifty_cloud_request              import NiftyCloudRequest ncr = NiftyCloudRequest('/tmp/nifty_cloud.yml') path = '/classes/TestClass' method = 'POST' # post a new recode values = {'key': 'test'} response = ncr.post(path=path, query=values) print(response.status_code)
  18. 18. 実行してみる # python test.py : InsecurePlatformWarning 201
  19. 19. Processingと連携する #include <Bridge.h> #include <Process.h> void setup() { : } void loop() { int sensorValue = analogRead(pinLight); Process p; p.runShellCommand("/usr/bin/python /tmp/test.py” + String(sensorValue)
 ); while(p.running()); while (p.available()) { int result = p.parseInt(); Serial.println(result); } delay(5000); }
  20. 20. デモ
  21. 21. ご静聴ありがとう ございました

×