United Statesからアクセスのようです。言語設定をEnglishに切り替えますか?
Switch to English site
Skip to main content

圧力センサの値をPOST送信してみた

ラズパイはアナログの入力ができません。

今回はI2C電圧計モジュールで、圧力センサの値を取得する方法について考えました。title

このようにつなぎます簡単です。(関係のないものが写ってしまっていますが)

ミノムシクリップに圧力センサをつないで電圧を取得することができました。

そしてなんとなく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

titletitle

これで圧力センサの値を読み取って、値が変わると画面も変わるようになります。

これができるとどうなるの?という話ですが、この先はお任せしたいと思います。

参考になれば幸いです。

umemura0714 さんはまだ自己紹介を入力されていません...
DesignSpark Electrical Logolinkedin