米思奇blynk_入手Arduino Yun,配合Blynk搞一波事情

本文介绍了使用Arduino Yun配合Blynk进行项目开发的体验,包括LED控制、温度传感器读取及LCD显示。通过Blynk库连接手机应用,实现远程操作,并讨论了Arduino Yun的优缺点以及在能耗上的表现。
摘要由CSDN通过智能技术生成

前言

原创文章,转载引用务必注明链接。

最近在闲鱼上与别人用RPi2尸体+好的BBB换了个Arduino Yun,等了几天赶在节前收到了。出奇的轻巧,产地台湾,官方正品做工就是精细~采用5v MicroUSB接口供电。开机上电参考葉難大大写的文章就行啦。

本文使用Markdown写成,为获得更好的阅读体验和正常的图片、链接,请访问我的博客:

Arduino Yun

4bb39ffa0a3f5b24e2f490d541ab4e5e.png

优点

有Wifi

可以与Linux通信

完整兼容Arduino,比如DHT22这种传感器可以直接使用

缺点

没蓝牙

超低配版Intel Edison,价格不低

由于LAN和USB接口的存在,盾板(Shield)不能完全插上去,害怕短路。。。

Blynk

在我之前的项目里面有介绍,Virtual Pin很棒,不赘述啦。非常好用,就是点数要购买。本项目算是上手Arduino Yun的,分为三部分组合而成:

一、LED Blynk

安装Blynk库之后,选择Boards_Wifi——Arduino_Yun即可。手机安装Blynk程序并注册。添加按钮,设置LED所在的数字引脚

二、读取温度传感器数值

使用grove官方例程,传送到虚拟引脚V5,手机APP 标签控件可以接收到。但是历史记录曲线图控件工作不正常,是不是Virtual Pin的值无法复用,不能够啊?使用push方法由Arduino主动推送而不是Blynk程序去请求,参考blynk官方示例使用SimpleTimer库。

三、将温度传感器值在LCD上显示出来

也是官方示例,具体可以看看grove lcd的库文件和示例。

完整代码

#include

#include

#include

#include

#include "rgb_lcd.h"

#include // here is the SimpleTimer library

char auth[] = "APP里面的token"; // Put your token here

rgb_lcd lcd;

const int B=4275; // B value of the thermistor

const int R0 = 100000; // R0 = 100k

const int pinTempSensor = A1; // Grove - Temperature Sensor connect to A1

SimpleTimer timer; // Create a Timer object called "timer"!

void setup()

{

// Serial.begin(9600);

Blynk.begin(auth);

// set up the LCD's number of columns and rows:

lcd.begin(16, 2);

// turn off backlight:

// lcd.setRGB(0, 0, 0);

lcd.print("Currnet TEMP is");

lcd.setCursor(5,1);

// or use CustomCHaracter to display ℃

lcd.print(" C");

timer.setInterval(1000L, sendUptime); // Here you set interval (1sec) and which function to call

}

void sendUptime()

{

// This function sends Arduino up time every 1 second to Virtual Pin (V1)

// In the app, Widget's reading frequency should be set to PUSH

// You can send anything with any interval using this construction

// Don't send more that 10 values per second

float temperature = getTemperature();

lcd.setCursor(0,1);

lcd.print(temperature);

Blynk.virtualWrite(V5, temperature);

}

void loop()

{

Blynk.run(); // all the Blynk magic happens here

timer.run(); // SimpleTimer is working

}

float getTemperature()

{

int a = analogRead(pinTempSensor);

float R = 1023.0/((float)a)-1.0;

R = 100000.0*R;

float temperature=1.0/(log(R/100000.0)/B+1/298.15)-273.15;//convert to temperature via datasheet ;

return temperature;

// Serial.print("temperature = ");

// Serial.println(temperature);

}

0d645ca8d2a872a345169d29e0d35b76.png

每秒钟更新温度值。开了背光之后还是很耗电的。另外Arduino Yun空载170mA左右,远高于Intel Edison的70mA,以及Arduino UNO R3 的20mA。

f69a22300fe7fa7ffb915a2e9b08ce50.png

2018年2月20日更新

采用自建Blynk服务器可以获得大量点数,目前用docker建了一个,还阔以,有需要的PM我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值