Upload
takayuki-konishi
View
1.908
Download
0
Embed Size (px)
DESCRIPTION
Japan JBoss User Group 2013/8/30 勉強会 灼熱のJBoss 発表資料 https://community.jboss.org/groups/japan-jbug
Citation preview
富豪的センサーライトを作ってみた
小西 高之@leather_sole
光センサー
LED
準備したもの
• Raspberry Pi ( 3台以上 )• 光センサー• LED• その他いろいろ
Raspberry Pi って知ってますか?
Raspberry Pi :特徴
• Linuxが動く– Javaも動く
• 安価• フィジカルコンピューティング向き
– GPIO– I2C
構成
ActiveMQ ( Message Broker )
• Protocols– OpenWire– AMQP– STOMP– REST– etc.
ActiveMQ ( Message Broker )
<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616”/>
<transportConnector name="amqp" uri="amqp://0.0.0.0:5672”/>
<transportConnector name="stomp" uri="stomp://0.0.0.0:61612"/>
<transportConnector name="stomp+nio" uri="stomp+nio://0.0.0.0:61613"/>
<transportConnector name="ws" uri="ws://0.0.0.0:61614/" />
</transportConnectors>
( )抜粋
光センサー( Producer )
• Python• STOMP
– stomp.pyライブラリ
光センサー( Producer )
adc = ADS1x15() #ADコンバータを指定
conn = stomp.Connection([('169.254.0.11', 61613),('169.254.0.14', 61613)])
conn.start()
conn.connect()
while True:
result = adc.readADCSingleEnded(0)
conn.send(str(result), destination='/queue/test')
( )抜粋
ライト( Consumer )
• Java– Pi4J
• OpenWire
ライト( Consumer )
private static GpioController gpio;
private static GpioPinDigitalOutput pin;
( )抜粋
gpio = GpioFactory.getInstance();
pin = gpio.provisionDigitalOutputPin(
RaspiPin.GPIO_05, "MyLED",PinState.LOW);
Message message = consumer.receive();
String text = ((TextMessage) message).getText();
if (Double.parseDouble(text) > 1000){ pin.high();
} else { pin.low();
}
センサーライトで不安なこと
センサーライトで不安なこと
• ActiveMQがハングしないか?• ActiveMQとの接続が断線しないか?
クラスタ構成
Producer failoverConsumer failover
Broker cluster
<networkConnectors>
<networkConnector uri="static:(tcp://169.254.0.14:61616)"/>
</networkConnectors>
java.naming.provider.url = failover:(tcp://169.254.0.11:61616,tcp://169.254.0.14:61616)
Broker(169.254.0.11): conf/activemq.xml
stomp.Connection([('169.254.0.11', 61613),('169.254.0.14', 61613)])
Producer
Consumer: jndi.properties
One more thing...
WebSocket
• STOMP• JavaScript
– Flot• http://www.flotcharts.org/
まとめ
• 物理マシン!安価!省スペース!• 組み込みと Java EEの融合?• ActiveMQに触ってみよう
Raspberry Pi とActiveMQ で作るセンサーライト
小西 高之@leather_sole
Thanks!