本帖最后由 gada888 于 2017-3-31 13:28 编辑
前几天看到一个贴子说想用无线方式浇花,本人还和人家探讨,后来一想,自己都没做过,说的不跟空话一样,于是就是试着调试了一下wifi模块连云端。
这里用的wifi模块是NodeMCU,这是一个集成esp8266wifi模块的开发板。一个土壤传感器,
Node.png (160.09 KB, 下载次数: 14)
2017-3-31 10:50 上传
快照3.png (100.88 KB, 下载次数: 10)
2017-3-31 10:50 上传
快照2.png (135.82 KB, 下载次数: 9)
2017-3-31 10:50 上传
云数据库选的是ThingSpeak。地址在:https://thingspeak.com/
page.png (387.74 KB, 下载次数: 5)
2017-3-31 10:18 上传
注册一个用户名,然后登陆
login.png (111.58 KB, 下载次数: 16)
2017-3-31 10:20 上传
写通道名,或者叫添加接入设备
channel.png (241.69 KB, 下载次数: 13)
2017-3-31 10:21 上传
系统生成API。这个将会是写手机app的控制端要用到的类似‘’开门的钥匙‘’。
api.png (192.42 KB, 下载次数: 9)
2017-3-31 10:22 上传
接下来是写代码。代码编译环境是Arduino ide,如何烧录代码这部分在本人另一个帖子里有介绍。
analogRead(A0)是传感接人口。
[mw_shl_code=applescript,true]#include
#include
WiFiClient client;
String thingSpeakAddress= "http://api.thingspeak.com/update?";
String writeAPIKey;
String tsfield1Name;
String request_string;
HTTPClient http;
void setup()
{
WiFi.disconnect();
delay(1000);
WiFi.begin("your wifi device name","your login code");
while ((!(WiFi.status() == WL_CONNECTED))){
delay(300);
}
}
void loop()
{
if (client.connect("api.thingspeak.com",80)) {
writeAPIKey = "key=JYLKR4WVJ5NPEPOC";
tsfield1Name = "&field1=10";
request_string = thingSpeakAddress;
request_string += "key=";
request_string += "APBY8GAHZJ5SWCNA";
request_string += "&";
request_string += "field1";
request_string += "=";
request_string += analogRead(A0);
http.begin(request_string);
http.GET();
http.end();
}
delay(3000);
}[/mw_shl_code]
WiFi.begin("your wifi device name","your login code");
上面这句你要改的,‘’your wifi device name‘’你的wifi设备名称,your login code你的wifi登陆密码
在arduino 上代码烧录OK后,在thingspeak网站你的ID页会看到如下图表。表示数据传输成功。
chart.png (191.16 KB, 下载次数: 6)
2017-3-31 10:34 上传
matlab.png (164.12 KB, 下载次数: 12)
2017-3-31 10:36 上传
你也可以调用matlab插件看图表。
手机端安装了个安卓thingView app
填入你的API之后就可以看到数据了。但是不能实现浇水的动能。
如想实现的话,要自己写app,建议用app inventor这样效率会高。
Screenshot_2017-03-31-09-58-12.png (150.23 KB, 下载次数: 47)
2017-3-31 10:51 上传