UI Sensor register 和 MQTT === 為了在之後加入MQTT等通訊方式,Sensor採用註冊的方式。 系統架構如下:  --- ## 註冊方法: * 感測器表註冊以下內容: 1. 感測器名稱(sensor_name) 2. 感測器初始化方法(initial) 3. 感測器取值方法(get_value) 4. 感測器結束方法(deinitializes) 將以下內容透過dictionary儲存傳出。 ex: ```python= # Register table def register_table(self): sensor_message = {} sensor_message["sensor_name"] = self.sensor_name sensor_message["initial"] = self.initialize sensor_message["get_value"] = self.get_value sensor_message["deinitializes"] = self.deinitialize return sensor_message ``` 範例: [Temperature sensor 程式](https://github.com/sss22213/UI-by-browser/blob/master/sensor/temperature.py) 將Sensor註冊表撰寫完之後,依據django MTV架構,系統將透過view進行網頁的回呼。 view中透過以下方式註冊Sensor。 ```python= # Sensor register sensor_table = sensor_register.sensor_register() sensor_table.register_by_table(temp.register_table()) sensor_table.initial_all_sensor() ``` 範例: [View](https://github.com/sss22213/UI-by-browser/blob/master/apps/views.py) --- ## 取值方法: 可直接透過註冊名稱向註冊表取得取值方法: ```python= def read_temperature(request): response_data = {} response_data["temperature"] = sensor_table.sensor_table['Temperature']["get_value"]() return HttpResponse(json.dumps(response_data), content_type="application/json") ``` --- ## MQTT設定 1. 透過SQL取得MQTT broker資訊(實驗中,目前未將登入帳密功能加入)。 Table: apps_mqtt_config  2. 透過SQL取得MQTT 將會發布感測器的資訊。 Table: apps_sensor_config  * 欄位1 sensor: 表示感測器名稱(與感測器註冊名稱是一樣的) * 欄位2: mqtt_status: 表示是否發布(1: 發布,0: 不發布) ## MQTT啟動 mqtt啟動在view檔案之中,啟動完成後會自動發佈。 ```python= # Initialize mqtt mc = mqtt.mqtt_center() # Dependence by register table mc.add_register_table(sensor_table.sensor_table) mc.run() ``` 範例: [View](https://github.com/sss22213/UI-by-browser/blob/master/apps/views.py)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up