物联网项目开发笔记
一 物聯(lián)網(wǎng)項(xiàng)目的組成
一般來說物聯(lián)網(wǎng)項(xiàng)目都分5個部分,需要多個部分合作完成
1.手機(jī)app+web后臺管理部分 2.物聯(lián)網(wǎng)設(shè)備通信服務(wù)器部分 3.物聯(lián)網(wǎng)設(shè)備微型芯片部分 4.電路板設(shè)計(jì)部分 5.模具設(shè)計(jì)部分軟件公司一般只負(fù)責(zé) 1,2,3項(xiàng)
二 物聯(lián)網(wǎng)設(shè)備通信
一般來說 有http(長連接), socket,mqtt 三種 通信方式
從靈活性來說應(yīng)該是mqtt 和http(長連接) 比較簡單
socket 需要自己設(shè)計(jì) 頂層 和 中間層, 但是程序可以做的很緊湊
三 開發(fā)語言的選擇
如果是mqtt 和http 建議用 java語言,組件完善穩(wěn)定
如果是socket 建議用python 開發(fā),bytes 和bytearray 提供了足夠的便捷
這種python 語言 對于字節(jié)數(shù)組的處理比java 優(yōu)秀太多
別去追求軟件極致性能,那都是可笑的, 只要程序運(yùn)行穩(wěn)定就行.
四 物聯(lián)電路
主板電路+微型芯片+通信模塊 三個部分組成,作用如下
主板控制 元器件
微型芯片 植入程序 控制主板工作
通信模塊 植入?yún)?shù) 連接芯片和互聯(lián)網(wǎng)服務(wù)器
術(shù)語
透傳(通信模塊)
透傳是指 數(shù)據(jù)輸入和輸出實(shí)時且一致
網(wǎng)絡(luò)服務(wù)器發(fā)出的數(shù)據(jù)經(jīng)過通信模塊被接力傳送給芯片,
或者芯片發(fā)出的數(shù)據(jù)經(jīng)過通信模塊后傳給網(wǎng)絡(luò)服務(wù)器
這種現(xiàn)象就是透傳,
注意:通信模塊一般可以在傳輸?shù)臄?shù)據(jù)頭部,添加固定文本
AT指令
AT指令 就是 在微型芯片和通信模塊之間的通信協(xié)議字符串
對于串口配置工具, 各家芯片設(shè)計(jì)都不一樣 AT指令也不一樣
通信芯片配置
有的電腦沒有 串口 可以購買usb轉(zhuǎn)com 線
必須安裝 對應(yīng)的usb to serial 驅(qū)動才能使用
有的芯片配置號重啟需要25s左右
芯片有配置模式和透傳模式 兩種
芯片的透傳模式可以有http tcp/udp mqtt 串口等模式
芯片可以有多個端口, 每個端口都可以配置一種透傳模式
填坑
python語言細(xì)節(jié)
return 即使在finally 之前 finally 后的內(nèi)容也會執(zhí)行
如果 finally 前后都有return 命令 只會執(zhí)行 finally之后的return
redis expire 鍵是一個bug,多程序操作時 不準(zhǔn)確
socket 坑
tcp 阻塞模式 適合 1000以下的接入
tcp 非阻塞模式 和多路復(fù)用模式 更適合建立類似http一樣的服務(wù)器,滿足1000以上的訪問量
通過 設(shè)置SO_LINGER屬性=1,0 強(qiáng)制斷開, 會引發(fā)客戶端數(shù)據(jù)延遲到達(dá)的問題
設(shè)置 SO_REUSEADDR實(shí)現(xiàn)地址復(fù)用, 更適合在客戶端使用,在服務(wù)端沒有意義
調(diào)試
物聯(lián)網(wǎng)卡
總結(jié)
- 上一篇: 麟龙至尊版软件四色谱四量图L2版 邱氏静
- 下一篇: Scala语言输出