raspberry piとactivemqで作るセンサーライト
DESCRIPTION
Japan JBoss User Group 2013/8/30 勉強会 灼熱のJBoss 発表資料 https://community.jboss.org/groups/japan-jbugTRANSCRIPT
![Page 1: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/1.jpg)
![Page 2: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/2.jpg)
富豪的センサーライトを作ってみた
小西 高之@leather_sole
![Page 3: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/3.jpg)
光センサー
LED
![Page 4: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/4.jpg)
準備したもの
• Raspberry Pi ( 3台以上 )• 光センサー• LED• その他いろいろ
![Page 5: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/5.jpg)
Raspberry Pi って知ってますか?
![Page 6: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/6.jpg)
![Page 7: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/7.jpg)
Raspberry Pi :特徴
• Linuxが動く– Javaも動く
• 安価• フィジカルコンピューティング向き
– GPIO– I2C
![Page 8: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/8.jpg)
構成
![Page 9: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/9.jpg)
ActiveMQ ( Message Broker )
• Protocols– OpenWire– AMQP– STOMP– REST– etc.
![Page 10: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/10.jpg)
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>
( )抜粋
![Page 11: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/11.jpg)
光センサー( Producer )
• Python• STOMP
– stomp.pyライブラリ
![Page 12: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/12.jpg)
光センサー( 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')
( )抜粋
![Page 13: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/13.jpg)
ライト( Consumer )
• Java– Pi4J
• OpenWire
![Page 14: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/14.jpg)
ライト( 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();
}
![Page 15: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/15.jpg)
センサーライトで不安なこと
![Page 16: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/16.jpg)
センサーライトで不安なこと
• ActiveMQがハングしないか?• ActiveMQとの接続が断線しないか?
![Page 17: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/17.jpg)
クラスタ構成
![Page 18: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/18.jpg)
Producer failoverConsumer failover
Broker cluster
![Page 19: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/19.jpg)
<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
![Page 20: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/20.jpg)
One more thing...
![Page 21: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/21.jpg)
WebSocket
• STOMP• JavaScript
– Flot• http://www.flotcharts.org/
![Page 22: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/22.jpg)
まとめ
• 物理マシン!安価!省スペース!• 組み込みと Java EEの融合?• ActiveMQに触ってみよう
![Page 23: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/23.jpg)
Raspberry Pi とActiveMQ で作るセンサーライト
小西 高之@leather_sole
![Page 24: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/24.jpg)
Thanks!
![Page 25: Raspberry PiとActiveMQで作るセンサーライト](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5552ddacb4c90532498b4ce1/html5/thumbnails/25.jpg)