blynk是波波最近翻墙发现的一款很不错的工具,利用blynk我们不仅可以很快速的完成Arduino的相关开发,而且利用blynk搭建智能家居或者物联网更加方便了。尤其是blynk自带定时器机制,我们在开发过程中无需再引入多线程或者定时器的类库。
今天波波的例子是让安卓手机远程查看家中温度湿度的DEMO,物料配置不详细介绍,简单的说就是Arduino通过Esp8266将传感器DH11数据读取出来发送到安卓手机端。
实验步骤:
1、下载安卓客户端:
因为国内有部分应用市场内有相关下载,这里波波不分享下载链接了。
2、烧写固件代码:(源码如下)
- #define BLYNK_PRINT Serial
- #include <ESP8266_Lib.h>
- #include <BlynkSimpleShieldEsp8266.h>
- #include <DHT.h>
- //先在安卓客户端建立项目,建立后将生成Token填写此处
- char auth[] = "这里填写TOKEN";
- // 家庭Wifi账号密码配置此处,也可以用easyConfig
- char ssid[] = "YourNetworkName";
- char pass[] = "YourPassword";
- //定义ESP8266芯片接口
- #include <SoftwareSerial.h>
- SoftwareSerial EspSerial(2, 3); // RX, TX
- // ESP8266 基带频率
- #define ESP8266_BAUD 115200
- ESP8266 wifi(&EspSerial);
- #define DHTPIN 2 // DH11芯片针脚定义
- // 温湿度传感器类型定义,这里默认DH11
- #define DHTTYPE DHT11 // DHT 11
- //#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321
- //#define DHTTYPE DHT21 // DHT 21, AM2301
- DHT dht(DHTPIN, DHTTYPE);
- BlynkTimer timer;
- // 发送传感器数据线程
- void sendSensor()
- {
- float h = dht.readHumidity();
- float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
- if (isnan(h) || isnan(t)) {
- Serial.println("Failed to read from DHT sensor!");
- return;
- }
- // 1秒钟发送数据要少于10个!!!
- Blynk.virtualWrite(V5, h);
- Blynk.virtualWrite(V6, t);
- }
- void setup()
- {
- Serial.begin(9600);
- EspSerial.begin(ESP8266_BAUD);
- delay(10);
- Blynk.begin(auth, wifi, ssid, pass);
- // You can also specify server:
- //Blynk.begin(auth, wifi, ssid, pass, "blynk-cloud.com", 80);
- //Blynk.begin(auth, wifi, ssid, pass, IPAddress(192,168,1,100), 8080);
- dht.begin();
- // 回调
- timer.setInterval(1000L, sendSensor);
- }
- void loop()
- {
- Blynk.run();
- timer.run();
- }
源码中,波波已经做了详细的注释,很简单。需要的朋友可以自行研究。记得Arduino开发的IDE中要引入相关类库哦~~