使用ZigBee模組實現PC機與樹莓派的無線通訊
背景:最近在做專案的過程中看到了一份以前的學長留給我的ZigBee模組的資料,之前在和其它學院的同學一起準備某個比賽的時候聽說過ZigBee是一種無線通訊模組,於是就淘寶了一下,找到了這個
然後在淘寶詳情頁仔細看了一下,發現它用到了我之前學過的UART協議,這個協議並不是指兩個模組之間的無線通訊協議,而是在某一個通訊模式,某一個通道下,模組A通過串列埠收到的資料會從模組B的串列埠發出,而這兩個模組之間是怎麼通訊的我們沒必要知道,只要你會用UART協議,就能在支援此協議的平臺下開發出各種有趣的無線應用了。
需要裝置:樹莓派開發板、ZigBee CC2530模組至少兩個、USB轉串列埠線一個(CP2102或CH340均可)、PC機、杜邦線若干
首先,我們要清楚的是,我們在做的是兩個模組點對點通訊,原理我已經說過了,即模組A通過串列埠收到的資料會從模組B的串列埠發出,那麼我們的做法就是,通過PC機的串列埠除錯助手向模組A傳送資料,然後資料會從模組B的串列埠發出,然後我們將模組B與樹莓派連線起來,VCC對VCC,GND對 GND,模組的TXD連線樹莓派的RXD,模組的RXD連線樹莓派的TXD,然後我們在樹莓派上用程式讀取串列埠發出來的資料,那麼我們就收到了PC機發過來的資料,過程就是這麼簡單。
在這之前要配置好無線模組的波特率,通道,以及通訊模式,如果你是在淘寶上買好的模組,相信商家應該會提供給你詳細的資料以及配置方法等,如果你不知道如何配置的話,就請參考下面的連結和視訊網址:
(提示:配置的時候最好別把TXD和RXD都連上,不然可能會發生錯誤,最好配置完使用的時候再接那兩根線,本人親測)
開始除錯:把USB轉串列埠模組一頭連上電腦的USB口,一頭接ZigBee無線模組,然後開啟串列埠除錯助手串列埠除錯助手下載
樹莓派程式程式碼:
import serial
import time
t = serial.Serial("/dev/ttyAMA0",9600)
while True:
str=t.read(32)
print str
time.sleep(1)
t.close()
開啟串列埠除錯助手:
選擇好串列埠號和波特率,我這裡串列埠號是com8,波特率是9600,這裡波特率一定要和模組配置的波特率一致,不然就會引起通訊錯誤。在樹莓派上執行剛才那個python檔案,點選串列埠除錯助手的傳送按鈕,如果成功,就會在樹莓派上看到你通過串列埠除錯助手傳送的內容:如下圖所示:
看,這裡收到的資料是不是和你傳送的是一樣的呢,而且你在串列埠除錯助手裡麵點一次傳送這裡就會多顯示一行,至此就說明兩個模組在點對點模式下能夠正常通訊了。
相關推薦
使用ZigBee模組實現PC機與樹莓派的無線通訊
背景:最近在做專案的過程中看到了一份以前的學長留給我的ZigBee模組的資料,之前在和其它學院的同學一起準備某個比賽的時候聽說過ZigBee是一種無線通訊模組,於是就淘寶了一下,找到了這個 然後在淘
成功實現了RFID與樹莓派的互動
若不用樹莓派GPIO引腳,而使用USB介面(使用PL2303線)與RFID進行互動就實現了功能。如下圖: RFID的機制是,當傳送 05 09 FF F0 23 00 00 00 A4 FA 這一串16進位制指令
vlc實現PC與樹莓派的視訊流傳輸
目錄 一、使用vlc實現PC與樹莓派之間的視訊流傳輸 (一)Windows (二)樹莓派 二、樹莓派與Windows系統之間的聊天 三、非堵塞方式傳輸影象/視訊檔案 一、使用vlc實現PC與樹莓派之間的視訊流
【.NET 與樹莓派】控制舵機
不管是小馬達,還是大馬達,嗯,也就是電機,相信大夥伴們也不會陌生。四驅車是一種很優秀的玩具,從老周小時候就開始流行(動畫片《四驅兄弟》估計很多大朋友都看過),直到現在還能看到很多賣四驅車的。為啥會想起四驅車呢?因為小時候玩四驅車讓老周認識了很多奇葩馬達,什麼“紅魔鬼”、“藍
【.NET 與樹莓派】小風扇模組
小風扇,其實就是一個電機(馬達),然後軸子上套一個扇葉。扇葉有兩葉的,也有三葉的。這種我們小時候沒少玩,太陽能帽子上就有一個小風扇,騎著自行車上學,路上只要有太陽光照射到,小風扇就會轉。當然還有裝乾電池的,天氣熱的時候,買一把放在課桌上,聲音很小,所以老師也不會管。 現在的小風扇在供電方式上多了兩種:一種是U
與樹莓派談共享 —— Windows有現成的NFS客戶端?
本地 ges jpg water 選項卡 tcp協議 服務 51cto 如圖所示 很多樹莓玩家都在用 Winscp 等軟件在 Windows 和樹莓派之間來回傳文件。雖然也能用,但總不像Windows網上鄰居的共享那麽方便。如果只跟Windows共享,
Kafka:ZK+Kafka+Spark Streaming集群環境搭建(二)VMW安裝四臺CentOS,並實現本機與它們能交互,虛擬機內部實現可以上網。
centos 失敗 sco pan html top n 而且 div href Centos7出現異常:Failed to start LSB: Bring up/down networking. 按照《Kafka:ZK+Kafka+Spark Streaming集群環
一根網線實現電腦遠端登入樹莓派
記錄一下 材料準備: 1、網線一根 2、樹莓派一個 3、膝上型電腦一臺 操作步驟: 1、用網線把樹莓派和電腦連線起來 2、給樹莓派連線電源 3、將電腦的無線網設定為共享。 具體操作為:控制面板——>網路和Internet——>網路和共享中心——>更改介面卡設定——
select實現多個客戶機與伺服器之間的通訊
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <assert.h> #include <sys/select.h> #incl
家庭監控系統實現(三) -- 樹莓派nginx部署及rtmp伺服器搭建
本篇主要記錄一下本地實時視訊流的推送。 關於這部分功能,最初的想法是在樹莓派端建立UDP伺服器,將由攝像頭採集到的視訊流廣播出去,但是Android端沒有找到播放UDP裸流的方式。VLC播放器可以設定UDP伺服器地址進行播放,但是效果如何沒有驗證,具體效果如何有時間可以
Arduino 與樹莓派 Raspberry Pi 相比各自有什麼優缺點
Arduino 與樹莓派 Raspberry Pi 的差異談不上優缺點,而是他們是兩個完全不同的產品: 1. 產品定位上:Arduino的定位是微控制器,側重IO效能;Raspberry Pi的定位是電腦側重計算效能 2. 運算效能:Arduino以UNO為例是AV
自寫app與樹莓派製作智慧小車
實現的功能有: 1.實現小車的前進,後退,左轉,右轉。 2.實時視訊的傳回,檢視小車周圍的情況。 3.攝像頭的上下左右轉動,使用舵機雲臺來實現。 需要的材料: 1.樹莓派一個(帶有python環境,現在的好像都有自帶python
PC機與交換機通訊的原理描述
描述兩臺PC主機(PC1,PC2)通過一臺交換機(SW)進行通訊的過程 首要說明與注意點: 這一過程涉及PC主機的ARP表(記為 ARP_TBL) 和 交換機MAC地址表(記為MAC_TBL) 的形成過程。 報文幀格式 | DA | SA | T
Arduino與樹莓派:到底該選擇哪個?
的人來說,它們可能看起來非常類似:它們都是帶有電阻、電容的電路板,ICU焊接在頂部,介面從側面引出。 然而,如果我們仔細看一看的話,Arduino和樹莓派在架構和設計目的上各有不同。我們編寫了本篇文章以闡明這些差異,並幫助您決定哪個才適合您的想法。 什麼
Pixhawk與樹莓派3的串列埠通訊
新建主題 msg資料夾下新建mytopic.msg檔案 char[4] datastr0 //字串的寫法 存放傳送過來的字串 uint8 data//將字串轉換成整型 在msg資料夾中的cmkaelist檔案中加入 新
樹莓派pi3B連線4G模組撥號上網配置(樹莓派接受cc2530資料儲存併發送到OneNet例項)
樹莓派pi3B串列埠配置見: #Time:20180801 #Env:raspi、4G模組、4GSIM(本人用的移動、如用聯通、電信按下文APN,修改接入點名稱) #ZigBee從裝置採集感測器資料 #ZigBee協調器串列埠接受從裝置資料 #樹莓派3B串列
利用virtualbox增強器實現本機與kali linux的檔案共享(macOS)
在Windows平臺,VMware虛擬機器,可以直接實現檔案直接拖拽十分好用。而在macOS平臺,要與virtualbox虛擬機器要實現檔案共享功能,一般要用過VBoxGuestAdditions(客戶端增強包) 總體步驟: 1在kali linux設定中
三菱PLC和PC機通過程式設計口序列通訊實現
2.3 命令幀 一個完整的命令幀由控制字元STX(02H)、命令碼(CMD)、資料段、控制字元ETX(03H)以及和校驗碼五部分組成。其中,和校驗碼是從命令碼到控制字元ETX的所有字元的ASCII碼(十六進位制)相加所得結果的最低兩位數。 ①PC機“讀”命令幀 “讀”命令幀由
PC機與多個微控制器間的通訊
PC機與多個微控制器通訊,不能採用點對點的RS-485標準,要將PC機RS-232C介面換成RS-485介面。 要保證序列通訊的可靠性進行,在相互通訊時,必須有一套嚴格的通訊協議,一般稱之為應用層通訊協議。其幀格式一般包括:幀頭標誌,地址,命令,長度,資料,校驗,幀尾標誌
Socket實現pc端與手機Android端圖片傳輸
package com.example.fdt.client; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.IOException; import java.net.Socket;