智能设备相关Arduino+esp8266 +阿里云eds + 百度云推动 流程 简约 配置指南

主要是为了 记录 物联网的基础通讯流程

1  arduino 相关    

 硬件准备Arduino UNO一块
ESP12E Shield一块
将 8266 开发板 插入 arduino uno  

void setup()
{
  Serial.begin(9600);
  randomSeed(analogRead(0));
}
void loop()
{
    delay(1000);
     Serial.print("cmd=upload&device_name=arduino&data=");
     Serial.print(random(1000));//send a random number
     Serial.println("&uid=doit_demo&key=a4b4c7cbc8685cc5309d60647cae546b");
}
注意烧写的时候 两个开关全部OFF  ,不然烧写不上去  
运行的时候 全部 ON  

这一段代码 是子弹  ,那么目标呢 ?  
目标就是  serial  

2  esp8266  开发板
不要问我为什么要用  esp8266    因为穷 !!!
 开发板获取serial里面的内容  然后向外发送  
模块上电,在配置模式下模块WiFi信号:“DoitWiFi_Config”。密码为:“12345678”。
用手机在浏览器输入WiFi扩展板地址:192.168.4.1打开配置页面。 
选择sta client  tcp 这三项  ,不上图了, 自己看   ,有个下拉框框 ,会自动选一个 你当时环境下的ap路由,记得改成你要用的ap路由
配置    平台基于TCP通讯,服务器IP: www.mengfeifei.com 端口:9390
问题出现了 :我php用的是 url,你这ip+端口 如何整    


3  apache 服务器配置    
我的做法是 开启apache 的一个新端口, 对应上php的目录 
还记得把php名字改成 index.php  ,我就是这么做的 

我用的是 ubuntu 14.04  

修改/etc/apache2# cat ports.conf

NameVirtualHost *:80
Listen 80


NameVirtualHost *:9390
Listen 9390



以及 /etc/apache2/sites-enabled/000-default

<VirtualHost *:9390>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/baiduyun/Baidu-Push-Server-SDK-Php-3.0.1/demo
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/baiduyun/Baidu-Push-Server-SDK-Php-3.0.1/demo/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>


记得 端口号 要一致 我就错了一次   
然后 
/etc/init.d/apache2 restart  

4  开始调试  
 插上了  电 
怎么看啊 , 我用的是 笨方法  

cat  /var/log/apache2/access.log

 哈哈 看 log记录  

112.26.198.112 - - [31/Dec/2015:16:44:45 +0800] "cmd=upload&device_name=arduino&data=606&uid=doit_demo&key=a4b4c7cbc8685cc5309d60647cae546b" 200 93 "-" "-"
112.26.198.112 - - [31/Dec/2015:16:44:50 +0800] "cmd=upload&device_name=arduino&data=167&uid=doit_demo&key=a4b4c7cbc8685cc5309d60647cae546b" 200 93 "-" "-"
过一会 之后   我的手机就不停的收到 百度云的推动了 (百度云要自己配置好,包括php服务器端和 手机客户端)

附上服务器端 php代码  
<?php
/**
 * *************************************************************************
 *
 * Copyright (c) 2014 Baidu.com, Inc. All Rights Reserved
 *
 * ************************************************************************
 */
/**
 *
 * @file hello.php
 * @encoding UTF-8
 * 
 * 
 *         @date 2015骞?鏈?0鏃?
 *        
 */
// header('Access-Control-Allow-Origin: *')
require_once '../sdk.php';


header('Access-Control-Allow-Origin: *');
// 鍒涘缓SDK瀵硅薄.
$sdk = new PushSDK();

$channelId = '4577444210869810647';
echo $_GET['a'], "<BR>";
echo $_GET['b'], "<BR>";
echo $_GET['cmd'], "<BR>";
//echo $_GET['device_name'], "<BR>";
//echo $_GET['data], "<BR>";
//echo $_GET['uid'], "<BR>";
//echo $_GET['key'], "<BR>";o $_GET['b'], "<BR>";


//$str = file_get_contents("php://input");
//$arr=array();
//parse_str($str,$arr);
//echo 'name:'.$arr['a']."<br/>".'age:'.$arr['b'];
// message content.
$message = array (
    // 娑堟伅鐨勬爣棰?
    'title' => 'Hi!Doctor ' . $_GET['a'],
    // 娑堟伅鍐呭 
    'description' => $_GET['b'] . "hello, this message from LCFC push service." 
);

// 璁剧疆娑堟伅绫诲瀷涓?閫氱煡绫诲瀷.
$opts = array (
    'msg_type' => 1 
);

// 鍚戠洰鏍囪澶囧彂閫佷竴鏉℃秷鎭?
$rs = $sdk -> pushMsgToSingleDevice($channelId, $message, $opts);

// 鍒ゆ柇杩斿洖鍊?褰撳彂閫佸け璐ユ椂, $rs鐨勭粨鏋滀负false, 鍙互閫氳繃getError鏉ヨ幏寰楅敊璇俊鎭?
if($rs === false){
   print_r($sdk->getLastErrorCode()); 
   print_r($sdk->getLastErrorMsg()); 
}else{
    // 灏嗘墦鍗板嚭娑堟伅鐨刬d,鍙戦€佹椂闂寸瓑鐩稿叧淇℃伅.
    print_r($rs);
}

echo "done!";
 

至此为止 ,arduino 只要一上电 我的手机就收到百度云推送了 

_______________________________________________________________
一定要注意端口哦   公司的端口有可能上不去



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值