物聯網開發 7 旗點雲物聯網雲平臺

目錄

一、演示效果:

二、手機APP 和 智能網關通信過程:

三、設備管理:

四、使用旗點雲平臺

五、手機應用程序安裝:

六、使用我們的提供的 p2p_client 客戶端測試程序。

七、雲平臺服務器部署 p2p_server

八、如何編寫自己的嵌入式設備通信程序

1、設置好我們的設備名:

2、設置好我們的發送函數

3、登錄函數

4、接收數據函數

5、發送數據給設備

九、其它功能

1、P2P功能

2、微信小程序和嵌入式設備通信


 

一、演示效果:

演示效果可以觀看這個視頻:

物聯網雲平臺演示

https://www.bilibili.com/video/av78434035

代碼下載路徑: http://106.13.62.194/download/qdy/01demo/  

視頻會講的比較細緻,也可以看接下來的圖文,內容是差不多的。

可以加WX交流:13510979604 

整體的系統框架如下:

我們會準備四個測試程序:

  1. 智能網關程序(也就是嵌入式設備)
  2. 手機APP測試程序
  3. 雲平臺服務器
  4. 網頁數據庫管理設備、用戶等。

可以實現類似機智雲的功能。手機APP直接和嵌入式設備通信,可以在這個基礎上實現物聯網、智能家居。

升級版本可以支持如下功能:

1、微信小程序控制開發板

2、支持P2P通信,在大量設備連接的情況,P2P通信技術可以減少服務器的壓力,增加系統中設備的連接數量,可以達到百萬級別的設備連接

3、支持實時流傳輸。

 

整體系統框架如下:

 

 

 

二、手機APP 和 智能網關通信過程:

 

  1. 安裝完手機APP 後,
  2. 大家用串口連接到開發板,運行測試程序:p2p_client
  3. 開發板輸入 send 對方設備名 要發送的內容
  4. 可以看到手機APP 可以收到開發板發過來的數據 。

 

對於開發板來說,也可以收到手機APP的數據,至此通信完成

 

三、設備管理:

上面的tom 、lancy 等設備,我們可以通過網頁進行管理、添加、刪除。

打開這個網頁(需要賬號密碼,個人測試網站,暫時不公佈賬號密碼)

http://106.13.62.194/phpmyadmin/index.php 

可以看到如下效果:

可以通過插入添加新設備。上面也會顯示當前設備的信息。由於測試版本,所以就顯得比較簡單。大家可以在基礎上定製自己想要的功能。

 

接下來我們來看下測試程序怎麼使用。

 

四、使用旗點雲平臺

  1. 需要有三個測試程序:

 

我們一步一步來看吧。

 

五、手機應用程序安裝:

首先最簡單的是安裝手機應用程序 app-release.apk

 

這裏我們暫時不用填寫服務器IP 和端口號。我們只需要填寫設備名即可。推薦使用 tom ,因爲這個設備有在數據庫中註冊

接下來就進入到這個頁面了:

然後我們就可以發送數據給對應的設備了。

 

六、使用我們的提供的 p2p_client 客戶端測試程序。

這裏我們需要準備一個 linux 平臺,推薦大家使用ubuntu吧。

我們要先安裝好運行環境,輸入如下命令:

apt-get install openssl

apt-get install libssl-dev

apt-get install libjosn0-dev

apt-get install libasound2-dev

 

如果順利的話,應該就可以直接運行 p2p_client

可以看到如下打印信息:

有看到 connet is ok! 表示登錄到服務器成功了。

同時可以在當前路徑下看到生成了這個 sys_info.json 配置文件

我們cat 看下這個配置文件:

這個配置文件中有我們的設備名,還有一些密碼、服務器ip 端口號等配置信息可以修改。主要第一次運行的話,設備名是隨機的,記得修改一下。

可以輸入send 對方設備名 發送的內容

即可發送數據給對方

 

七、雲平臺服務器部署 p2p_server

這個部署起來比較麻煩,如果只是想測試效果,建議直接使用我的百度雲服務器測試,不需要自己安裝部署 p2p_server 。

當然,如果自己想部署到自己的服務器上也可以按下面操作,有遇到問題可以溝通。

安裝步驟:

apt-get install openssl

apt-get install libssl-dev

apt-get install libjosn0-dev

apt-get install libasound2-dev

apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

 

接下來是要進入mysql數據庫創建數據。

需要創建 數據庫:p2p_user_list   表:device

數據格式:

CREATE TABLE device(

name VARCHAR(50),

passwd VARCHAR(50),

ip VARCHAR(50),

port VARCHAR(50),

login_cnt VARCHAR(50),

is_online VARCHAR(50)

);

然後往device 表中添加自己要註冊的設備名即可。MySQL的數據庫操作自行百度一下哈。

 

操作完上面之後,應該可以直接運行 p2p_server

可以看到如下信息:

 

表示服務器運行成功。

 

 

八、如何編寫自己的嵌入式設備通信程序

 

演示完上面的操作後,接下來我們來看下我們的嵌入式設備如果自己編寫代碼。同樣我們需要如下代碼文件:

其中,client_demo.c 是我寫的一個可以在linux平臺運行的程序。大家可以根據自己的實際平臺進行修改即可。

我們來關注下我們程序要如何寫:

1、設置好我們的設備名:

void set_name(char *name, int len)

把你的設備名,長度傳進去。

 

2、設置好我們的發送函數

void set_net_send(int (*send)(char *buf, int len))

我們可以這樣寫:

set_net_send(my_send);

對於linux平臺來說, my_send 的原型是這樣的:

這樣的話,對於你們如果使用其他的平臺,比如有些人使用的 串口發送函數,我們只需要使用修改 my_send 即可了,可移植性比較好。

 

3、登錄函數

void login(struct sockaddr_in *addr)

登錄函數我寫了一個demo版本,大家可以參考照着修改即可。只需要把裏面的 sendto

Recvfrom 修改成你們對應的平臺即可。

 

4、接收數據函數

收到數據後,可以把數據傳輸給 qdy_recv_data

void qdy_recv_data(char *recvbuf, int len) 

這樣的話就會對數據進行解析。最後客戶端發過來的數據就會到這個函數進行處理:

void qdy_resolve_recv_data(char *buf, int len)

這樣的話,我們只需要在qdy_resolve_recv_data函數裏面對數據處理即可,我們看下demo例子:

recv_proto->src_name  :誰發送過來的數據

recv_data: 發送了什麼數據

 

5、發送數據給設備

同樣發送數據給設備的話可以直接使用這個函數:

int qdy_send_data(char *name, char *data, int len)

只需要寫入設備名、數據內容、數據長度即可。

 

 

九、其它功能

 

1、P2P功能

上面只是給出來了演示例子。當然這個雲平臺還有很重要的功能就是支持P2P通信,下一節會將如何P2P通信,同時也會釋放Android手機APP 的代碼例子,教大家如何定製自己的手機APP 程序

2、微信小程序和嵌入式設備通信

第三節是教大家如何使用微信小程序直接和開發板通信

可以加WX交流:13510979604 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章