『壹』 如何保證感測器與單片機之間傳輸的數據不被丟失
為保證感測器與單片機之間傳輸的數據不被丟失,應當應用mqtt3.1協議。mqtt3.1協議,它是訂閱發布模式的,也就是舉纖說,感測器和app同時訂閱一個topic,只要感測器扮吵把數據(payload)publish到mqttbroker(服務端),所有訂閱了這個topic的app都會收到感測器的數據推送。並且mqtt協議的廳答侍remain標識,能夠讓app即使不在線,也能講感測器的數據保留,直到app上線後再進行推送,這樣就能保證感測器與單片機之間傳輸的數據不被丟失。
『貳』 單片機 mqtt 怎樣節省ram
彎含int transport_sendPacketBuffer(int sock, unsigned char* buf, int buflen);
int transport_getdata(unsigned char* buf, int count);
int transport_open(char* host, int port);
int transport_close(int sock);
修者斗改上述transport.c裡面的埋嫌笑四個介面試試
『叄』 如何在windows上用C語言實現MQTT協議
C語言是一門通用計返燃殲算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSI C,作為C語言最初的標准。 目前2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,漏沖一定程度上實現了漢字編程。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。段握
『肆』 物聯網開發需要什麼技術呢
物聯網開發需要的技術
一:單片機/嵌入式開發
智能硬體,哎,不就是單片機嗎?說到底就是一個微控制器,現在出現的智能手錶,調光LED燈,藍牙開鎖,WiFi插座等等,說到底不就是單片機開發嘛?單片機,電子和通信專業一般都會教51或AVR、計算機系接觸不到。現在流行的Arino也是單片機開發的一種。
但是要做一款智能硬體,技術上只會單片機編程還是不行的。哎呀嘛什麼智能硬體,本質上就是一個電子產品!。所以你要開發一款能拿得出手的智能硬體,電子系統設計必須要會的!
二:網路通信協議
智能硬體與傳統的電子產品最大的差別,就是智能硬體連上了網路。要連上網路,就需要用到網路通信模塊及學習網路通信協議——TCP/IP。
TCP/IP是一個技術的總稱,裡麵包含兩種協議TCP、UDP,位於網路通信分層模型的傳輸層,同時也是由操作系統管理。而HTTP、DNS、URI等這些技術,屬於應用層,位於TCP/UDP之上。同樣,最近物聯網比較流行的,針對計算能力有限的通訊設備而出的MQTT協議,也屬於TCP之上。
為了讓電子產品有聯網的能力,只要在電路設計上給主控晶元連接一個通信模塊,寫好收發網路指令的代碼,剩下的就是電子產品設計了。
三:服務端開發框架
Client/Server架構,即客戶端/伺服器架構。智能硬體連上後台伺服器後,其就是一個客戶端,一個終端。由於單片機中資源受限,實際上是不太可能用HTTP協議的,所以互聯網中通用的Web伺服器開發並不適合這里。有的廠家會在TCP之上自定義協議,有的就移植別人做好的協議比如MQTT,CoAP等等。
服務端開發就比較復雜了。單片機/嵌入式軟體開發還好,只要學習好C語言即可打遍天下無敵手,而服務端開發,用Java呢還是python還是PHP?反正Java和Python選一個就好了,嵌入式出身的工程師,一般都會學Python。
Python伺服器端的開發框架種類繁多,Web開發的有Django、FlaskTornado WebServer,TCP伺服器可以用Twisted,等等。MQTT有已經做好的伺服器,像這樣的伺服器不用自己開發,直接部署即可。
『伍』 ec600模組入網又休眠
使用rt thread系統里的EC200驅動包+web client做一個物聯網項目,之前開發的時候一直都是用的EC600S模塊,看起來挺好的,沒什麼大問題,後來量產的時候不小心買了EC600N焊上去了,之前也聽廠家的技術支持說應該是完全一樣的,可是就掉進了這個坑裡。
故障現象:
模塊的net_status和net_mode燈的狀態不太對,模塊開機後的最終狀態有時候net_mode常亮,net_status滅掉,或者net_status一直在慢閃,net_mode一直熄滅。甚至有時候我的應用可以先從伺服器拿一包數據,然後又掛掉再也連不上了。
分析:
上述這兩種狀態都不在文檔描述中,打at client去看,你發什麼它都是直接回顯,比如發AT+CPIN?它就直接回,而不是回OK或者錯誤,所以初步判斷是模塊進入了一個錯誤的狀態。那麼能讓模塊進入錯誤狀態無非就是以下幾種情況:
睡眠或者開機、重啟的姿勢不對
或者在模塊初始化之前我的應用代碼把它搞死了。但是之前用EC600S開發都是好的,而且一般應用代碼不太能把模塊搞到錯誤狀態,這種可能性比較低。
排查:
針對第二種情況,排查很簡單,先把應用軟體去掉看看。故障依舊,所以繼續排查1.
在EC200的驅動包里要配置開機引腳,狀態引腳,睡眠引腳。無論是開發什麼東西,一般睡眠這種狀態是最容易出問題的,包括x86開發,usb設備開發,屢見不鮮,所以首先把睡眠去掉了(-1),但是故障依舊。
剛開始我始終沒有懷疑狀態引腳,因為它是個輸入,只是判斷一下模塊有沒有開機,感覺不會有什麼問題,所以繞來繞去一直沒有去動它。直到看到了有個哥們遇到了類似的問題:
RT-Thread-at_device 沒有使用power pin 導致的網路異常 bugRT-Thread問答社區 - RT-Thread
這個問題其實我之前用EC600S的時候好像也遇到了,但是我並不用ping,應用也沒有問題,所以也沒去管他。不過這倒提醒了可以去試試,於是把開機狀態也改成-1,居然就好了。
電源引腳我沒去動它,模塊是需要有一個開機時序的,我看它的初始化代碼里也有去動電源引腳重新開機之類的。
希望其他掉在坑裡的小夥伴可以看到我這篇帖子,少走點彎路。
打開CSDN,閱讀體驗更佳
Quectel_EC600S系列_TCP(IP)_應用指導_V1.2.rar
EC600S-CN 模塊內置 TCP/IP 協議棧, Host 可以 直接通過 AT 命令訪問網路; 這大大降低模塊對 PPP 和外部 TCP/IP 協議棧的依賴性,從而降低終端設計 的成本。
EC600N(二)--核心板初次點亮
系列文章目錄 EC600N(一)–基本信息介紹 EC600N(二)–核心板初次點亮 目錄系列文章目錄前言一、使用前說明1.供電方式2. 模塊開機狀態二、AT指令測試1.測試准備2.AT指令測試 前言 本次實驗使用移遠EC600N雙排核心板,主要使用AT指令測試模塊,測試模塊的USB口和3.3V串口。 一、使用前說明 1.供電方式 EC600N模塊需要用排針的VIN進行供電,供電如下圖所示: USB口供電可能達不到模塊的開機要求(由於串聯了二極體,有壓降),一般採用針腳對模塊供電。這個設計有點雞肋。 2.
繼續訪問
移遠4G模組EC600N進行TCP/IP連接和伺服器測試
最近公司產品需要增加一個4G模塊進行數據傳輸,想到之前做的移遠的4G模塊,於是買了一個核心板回來調試。 協議選擇TCP/IP,因此使用的是TCP/IP部分的AT指令手冊。工具方面,使用串口調試助手,關於測試伺服器,一開始用的安信可的透傳雲,但是伺服器連接一段時間不發送消息就會自動斷開,所以還是使用了網路調試助手。因為網路調試助手使用的是本地網路,如果需要和4G通信,還需要使用花生殼做內網穿透。 接下來先把伺服器部分做好。 如果沒有花生殼軟體,建議先去官網下載一個 長這樣色的。安裝後打開界面如下 這個界
繼續訪問
STM32F405+4G模塊OTA固件升級調試記錄
STM32F405+4G模塊OTA固件升級調試個人記錄
繼續訪問
Cat.1模塊使用總結(EC600N)
由於Cat.4模塊(EC20)功耗大,考慮到NB網路覆蓋問題(設備在野外工作場景),因此項目上用選擇了Cat.1(EC600N)模塊,現在把調試過程總結下,希望能夠幫助到大家。EC20使用總結請看:單片機和4G模塊通信總結(EC20)。 一、電源 手冊說供電電壓≥3.4V,峰值電流3A。 二、通信口 UART和IO口都是1.8V,需要做電平準換。 三、開機順序 我是上電1s後復位,復位低電平600ms,然後100ms後開機,開機等待10s後進行操作。 四、AT指令 採用消息地體原理,具體請看
繼續訪問
日誌組件
日誌組件 1. 日誌是什麼 日誌是軟體應用必備的組件,是程序debug,或是數據收集管理的重要依據,方便我們監測生產環境的變數值變化以及代碼運行軌跡。本課程主要用來學習實際開發中常用的日誌組件。 主要是為了方便我們監測生產環境的變數值變化以及代碼運行軌跡等。 這些記錄會被輸出到我們指定的位置形成文件,幫助我們分析錯誤以及用戶請求軌跡。 2. 常用日誌組件 2.1 Log4j與log4j2.x Log4j有8種不同的log級別,按照等級從低到高依次為:ALL>TRACE>DEBUG>
繼續訪問
ESP32+移遠EC600N模組通過MQTT連接阿里雲並通過HTTP進行OTA升級
ESP32+移遠EC600N模組通過MQTT連接阿里雲並通過HTTP進行OTA升級。以下是我這段時間進行的工作,分享下自己的研究成果,也讓後面的小夥伴少踩一些坑。同時通過文章記錄下操作步驟,免得自己過段時間忘記。以下是ESP32和EC600N模組之間通過串口進行數據交互的詳細調試信息輸出內容。...
繼續訪問
熱門推薦 EC600N(一)--基本信息介紹
EC600N使用說明 EC600N(一)–基本信息介紹 目錄EC600N使用說明前言一、模塊組的基本介紹1.模組的基本選型信息2. EC600N核心板基本信息二、EC600N功能介紹1.基本功能介紹2.引腳功能三.補充 前言 EC600N是一款移遠推出的4G模塊。移遠和中傳移動是主要的4G模塊和NB-lot模塊的供應商。由於移遠的模塊使用相對比較廣泛,所以用它試試。 相關資源鏈接: 官網,這個網站找資料比較費勁。 quetcelpython下載中心,移遠的多數模塊支持python的二次開發。 quetcel
繼續訪問
移遠QuecPython(基於EC600s)開發物聯網應用(七) QuecPython通訊相關模塊
一. sim --SIM卡模塊 import sim 1. 獲取sim卡的imsi sim.getImsi() 參數 無 返回值 成功返回string類型的imsi,失敗返回整型-1。 2. 獲取sim卡的iccid sim.getIccid() 參數 無 返回值 成功返回string類型的iccid,失敗返回整型-1。 3. 獲取sim卡的電話號 sim.getPhoneNumber()...
繼續訪問
【C語言】一個好用的循環隊列與使用示例(以EC200/600為例的AT框架)
目錄1.前言2.結論3.循環隊列3.1寫隊列到隊列頭3.2從尾部讀讀隊列3.3獲取當前隊列內數據數量3.4清空隊列3.5兩個重要結構體4.效果與示例4.1三個讀隊列線程4.2 AT框架寫隊列與EC200初始化4.3 AT框架讀隊列4.4 EC200維持TCP長連接5.下載5.1 循環隊列5.2 AT框架+EC200的TCP長連接(與EC600通用) 1.前言 上一篇:https://blog.csdn.net/ylc0919/article/details/111050124 自從之前說要發二代框架,不知不
繼續訪問
阿里雲在線溫濕度-小熊派qpython(綜合展示)
需要用到的東西: 小熊派的ec100y開發板; i2c的溫濕度感測器(我這里用的sht31,其他的也可以,自行修改代碼); 阿里雲賬號; 接線:用到3.3v,GND,i2c的SCL和SDA 阿里雲顯示展示: app展示: 代碼: # 包引用部分 import log from aLiYun import aLiYun import ujson import utime from machine import I2C import pm # 用戶變數區域 # 上傳間隔(單..
繼續訪問
EC600N-AT 軟體包筆記
INIT_DEVICE_EXPORT(ec200x_device_class_register); 開辟struct at_device_class結構體 進入at_device_class_register 怎麼跳轉到的static int ec200x_init(struct at_device *device) at_device_class_registe執行完後到 INIT_APP_EXPORT(ec200x_device_register); static int ec200x_device_r
繼續訪問
open方案、openCPU-EC600、L610設計應用總結
OPEN CPU模組設計應用總結 咸魚NO FASHION 根據實際項目需求選擇最優的設計方案,是一名合格硬體工程師的基本功。 背景與優缺點說明: 對於物聯網項目,大多數公司或者產品需更為便宜方案,因此在物聯網項目中open CPU方案迎來黃金發展期。物聯網項目本身就需要無線通信模組,通信模組開放一定IO口和通信介面,優點可以解決目前廣大用戶主控MCU短缺的痛點,降低開發成本;缺點IO口和通信介面使用相對於主控MCU不夠靈活,介面相對較少。 軟體方面: 支持open C和open Python(
繼續訪問
Quectel EC800N-CN 小尺寸物聯網首選LTE Cat 1模塊[移遠通信]
EC800N-CN是移遠通信專為M2M和IoT領域而設計的LTE Cat 1無線通信模塊,支持最大下行速率10 Mbps和最大上行速率5 Mbps,超小封裝,超高性價比。 EC800N-CN採用鐳雕工藝,鐳雕工藝具有外觀更好看、金屬質感強、散熱更好、信息不容易被抹除、更能適應自動化需求等優點。 EC800N-CN內置豐富的網路協議,集成多個工業標准介面,並支持多種驅動和軟體功能(如Windows7/8/8.1/10、linux、Android等操作系統下的USB虛擬串口驅動);極大地拓展了其在M
繼續訪問
EC600S串口通信
EC600S有兩個串口通信口,TX0/RX0;TX2/RX2,分別對應程序中的UART0 - DEBUG PORT和UART2 – MAIN PORT。運行本常式, 需要通過串口線連接開發板的 MAIN 口和PC,在PC上通過串口工具打開 MAIN 口,並向該埠發送數據,即可看到 PC 發送過來的消息。 (可通過串口轉usb口,把TX2/RX2分別與轉usb口的RX/TX連接到電腦上即可) """ 運行本常式,需要通過串口線連接開發板的 MAIN 口和PC,在PC上通過串口工具 打開 MAIN 口,並向
繼續訪問
移遠EC20/600系列TCP發送可變長度數據的結束標志!
移遠EC20/600系列TCP發送可變長度數據的結束標志!
繼續訪問
移遠ec200/600的使用
移遠ec200、ec600的使用: linux2.6.22 pppd-2.4.4 ec600s 參考的是ec200s的撥號相關文檔: 1:/driver/usb/serial/option.c更改了4個位置,並沒 有嚴格按照ec200s的指導文檔來(2.6.30以上、3.0以上內核還會涉及wwan、qcserial相關文件,看相關文檔) 2:內核config USB_SERIAL=y USB_USBNET=y USB_NET_CDCETHER=y (還沒搞清楚...
繼續訪問
EC600U
ec600u,tcp client 斷線重連
繼續訪問
最新發布 STM32+USART+DMA+EC600N調試
在stm32Cube中,打開DMA發送中斷和接收中斷,打開usart全局中斷。主要調試功能:(1)使用DMA發送固定長度數據給串口,(2)使用DMA接收不定長度幀數據。(1)利用DMA傳輸,發送固定大小數據 換成 包裝代碼如下: (2)利用DMA傳輸,接收大小可變的數據利用串口空閑中斷,識別一幀的數據,參考鏈接: 注意:空閑中斷結束後,記得重新開啟DMA接收。指令解析 AT執行邏輯 每個AT指令執行成功,則繼續下一條,如果本條AT指令執行失敗,則重復執行,最多執行10次,如果10全部失敗,則本輪結束
繼續訪問
『陸』 遠程式控制制單片機一定要雲平台嗎
你好,目前的技術來說是的。
可以使用微信小程序使用MQTT遠程式控制制單片機,基於阿里雲物聯網平台的MQTT小程序。
操作如下:
1、注冊阿里雲,
2、找到物聯網平台並創建設備,
3、進去物聯網平台裡面點擊公共實例,
4、創建完成,點擊查看,查看裡面的產品信息。如此步驟便可在阿里雲平台進行注冊,注冊完成後便可嘗試對單片機進行控制,以便查看雲平台是否能夠在控制單片機上起到很大的作用。
『柒』 怎麼使用esp8266WiFi模塊,js連接mqtt,實現簡單的智能家居控制
開發資源
1、Esp8266 Wi-Fi模塊
2、局中型機智雲串口調試軟體
3、51單片機或者STM32單片機或者其它單片機
4、Windows 10
主要設計思路
一句話概括:將esp8266 Wi-Fi 模塊連接上能上網的路由器(手機開熱點作為路由器也行),連接過程需要做一些配置,以跟機智雲平台對接。之後智能終端(手機或平板)跟Wi-Fi模塊綁定後即可遠程或者區域網控制設備。
簡易介紹機智雲官方提供的文檔資料
機智雲給開發者提供了大量開發支持,如開源的安卓/蘋果SDK、APP等,開發者直接在開源的架構上二次開發即可,從而減少開發工作量。文檔中心提供大量的接入教程,非常詳細,此處不再重復說明。
機智雲官方文檔中心鏈接:http://docs.gizwits.com/zh-cn/overview/overview.html
步驟一:
我們要將自己的Wi-Fi模組跟機智雲對接,必須對Wi-Fi模組燒錄機智雲官方給的GAgen固件。硬體廠商對硬體智能化的第一步是讓設備能夠聯網,GAgent是機智雲提供的一款兼容國內主流Wi-Fi模塊、移動網路模塊的模組系統。硬體廠商只需理解如何與GAgent進行通訊即可。
詳細教程鏈接地址:http://docs.gizwits.com/zh-cn/GCP/wmole/ESP8266.html#ESP8266
步驟二:
在機智雲平台注冊一個屬於自己的賬號。
1、創建產品
2、創建數據點
3、根據需求選擇MCU開發或者SOC開發。MCU開發就是在51/STM32等單片機開發,代碼可自動生成,不需要懂協議即可開發。SOC開發是指直接在ESP8266上開發。注意:自動生成的代碼,MCU運行環境至少要有2K的RAM左右的大小,如果是普通的51單片機,RAM一般不足1K,STC15系列有2K大小的RAM,STM32基本所有系列RAM大小都超過2K。如果RAM不夠的單片機,就需要自己懂協議,才能開發。協議其實也挺簡單,無非就是一些你發數據包,我解析後回復給你數據,有來桐猜有往。
4、手機安裝機智雲開源的APP,進行調試測試
5、.......
詳細教程:http://docs.gizwits.com/zh-cn/quickstart/UseMCU.html
步驟三:
建議直接使用機智雲封裝好的協議,直接自動生成包含協議相關的代碼,前提是,你得保證你的單片機擁有超過2K的RAM大小空間。如果不滿足RAM大小的單片機,則自己根據協議文檔編寫代碼,通信協議在《開發向導》里下載,如圖下所示。
根據文檔協議寫測試代碼的時候,可以不著急在單片機上測試,機智雲提供了一個串培畝口調試助手,可在這里先測試好。
機智雲機智雲串口工具使用文檔:http://docs.gizwits.com/zh-cn/deviceDev/%E4%B8%B2%E5%8F%A3%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3.html
關於單片機上的應用開發,不管開發什麼產品,協議上報數據格式都是固定不變的。遇到問題多看機智雲官方給的教程即可解決絕大部分問題。
『捌』 怎麼使用esp8266WiFi模塊,js連接mqtt,實現簡單的智能家居控制
如果您是想通過esp8266WiFi模塊的MQTT協議來實現智能家居控制的話,可以了解一下支持MQTT協議的esp8266WiFi模塊,比如SKYLAB的WG219/WG229以及WG231。
WG229
WG229是一款基於ESP8266晶元方案的小尺寸低功耗低成本串口WiFi模塊,符合802.11b / g / n 無線模塊標准,支持UART-WiFi -乙太網數據傳輸。專為移動設備和物聯網應用設計,可將用戶的物理設備連接到WiFi無線網路上,進行互聯網或區域網通信,實現聯網功能。另外WG229僅需要通過出串口使用AT指令控制,就能滿足大部分的網路功能需求。WG229高性能、低功耗、低成本、支持串口透傳等特性,使得WG229在高集成、低功耗自動化和感測器解決方案的理想解決方案,WG229和LCS6260 Pin對Pin兼容,可替代ESP8266方案的ESP-12F。
支持MQTT協議的IoT UART介面WiFi模塊也都是支持對接雲端服務的。LCS6260支持對接阿里雲、塗鴉雲,WG219/WG229/WG231支持對接阿里雲。
『玖』 單片機聯網是不是得要伺服器
單片機聯網需要伺服器來實現網路連接和數據交互。單片機本身沒有網路通訊功能,無法通過區域網或互聯網與其他設備或系統進行通訊,因此需要藉助伺服器來實現聯網。伺服器是一台專門用於處理網路請求和數據傳輸的計算機,能夠提供穩定的網路環境和數據交換的演算法。單笑缺片機通過網路接入伺服器後,可以從伺服器獲取上傳感測器和控制指令,實現遠程式控制制和數據採集的功能。當然,針對不同的需求場景,單片機聯網的方案也有不同的設計。有一些基於物聯網的平台和技術,比如MQTT、CoAP、HTTP等,不需要單獨的伺服器,並且提供簡單的API和web-socket介面,方便開發者快速實現單片機的聯網功能爛做。總之,實現單片機的飢升衡聯網功能需要依託網路技術和伺服器,但是針對不同的需求場景,可以選擇不同的技術方案來實現。