极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15227|回复: 6

关于arduino get网络数据控制LED等,不成功,获取的串口数据是255 191 223等

[复制链接]
发表于 2015-12-21 23:56:13 | 显示全部楼层 |阅读模式
  我是用UNO 连接HLK-RM04 访问网络数据以控制RGB LED。因为是刚接触arduino,所以就参考了不少案例。 目前是使用如下代码测试 http://my.oschina.net/matol/blog/529803?fromerr=zsqU6iMC

http://115.29.47.98:8080/huaduo/blogs/list/9      使用此代码除了get地址 其他都没变的情况下   串口模拟器输出都是乱码。但是看YOUKU视频 里面 作者使用没有问题  作者的IDE是1.0.5  而我使用的是1.6.6。


目前我根据情况调整了不部分代码  显示结果如图



RM04的配置如图  用串口助手测试RM04模块,能收发数据。


搜索资料说用serial.write  但是IDE提示不能编译。   

我使用的代码如下(因为UNO,所以使用了SoftwareSerial,最早担心是软串口的问题) 请各位帮忙看看,
mySerial.println("GET /led/1234.html HTTP/1.1");  内容就几个数字。比如777,333,1111等。


  1. #include <SoftwareSerial.h>
  2. SoftwareSerial mySerial(10, 11); // RX, TX
  3. String comdata = "";
  4. int redPin = 7;
  5. int greenPin = 6;
  6. int bluePin = 5;
  7. void setup() {
  8.   pinMode(redPin, OUTPUT);
  9.   pinMode(greenPin, OUTPUT);
  10.   pinMode(bluePin, OUTPUT);
  11.   Serial.begin(115200);
  12.   mySerial.begin(115200);
  13.   while (!Serial) {}
  14. }
  15. void loop()
  16. {
  17.   if (mySerial.available() > 0) {
  18.     comdata = mySerial.read();
  19.     //comdata += char(mySerial.read());
  20.     Serial.println(comdata);
  21.     // Serial.println(comdata);
  22.     //comdata = "";
  23.     comdata.trim();
  24.     if (comdata.length() > 0) {
  25.       if (comdata.toInt() >= 255) { //is number
  26.         setColor(0, 255, 0);//绿色
  27.       } else {
  28.         setColor(0, 0, 255);//蓝色  tColor(255, 0, 0);//红色
  29.       }
  30.       //Serial.println("[" + comdata + "]");
  31.     } else {
  32.       setColor(255, 255, 0);//黄色 网络故障
  33.     }
  34.   }
  35.   getHttp();
  36. }
  37. void getHttp() {
  38.   mySerial.println("GET /led/1234.txt HTTP/1.1"); // HTTP/1.1 HTTP协议名称
  39.   delay(100);
  40. }
  41. void setColor(int red, int green, int blue)
  42. {
  43.   analogWrite(redPin, 255 - red);
  44.   analogWrite(greenPin, 255 - green);
  45.   analogWrite(bluePin, 255 - blue);
  46. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-12-24 09:47:14 | 显示全部楼层
IDE版本不同,很多代码存在兼容性问题
比如0.8版的很多函数 直接被1.0不认。。。这已经出现过的。。。
SO 。。。要么改代码 要么找老版本。。。

编译不通过,说明代码未通过IDE的检查。。。可能是代码不规范、兼容性问题,,也可能是库文件不全等情况。
编译通过不能按预想执行,要么是代码逻辑不对,要么就是硬件或者其他外部条件不满足,比如硬件不匹配等,当然 硬件质量不过关也可能导致此类问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-24 14:22:23 | 显示全部楼层
darkorigin 发表于 2015-12-24 09:47
IDE版本不同,很多代码存在兼容性问题
比如0.8版的很多函数 直接被1.0不认。。。这已经出现过的。。。
S ...

编译没问题。  只是奇怪,用串口助手直接访问模块 能正确收发数据。 一到uno(mega)上  串口监视器看到的数据就不对了, 比如  我的web上的数据是1024,  uno上串口接收到的是 171 255 之类的反复数值。
回复 支持 反对

使用道具 举报

发表于 2015-12-25 00:13:33 | 显示全部楼层
scott817 发表于 2015-12-24 14:22
编译没问题。  只是奇怪,用串口助手直接访问模块 能正确收发数据。 一到uno(mega)上  串口监视器看到的 ...

接口?波特率等参数看看?
还有就是是不是有逻辑错误。。
回复 支持 反对

使用道具 举报

发表于 2016-7-22 16:55:21 | 显示全部楼层
你好,请问你问题解决了吗?
我也遇到了相关的问题
回复 支持 反对

使用道具 举报

发表于 2016-7-23 00:03:16 | 显示全部楼层
把波特率都改成 9600 不要用115200
回复 支持 反对

使用道具 举报

发表于 2016-7-23 00:04:42 | 显示全部楼层
LOVE_KE 发表于 2016-7-23 00:03
把波特率都改成 9600 不要用115200

软串口不稳定 降低波特率会好点 加油 少年们!!!
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-14 07:28 , Processed in 0.037617 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表