4340|13

3416

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

【TI首届低功耗设计大赛】金刚狼和云MySQL的交互 [复制链接]

本帖最后由 ljj3166 于 2014-10-21 12:12 编辑

周末又折腾了一下金刚狼
整出个模型,没能详细记载过程,来个玩次一贴流吧
----------------------------------金刚狼和云数据库的交互--------------------------------
这里的云数据库采用sinaapp的免费MySQL平台
为了方便,建了4个表,每个表存储1个传感器的数据

18B20、Humdity、Pressure分别代表传感器18B20、DTH11和BMP085
switch则代表LED
每个表三个字段:ID、timestamp和data(state),data(state)则是传感器的实质数据
贴点代码,看看从金刚狼向sinaapp MySQL的发出GET请求的过程
      Serial1.print("GET /upload.php?token=liaojingjing&18b20data=");
      Serial1.print(tempdata);
      Serial1.print("&Pressuredata=");
      Serial1.print(Pressuredata);
      Serial1.print("&Humditydata=");
      Serial1.print(Humditydata);
      Serial1.println(" HTTP/1.1");
      Serial1.println("Host: 1.iothing.sinaapp.com");
      Serial1.println("User-Agent: Energia-MXCHIPWIFI");
      Serial1.println("Connection: close");
      Serial1.println();
这里为什么用GET而不用POST,据说会更安全些,当然只是针对云端数据

然后在云服务器上编辑uoload.php,摘录部分语句
$con = mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
       $data = $_GET['data'];
        mysql_select_db("app_iothing", $con);//要改成相应的数据库名

        $result = mysql_query("SELECT * FROM switch");
while($arr = mysql_fetch_array($result)){//找到需要的数据的记录,并读出状态值
    //  echo $arr;
      if ($arr['ID'] == 1) {
               $state = $arr['state'];  }
        }
echo "{".$state."}";
   
        $con = mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS); //MySQL连接语句
        $data1 = $_GET['18b20data'];  //从GET语句中获取相关数据
    $data2 = $_GET['Humditydata'];
    $data3 = $_GET['Pressuredata'];


        mysql_select_db("app_iothing", $con);//选择数据库进行连接,我的是app_iothing
        $result = mysql_query("SELECT * FROM 18B20");
        $dati = date("h:i:sa");//获取时间
        $sql ="UPDATE 18B20 SET timestamp='$dati',data = '$data1' WHERE ID = '1'";//用于更新传感器18B20数值的PHP语句
        if(!mysql_query($sql,$con)){
            die('Error: ' . mysql_error());//如果出错,显示错误
        }




如果一切顺利的话,应该会发生更新

上面就是金刚狼和MySQL交互的简单过程了
临时学习的,还请高手现身说法

-------------------------------微信和MySQL的交互----------------------------------
目前3个传感器的数值主要是进行读取
LED的状态才需要微信进行控制
摘部分代码吧
微信从MySQL读取传感器数据
$con = mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
        mysql_select_db("app_iothing", $con);  //连接app_iothing的数据库
        $result = mysql_query("SELECT * FROM 18B20"); //查找18B20的表
        while($arr = mysql_fetch_array($result)){
          if ($arr['ID'] == 1) {
                  $tempr = $arr['data']; //如果数据库连接正常,读取data值
          }
        }
        mysql_close($con); //关闭数据库连接


微信修改MySQL数据库的数据
$con = mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
        $dati = date("h:i:sa");//获取时间戳
        mysql_select_db("app_iothing", $con);//
        $sql ="UPDATE switch SET timestamp='$dati',state = '0' WHERE ID = '1'";//修改开关状态值
        if(!mysql_query($sql,$con)){
            die('Error: ' . mysql_error());//报错
        }else{
                mysql_close($con);
        }        

               $content = "关闭命令已发送!";//返回给微信的信息

