In [ ]:
from resources.iot.device import IoT_sensor_consumer
from IPython.core.display import display
import ipywidgets as widgets
from resources.iot.device import IoT_mqtt_publisher, IoT_sensor
In [ ]:
widgets.FloatProgress(value=30.0, min=0, max=100.0, bar_style='danger', orientation='vertical')
In [ ]:
widgets.FloatProgress(value=60.0, min=0, max=100.0, bar_style='info', orientation='horizontal', description='pressão: ')
In [ ]:
widgets.Label("isto é um label")
In [ ]:
widget = widgets.FloatProgress(min=0, max=100.0, bar_style='info', orientation='vertical', description='exemplo') # 'success', 'info', 'warning', 'danger' or ''
widget_label = widgets.Label("isto é um label")
In [ ]:
display(widget, widget_label)
In [ ]:
consumer = IoT_sensor_consumer("localhost",1883,"sensor/+/+")
In [ ]:
consumer.connect(widget, widget_label)
In [ ]:
widget_1 = widgets.FloatProgress(min=0, max=40.0, bar_style='info', orientation='vertical')
widget_1_label = widgets.Label()
consumer_1 = IoT_sensor_consumer("localhost",1883,"sensor/1/+")
In [ ]:
widget_2 = widgets.FloatProgress(min=0, max=90.0, bar_style='warning', orientation='vertical')
widget_2_label = widgets.Label()
consumer_2 = IoT_sensor_consumer("localhost",1883,"sensor/2/+")
In [ ]:
widget_3 = widgets.FloatProgress(min=0, max=40.0, bar_style='info', orientation='vertical')
widget_3_label = widgets.Label()
consumer_3 = IoT_sensor_consumer("localhost",1883,"sensor/3/+")
In [ ]:
widget_4 = widgets.FloatProgress(min=0, max=90.0, bar_style='warning', orientation='vertical')
widget_4_label = widgets.Label()
consumer_4 = IoT_sensor_consumer("localhost",1883,"sensor/4/+")
In [ ]:
widget_avg = widgets.FloatProgress(min=0, max=90.0, bar_style='success', orientation='horizontal')
widget_avg_label = widgets.Label()
consumer_avg = IoT_sensor_consumer("localhost",1883,"sensor/*/temperature/avg")
In [ ]:
separator = widgets.Label(value=" ---------- ")
col_1 = widgets.VBox([widget_1, widget_1_label])
col_2 = widgets.VBox([widget_2, widget_2_label])
col_3 = widgets.VBox([widget_3, widget_3_label])
col_4 = widgets.VBox([widget_4, widget_4_label])
col_5 = widgets.HBox([widget_avg, widget_avg_label])
row_1 = widgets.HBox([separator, col_1, separator, col_2, separator, col_3, separator, col_4])
row_2 = widgets.HBox([col_5])
display(row_1)
display(row_2)
In [ ]:
consumer_1.connect(widget_1, widget_1_label)
consumer_2.connect(widget_2, widget_2_label)
consumer_3.connect(widget_3, widget_3_label)
consumer_4.connect(widget_4, widget_4_label)
consumer_avg.connect(widget_avg, widget_avg_label)
No notebook 2.iot-java.ipynb
, faça o componente que publica a média dos valores das N leituras publicar uma mensagem com a média das próximas 15 leituras de temperatura. Verifique se estas mensagens atualizarão o componente visual do tipo barra que está mais acima na posição horizontal.
Seguindo o notebook 1.iot-devices.ipynb
, na célula abaixo crie um sensor_5
com id/name 50 que publica leituras da grandeza física pressure
que variam dentro dentro do intervalo [90,110] psi (publicações devem ser feitas a cada 5 segundos). Crie também um publisher
e conecte os dois componentes.
In [ ]:
Seguindo os exemplos deste notebook, crie um widget do tipo barra
(faixa de valores entre 0 e 150) e um widget do tipo label
que deverão exibir os valores publicados no barramento pelo sensor_5
criado no exercício 2.
Crie um IoT_sensor_consumer
que deverá escutar o tópico sensor/50/pressure
. Exiba os componentes visuais e conecte os componentes para visualizar os valores.
In [ ]: