1. 程式人生 > >微信硬體平臺 (1) 總說明

微信硬體平臺 (1) 總說明

微信硬體平臺

本文目的,使用微信公眾號控制ESP8266的LED開和關。進一步使用微信當遙控器(避免寫APP或者IOS或者小程式),控制一切裝置。給兩個關鍵的總教程參考。

 目前整體測試效果

開啟微信,關注自己的公眾號

 

 

功能結構圖

 

1 公眾號註冊

1.申請認證公眾號&開通裝置功能
1.1公眾號申請: https://mp.weixin.qq.com

 

 

個人訂閱號   

功能有限,不能有裝置管理模組功能,本教程系列使用的是訂閱號,做一個測試足夠了。

 

企業服務號

註冊必須要有公司資訊,法人等組織程式碼,個人用不了。  某寶上可以買個臨時用下測試。

可以擁有裝置管理功能,簡單來說可以生產100個裝置(例如大氣感測器),每個使用者可以對應自己的裝置

 

2 自己的伺服器搭建

 

2-1伺服器搭建

第一種方案  阿里雲伺服器搭建  

  必須報備後才能使用80埠網頁服務功能,其實報備也很快,但是嫌麻煩沒使用。

第二種方案

  找個外國的伺服器,沒有報備的限制。

本教程使用的外網伺服器

https://my.vultr.com

自己買一個。

這裡教程是centos6系統映象

 

 2-2 開放伺服器埠

  和微信伺服器互動,我們需要80或443埠,伺服器埠預設需要開啟,才能被外界訪問。

  第一層,登陸網頁伺服器管理介面新增安全組

  第二層 ,系統本身的防火牆開啟埠(測試階段粗暴地關了防火牆)

 

阿里雲如何新增安全組開放埠

本教程的外網伺服器如何開啟埠

3 搭建Web伺服器(apache + php + mysql)

centos6系統下,搭建Web伺服器(apache + php + mysql)

教程 

安裝apache

安裝yum install httpd

啟動service httpd start
暫停service httpd stop
重啟service httpd restart

檢查開機啟動情況chkconfig --list httpd
預設情況下是全部關閉的,儘量設定開機啟動,以防主機意外關機

設定開機啟動命令chkconfig httpd on
再次檢查啟動情況,看到2,3,4,5為啟動
關閉開機啟動命令chkconfig httpd off

到此Apache安裝完成,在自己瀏覽器中輸入主機IP和埠號能正常開啟

(不能開啟重啟下伺服器)

Apache的預設網站根目錄

/var/www/html

 

配置檔案路徑

/etc/httpd/conf/httpd.conf

 

安裝php

yum install php
yum install php-mysql  php-gd  php-imap  php-ldap  php-odbc php-pear  php-xml  php-xmlrpc
yum install php-mysql

  

以上命令為安裝php及其支援的元件

測試是否安裝成功
在這個資料夾下,建立一個
info.php檔案
vi /var/www/html/info.php   
(不喜歡vi命令編輯的,可以把檔案拖到windos上修改,後再複製過去)
<html>
<body>
<h1>It's work!</h1>
<?php
    echo 'HELLO WORLD';
    phpinfo();
?>
</body>
</html>

  

重啟Apache伺服器

在瀏覽器位址列訪問:http://自己的伺服器IP/info.php

 

 

安裝mysql

安裝

首先檢視主機是否已經安裝

rpm -qa|grep mysql

注意:可能檢查中安裝有php-mysql XXXXX 和 mysql-libXXXX,這是剛剛第二步安裝的php的元件,不必理會

已經安裝的話就執行刪除命令

rmp -e mysql

然後繼續安裝
使用命令

yum list | grep mysql
來檢視yum上提供的mysql資料庫可下載的版本

安裝命令

yum install -y mysql-server mysql mysql-devel
等待一段時間安裝成功

配置

接下來是對mysql的配置(注意:命令中是”mysqld”,不是mysql)

初始化:

service mysqld start
重啟:

service mysqld restart
配置開機自動啟動:

chkconfig mysqld on

為mysql的root賬戶設定密碼:

mysqladmin -u root password '*********'

改密碼後要重啟Mysql伺服器


登入命令

mysql -u root -p

 

配置Apache使其支援PHP

教程 https://blog.csdn.net/qq_25371579/article/details/78476186

需要在httpd.conf中新增以下程式碼,修改後重啟Apache服務

把這個檔案拖到windons上,修改

 

新增

LoadModule php5_module modules/libphp5.so

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

 然後檔案重新複製回去,修改後重啟Apache服務

 

裝MySql圖形管理介面phpMyAdmin

從官網上下載下來(注意版本號,看是否支援本機的MySql和PHP),直接放在網站根目錄下,在瀏覽器中輸入相應的地址就可以訪問,登陸後即可管理

 

測試,在網頁裡輸入自己的伺服器的IP,自動跳轉php測試樣例

 

至此網頁伺服器搭建完畢

 4 配置微信SDK

1下載SDK 

連結:https://pan.baidu.com/s/1YKzOOqNxUyGiso4SlyAc5g
提取碼:tn4x

2 將SDK放在伺服器下

注意路徑,後面配置微信公眾號需要用到,不能出錯。

/var/www/html/WeChat

 

5 配置微信公眾號

 5-1 個人申請訂閱號做的測試

公眾號申請: https://mp.weixin.qq.com

訂閱號是不用交錢的,就目前我們控制LED訂閱號是足夠了的

訂閱號公眾號設定
公眾號申請好之後登陸,然後進行開發者設定。

 

 
說明:

伺服器路徑一定要填寫對,是微信SDK檔案下的的index.php
/var/www/html/WeChat
對應填寫 : 伺服器IP+/WeChat/index.php

  不是/var/www/html/下面的index.php(安裝網頁伺服器的測試網頁)

根據實際的sdk路徑填寫地址。

看上圖填寫完成之後就點選提交,不出意外就顯示提交成功。成功後如上圖

 

6 測試

開啟微信,關注自己的公眾號

 

 

 現有功能是

 

 

 7 微信SDK服務分析

核心程式碼解析

核心程式碼解

這裡推薦使用PHPStorm,可以有智慧提示,可以追蹤函式實現等。當然你用其他工具也可以。

 

[kenrobot_code]<?php
  require('wechat/Wechat.php');
  class TestWechat extends Wechat {
    /**
     * 收到文字訊息時觸發,回覆收到的文字訊息內容
     *
     * @return void
     */
    protected function onText() 
        {
      $this->responseText('收到了文字訊息:' . $this->getRequest('content'));
    }
  }

  $wechat = new TestWechat(array(
    'token' => 'weixin',
    'aeskey' => 'xxx',
    'appid' => 'xxx',
    'debug' => true
    ));
  $wechat->run();[/kenrobot_code]

   這個是庫裡面自帶的例子,功能就是你給你的公眾號發個內容,他在前面加上  收到了文字訊息:  
          我們重點看看onText函式。這個函式裡面有兩個函式。

$this->responseText(引數是字串)這個就是給你回覆。
$this->getRequest('content'))這個就是解析你傳送來的文字訊息返回值是字串。

  

8 微信控制LED  對接硬體ESP8266

原教程給的是通過把微信發來的訊息儲存成txt檔案,然後ESP8266不斷請求這個txt檔案,獲取內容判斷然後做出開關燈命令。

原教程

作為一個測試足夠了,但是後期多使用者訪問時候,如下問題:

1 涉及身份識別和產品使用者繫結問題.

 大白要查詢和控制自己的安防開關,首先伺服器要知道是大白髮來的請求,其次還要根據產品唯一ID找到大白繫結的裝置。不能把小明的觸感器資料發過去。  

 企業申請的服務號具備這個功能。,例如

https://iot.weixin.qq.com/wiki/new/index.html?page=5-5

 

智慧空調的產品需求及接入微信硬體雲實施方案:

●使用者用微信配置裝置聯網&繫結
方案一(推薦):裝置上張貼“每種型號唯一的二維碼”,使用者掃碼後通過Airkiss配網並繫結裝置(http://iot.weixin.qq.com/wiki/new/index.html?page=4-6)
方案二:裝置上張貼“每個產品唯一的二維碼”+使用者掃碼後繫結裝置+進入公眾號再通過Airkiss配網
●空調遙控器
方案一:廠家利用微信提供的標準控制模板,鏈入公眾號選單
方案二:廠家自己開發的H5控制頁面,鏈入公眾號選單
●空調售後服務
方案:廠家開發H5頁面,鏈入公眾號選單