突然发现面向对象的语言真是方便,聊聊数句就能够搞定复杂的应用
不过想想反人类的正则表达式,譬如说这种:2[0-4]\d(?[url=]#200-249)|25[0-5](?#[/url]250-255)|[01]?\d\d?(?#0-199)
改变世界的程序猿们真是不容易,相比起来,我还是选择看机器码吧。。。。。。。

---------------------------------------show个视频和残留问题-------------------------------------
这次没有使用CCS了,而是采用Energia
很简单,很快速,不过坑也很多
最大的问题就是RAM
因为金刚狼在与MySQL交互的时候,每次GET请求串口都会返回大量的数据
测试了一下,至少有300字节
这对金刚狼的硬串口的缓存是极大的考验啊
开始一直通信不成功,后来调试才发现这个问题,把hardware\msp430\cores\msp430\HardwareSerial.cpp中
SERIAL_BUFFER_SIZE增加到284才能勉强接收完云数据库回复的报文
(其实可以通过对MXCHIP的wifi模块进行处理,偷个懒,到庆科的活动中去做吧
加上18B20的二叉树算法
金刚狼的RAM已经基本上用完了,不能再添加其他功能了
据说金刚狼的RAM大小可以自由调整,求大神科普啊
撸个视频:

为了向低功耗看齐,本地显示采用了OLED,控制器是SSD1306
小小的0.9inch屏,居然是128x32分辨率
还有就是太能电池板
视频中显示单节充电宝完全可以做到边充电边放电,充电器是5V500mA
但是实际使用太阳能板给充电宝充电时,无法进入放电状态
怀疑是太阳能板提供的电流太小
电源这部分极少接触,还得多多学习才行。
对于板供电这块,还请大神门指点一二啊。
先到这......

最新回复

请问一下楼主,SAE与开发板交互数据的具体过程是什么样子的呢?之前看过楼主的帖子,如果是网页抓取的话,那开关的状态又是怎么反应到开发板中的呢,刚开始接触这些,感觉好多都不会呀   详情 回复 发表于 2015-9-23 01:08
 
点赞 关注(2)
个人签名

So TM what......?


回复
举报

3416

帖子

0

TA的资源

纯净的硅(高级)

沙发
 
自己看自己的帖子,顶一下,哈哈
发现一个花边:居然把status写成了state,这下可好,云端、采集端,一下要改好几个地方
算了,将就看吧,懒得改了,明白state就是status意思就好了
 
个人签名

So TM what......?

 


回复

41

帖子

1

TA的资源

一粒金砂(中级)

板凳
 
发现我又有得折腾这个新东西了。。
 
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

4
 
能否将你的oled程序共享下,我调试了好久都没有点亮

点评

SSD1306的驱动IC 不过不是as和iar工程哟  详情 回复 发表于 2014-11-12 12:01
 
 
 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

5
 
转身0105 发表于 2014-11-11 20:31
能否将你的oled程序共享下,我调试了好久都没有点亮

SSD1306的驱动IC
不过不是as和iar工程哟

点评

恩,看你是在energia下搞得。我昨天晚上在ccs下把oled调试出来了 感觉你做的很屌,能详细写个教程吗?我想学习下  详情 回复 发表于 2014-11-12 13:29
 
个人签名

So TM what......?

 

 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

6
 
ljj3166 发表于 2014-11-12 12:01
SSD1306的驱动IC
不过不是as和iar工程哟

恩,看你是在energia下搞得。我昨天晚上在ccs下把oled调试出来了
感觉你做的很屌,能详细写个教程吗?我想学习下

点评

看看论坛有没有这个需求吧  详情 回复 发表于 2014-11-14 22:40
 
 
 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

7
 
转身0105 发表于 2014-11-12 13:29
恩,看你是在energia下搞得。我昨天晚上在ccs下把oled调试出来了
感觉你做的很屌,能详细写个教程吗? ...

看看论坛有没有这个需求吧

点评

嘿嘿,我有需求呀,单独发给我呀,就当福利了  详情 回复 发表于 2014-11-17 15:16
 
个人签名

So TM what......?

 

 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

8
 
ljj3166 发表于 2014-11-14 22:40
看看论坛有没有这个需求吧

嘿嘿,我有需求呀,单独发给我呀,就当福利了
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

9
 
是开发板从数据库读取数据开控制灯的开关吗

点评

嗯,和云端的数据库交互  详情 回复 发表于 2015-3-28 19:57
 
 
 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

10
 
xiaomacdut 发表于 2015-3-28 17:06
是开发板从数据库读取数据开控制灯的开关吗

嗯,和云端的数据库交互
 
个人签名

So TM what......?

 

 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

11
 
楼主,可以看看你的aruidno端代码吗?我在和你差不多的事,使用的是sht11土壤温湿度传感器,但是无法将数据上传到数据。跪求指点,本人学生

点评

同学我用的Energia+FR5969 有些底层和Arduino+MEGA会出现不兼容的情况  详情 回复 发表于 2015-4-3 17:19
 
 
 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

12
 
何伟浩何伟浩 发表于 2015-4-3 15:44
楼主,可以看看你的aruidno端代码吗?我在和你差不多的事,使用的是sht11土壤温湿度传感器,但是无法将数据上传到数据。跪求指点,本人学生

同学我用的Energia+FR5969

有些底层和Arduino+MEGA会出现不兼容的情况
 
个人签名

So TM what......?

 

 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

13
 
我用w5100的板子连到路由器   就这部分代码    我的代码一直连接失败  可以帮我看看吗   方便加qq?  273885487
 
 
 

回复

28

帖子

0

TA的资源

一粒金砂(中级)

14
 

请问一下楼主,SAE与开发板交互数据的具体过程是什么样子的呢?之前看过楼主的帖子,如果是网页抓取的话,那开关的状态又是怎么反应到开发板中的呢,刚开始接触这些,感觉好多都不会呀

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表