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