pythonuart
『壹』 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全部失敗,則本輪結束
繼續訪問
『貳』 如何在pcDuino上面使用python-serial
HomepcDuino如何在pcDuino上面使用python-serial
Previous Next
如何在pcDuino上面使用python-serial
1
Posted by: wang, lei , 六月 19, 2015
相信有些朋友在pcino上面使用python的時候會發現串口(GPIO0和GPIO1)發不出數據也接收不到數據,在ArinoIDE裡面使用卻可以正常通訊;然後返回到python下面,python-serial下面的通訊也正常,這是因為在python下面沒有設置gpio0和gpio1模式為UART模式,那麼我們在python代碼裡面將模式設置為UART,對pcino GPIO模式的設置,可以對下面文件夾裡面對應的埠寫模式,通用寫『0』為輸入模式,寫『1』為輸出模式,這里我們在GPIO裡面寫『3』可以配置為UART:
/sys/devices/virtual/misc/gpio/mode/
安裝python-serial:
sudo apt-get instal python-serial
測試代碼:
import serial
with open("/sys/devices/virtual/misc/gpio/mode/gpio0",'w') as UART_RX:
UART_RX.write('3')
with open("/sys/devices/virtual/misc/gpio/mode/gpio1",'w') as UART_TX:
UART_TX.write('3')
myport = serial.Serial("/dev/ttyS1",9600,timeout=10)
myport.open()
myport.write('python serial test on pcino\n')
data = myport.readline()
if len(data)>0:
print(data)
myport.close()
保存上面的測試代碼為「serial_test.py」文件,然後運行:sudo python ./serial_test.py (需要外接一個USB轉串口的模塊和pcino串口通訊,如果沒有,也可以直接用跳線將RXD和TXD短接起來,終端會列印出發送的數據「python serial test on pcino」):
1
使用pc端的串口調試工具發送數據到pcino上:
2
『叄』 學習Linux的步驟是怎樣的
對於Linux的學習,可以分為四個階段,Linux初級入門階段→Linux中級進階→Linux高級進階→Linux資深方向細化階段
第一階段:初級階段
初級階段需要把linux學習路線搞清楚,任何學習都是循序漸進的,所以學linux也是需要有一定的路線。
1. Linux基礎知識、基本命令;
2. Linux用戶及許可權基礎;
3. Linux系統進程管理進階;
4. linux高效文本、文件處理命令;
5. shell腳本入門
第二階段:中級進階
中級進階需要在充分了解linux原理和基礎知識之後,對上層的應用和服務進行深入學習,其中說到服務肯定涉及到網路的相關知識,是需要花時間學習的。
1. TCP/IP網路基礎;
2. Linux企業常用服務;
3. Linux企業級安全原理和防範技巧;
4. 加密/解密原理及數據安全、系統服務訪問控制及服務安全基礎;
5. iptables安全策略構建;
6. shell腳本進階;
7. MySQL應用原理及管理入門
第三階段:Linux高級進階
1. http服務代理緩存加速;
2. 企業級負載集群;
3. 企業級高可用集群;
4. 運維監控zabbix詳解;
5. 運維自動化學習;
第四階段:Linux資深方向細化
1. 大數據方向;
2. 雲計算方向;
3. 運維開發;
4. 自動化運維;
5. 運維架構師
以上是Linux的一個學習方向和路線,對於Linux學習是一個需要堅持的過程,也許通過自學或者培訓,3至6個月都可以把基本知識學會,但是重在實踐,深入的思考和不斷的摸索,你會發現Linux更多的美!
『肆』 Python語言中uart.any()是什麼意思
應該是any(uart)吧?如果是的話,那麼uart應該是列表、元組、集合、字典中的一個,如果列表、元組、集合裡面有一個值不為0、空字元串、False,就返回True,比如說any([0, 0, False, ''])就會返回False,因為全部都是假;如果是any([1, 0, 0])就會返回True,因為有一個是真。字典的話就相當於把裡面的鍵提取出來,再來像上面一樣進行判斷。