こちらの記事について、内容・翻訳・視点・長さなど、皆様のご意見をお送りください。今後の記事製作の参考にしたいと思います。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
こちらの記事の感想をお聞かせください。
ラズパイはアナログの入力ができません。
今回はI2C電圧計モジュールで、圧力センサの値を取得する方法について考えました。
このようにつなぎます簡単です。(関係のないものが写ってしまっていますが)
ミノムシクリップに圧力センサをつないで電圧を取得することができました。
そしてなんとなくPOST送信までしてみます。
ソースコードはこんな感じです。
import time
import urllib
import urllib2
import commands
while True:#無限ループ
check = commands.getoutput("i2cget -y 1 0x40 0x02 w") #センサの値を取得する
vol = (int(check[4:6],16)*256+int(check[2:4],16))*1.25#エンディアンが逆 取った値に1.25を掛けると電圧(mV)になる。
val = str(vol)
url = 'http://~~'
values = {'txt1' : val}#postする中身
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
print val
time.sleep(5)
.
受け取る側はrailsで作ってみました。
絶賛勉強中なので。
..............................................
(qqq.html.erb)
# encoding: utf-8
<%=@msg%>
読み取った値<%=@msg3%>(50以上で画面遷移)
更新日時<%=@msg2%>
5秒後自動で更新します。
.....................................................................
(aaa_controller.rb)
# encoding: utf-8
class AaaController < ApplicationController
def nnn
heloa = Helo.find(1)
str2 = params['txt1']
heloa.update_attributes(:content => str2)
end
def qqq
heloa = Helo.find(1)
str = heloa.content
upd = heloa.updated_at
val = str.to_i
aaa = "aaaa"
@msg2 = upd
@msg3 = str
@msg4 = aaa
if val < 50 then
@msg="画面1"
@msg4 = "white"
else
@msg = "画面2"
@msg4 = "blue"
end
end
end
....................................................
(routes.rb)
Rails.application.routes.draw do
get 'aaa/qqq'
post 'aaa/nnn'
end
これで圧力センサの値を読み取って、値が変わると画面も変わるようになります。
これができるとどうなるの?という話ですが、この先はお任せしたいと思います。
参考になれば幸いです。