MQTT上報電壓值

2021-10-02 01:16:55 字數 1397 閱讀 9126

const char *fmt=

"/sys/%s/%s/thing/event/property/post"

;

int example_publish

(void

*handle)

ret =

read

(fd, data,

sizeof

(data));

if(ret <0)

close

(fd)

;/* collect data and calculate the voltage */

get_value =

atof

(data)

; voltage = vref *

(get_value /

4096);

sprintf

(payload,

",\"method\":\"thing.event.property.post\"}"

,voltage)

;//這裡的currentvoltage就是之前新增標準功能的key

topic_len =

strlen

(fmt)

+strlen

(demo_product_key)+

strlen

(demo_device_name)+

1;topic =

hal_malloc

(topic_len);if

(topic ==

null

)memset

(topic,

0, topic_len)

;hal_snprintf

(topic, topic_len, fmt,

demo_product_key

,demo_device_name);

res =

iot_mqtt_publish_******(0

, topic,

iotx_mqtt_qos0

, payload,

strlen

(payload));

if(res <0)

hal_free

(topic)

;hal_free

(payload)

;hal_free

(data)

;return0;

}

可以看到列印出的電壓值和裝置執行狀態

ADC 與實際電壓值的關係

1.首先確定adc用幾位表示,最大數值是多少。比如乙個8位的adc,最大值是0xff,就是255。2.然後確定最大值時對應的參考電壓值。一般而言最大值對應3.3v。這個你需要看這個晶元adc模組的說明。暫存器中有對於輸入訊號參考電壓的設定。3.要計算電壓,就把你的adc數值除以剛才確定的最大數值再乘...

交流電壓有效值怎麼求

按照有效值的嚴格定義,常見的方法有 1 通過模擬電路實現,被測訊號經過乘法器 平方 積分器 平均 開方運算電路三個環節計算。2 數字訊號處理方法,也可通過高速取樣後將模擬訊號變為離散時間訊號 數碼訊號 再通過數值運算的方式實現。3 採用專用的真有效值ic晶元,如ad536 ad637 ltc1968...

通過PCF8591控制電壓值(DA轉換)

1 pcf8591 是乙個單片整合 單獨供電 8 bit cmos資料獲取器件。2 ain0 ain1 ain2 ain3為模擬輸入端 3 aout為模擬輸出端 4 ext為低電平時使用內部時鐘,為高電平時使用外部時鐘 5 a0 a1 a2為位址引腳 6 ocs vref agnd照著接相應電平就行...