物聯(lián)網(wǎng)開發(fā)融涣,SO EASY——基于Blynk的物聯(lián)網(wǎng)應(yīng)用開發(fā)

前言

最近這兩三年童番,“物聯(lián)網(wǎng)”一詞開始進(jìn)入我們普通大眾的耳朵精钮。但對(duì)大多人來說這似乎還是一個(gè)挺高大上的事物。隨著智能家居產(chǎn)品的興起剃斧,其實(shí)物聯(lián)網(wǎng)已經(jīng)在逐漸走進(jìn)我們的生活轨香,比如家里的可以遠(yuǎn)程控制的掃地機(jī)器人、智能插座及空調(diào)幼东。這些都是物聯(lián)網(wǎng)給我們生活帶來的便利臂容,物聯(lián)網(wǎng)將電器加上能夠連接互聯(lián)網(wǎng)的設(shè)備,使之成為互聯(lián)網(wǎng)中的一部分根蟹,方便我們隨時(shí)按需控制脓杉。
那么,我們自己可以制作物聯(lián)網(wǎng)產(chǎn)品嗎简逮?答案是肯定的球散。今天筆者就要與大家分享一個(gè)低成本,而且簡單的物聯(lián)網(wǎng)產(chǎn)品的制作方法散庶。

準(zhǔn)備材料

(1)WeMos D1開發(fā)板一塊:WeMos是一塊基于ESP8266的Arduino UNO 兼容Wi-Fi開發(fā)板蕉堰,這么說起來似乎有點(diǎn)難懂。我們可以把它理解成是一塊帶Wi-Fi功能的Arduino UNO開發(fā)板悲龟。
(2)電子元器件若干屋讶,如:5mm LED,LM35溫度傳感器须教,DHT11溫濕度傳感器等皿渗。
(3)智能手機(jī)一部(蘋果或安卓手機(jī)):用于遠(yuǎn)程控制WeMos D1主控板。

準(zhǔn)備工作

安裝Arduino

先從Arduino官網(wǎng)下載最新版的Arduino(下載地址為:http://www.arduino.cc)没卸。雙擊arduino-1.8.2-windows.exe安裝Arduino官方版本羹奉,點(diǎn)擊下一步,按照默認(rèn)參數(shù)安裝即可约计。

安裝ESP8266庫

打開Arduino軟件,找到文件-首選項(xiàng)迁筛,在首選項(xiàng)的附加開發(fā)板管理器網(wǎng)址中輸入以下地址:http://arduino.esp8266.com/stable/package_esp8266com_index.json煤蚌,如圖 1所示。

圖1 填寫附加開發(fā)板管理器網(wǎng)址

再依次點(diǎn)擊工具-開發(fā)板-開發(fā)板管理器细卧,搜索關(guān)鍵詞“8266”尉桩,搜到esp8266后點(diǎn)擊安裝,稍等幾分鐘后贪庙,該開發(fā)板庫文件就會(huì)安裝完畢蜘犁,如圖 2所示。
安裝完畢后止邮,再次點(diǎn)擊工具-開發(fā)板这橙,就可以找到WeMos D1(Retired)奏窑,單擊選中該選項(xiàng)。
圖2 開發(fā)板管理器安裝Esp8266開發(fā)庫

安裝完Esp8266開發(fā)庫之后屈扎,Arduino IDE已經(jīng)可以為8266類開發(fā)板上傳程序埃唯,但是為了可以使用Blynk平臺(tái), 還需要安裝Blynk庫鹰晨。從GitHub下載最新版的Blynk庫墨叛,下載地址為https://github.com/blynkkk/blynk-library/releases/latest。再將Blynk庫解壓到Arduino項(xiàng)目文件夾模蜡,項(xiàng)目文件夾路徑可以通過Arduino軟件中文件-首選項(xiàng)找到漠趁,如圖 3所示。解壓后項(xiàng)目文件夾結(jié)構(gòu)如圖 4所示忍疾。
圖 3查找Arduino項(xiàng)目文件夾

圖 4 Blynk文件夾解壓后文件夾結(jié)構(gòu)

安裝Blynk APP并初始設(shè)置

安卓用戶掃描下方二維碼安裝Blynk App棚潦。


二維碼

iOS用戶可以在App Store 中搜索Blynk并安裝。
安裝好App后膝昆,打開App后點(diǎn)擊Create New Account(注冊(cè)新用戶)丸边,然后在注冊(cè)頁面填寫自己的郵箱和密碼即可完成注冊(cè)。首次登錄后可以看到App內(nèi)暫時(shí)還沒有任何項(xiàng)目荚孵,點(diǎn)擊Create New Project(創(chuàng)建新項(xiàng)目)妹窖。在創(chuàng)建項(xiàng)目頁面填寫項(xiàng)目基本信息,其中的CHOOSE DEVICE (選擇設(shè)備)要選擇WeMos D1收叶,下面的CONNECTION TYPE(連接類型)選擇Wi-Fi并保存骄呼。保存之后,App會(huì)提示授權(quán)碼已經(jīng)生成并發(fā)送到了你的郵箱判没。App端的準(zhǔn)備工作就這么多蜓萄,只要你耐心一步一步操作,相信不會(huì)難倒你澄峰,步驟如下圖所示嫉沽。

app首頁
注冊(cè)用戶
首頁
創(chuàng)建項(xiàng)目
授權(quán)碼

牛刀小試:遠(yuǎn)程開燈

一切準(zhǔn)備就緒之后,我們就可以通過Blynk來遠(yuǎn)程控制一盞小燈啦俏竞。在控制小燈的過程中绸硕,我們一起來了解它的工作原理。

生成案例代碼

首先利用Blynk案例生成器(https://examples.blynk.cc/)產(chǎn)生一段簡單的范例程序魂毁。網(wǎng)站左側(cè)的設(shè)置如圖 6所示玻佩,其中的Auth Token是在App端創(chuàng)建項(xiàng)目之后郵箱中收到的授權(quán)碼,將它復(fù)制進(jìn)來即可席楚。
![圖 6在Blynk案例生成器中填寫授權(quán)碼](http://upload-images.jianshu.io/upload_images/10215886-7798b2c16d858263.png?!將右側(cè)生成的代碼全部復(fù)制到Arduino IDE中咬崔,在IDE中的選擇開發(fā)板信息,其中開發(fā)板選擇WeMos D1(Retired)烦秩,CPU頻率選擇80MHz垮斯,Upload Speed選擇115200郎仆,端口選擇WeMos D1所在的端口,設(shè)置如圖 7所示甚脉。

圖7設(shè)置開發(fā)板USB選項(xiàng)

將程序中的ssid修改成你當(dāng)前位置的Wi-Fi名稱丸升,將pass修改成該Wi-Fi的密碼,注意此處的引號(hào)一定要保留牺氨,如圖 8所示狡耻。
圖 8在代碼中修改自己的Wi-Fi信息

點(diǎn)擊上傳按鈕就可以將程序上傳到WeMos D1開發(fā)板中,當(dāng)在Arduino IDE中看到如圖 9信息時(shí)表示程序上傳成功猴凹。
圖9上傳成功信息

App端項(xiàng)目設(shè)置

開發(fā)板的程序上傳好之后夷狰,接下來需要設(shè)置手機(jī)上的App端。這樣通過App就可以控制開發(fā)板了郊霎。點(diǎn)擊空白處增加組件沼头。選擇第一個(gè)組件——Button,然后在按鈕設(shè)置界面設(shè)置按鈕信息书劝。WeMos D1板載的LED在D5口进倍,所以在output處選擇D5,MODE可以選擇PUSH(按住有效)或者SWITCH(按下有效)购对,再設(shè)置按鈕標(biāo)簽文本猾昆。
全部設(shè)置完畢后,返回主界面骡苞,點(diǎn)擊右上角的三角圖標(biāo)垂蜗,啟動(dòng)該項(xiàng)目。然后按下自己創(chuàng)建的按鈕試一試解幽,當(dāng)你按下時(shí)贴见,WeMos D1開發(fā)板上的SCK燈就會(huì)點(diǎn)亮;松開按鈕躲株,SCK燈就會(huì)熄滅片部,步驟如下圖所示。

添加組件
設(shè)置組件
完成設(shè)置

通過這個(gè)小項(xiàng)目徘溢,是不是發(fā)現(xiàn)控制一盞小燈其實(shí)很簡單吞琐?除了修改幾個(gè)參數(shù),我們自己并不需要寫一行代碼然爆。
當(dāng)你完成這個(gè)實(shí)例之后,你還可以試著創(chuàng)建一個(gè)Slider組件黍图。OUTPUT也選擇D5曾雕,再啟動(dòng)該項(xiàng)目,拖動(dòng)slider的滑塊助被,觀察SCK燈剖张,是不是還可以用這個(gè)滑塊控制SCK燈的亮度呢切诀?slider組件可以輸出PWM值,而WeMos D1開發(fā)板除了D0口搔弄,其他接口全部支持PWM輸出幅虑,因此我們就可以通過一個(gè)slider組件來控制D5接口的LED亮度。如果D5接口連接的是一個(gè)小風(fēng)扇顾犹,那么是不是也可以用該方法控制風(fēng)速呢倒庵?

程序剖析

當(dāng)我們實(shí)現(xiàn)了遠(yuǎn)程控制開發(fā)板上的LED之后,我們?cè)賮硌芯砍绦蜢潘ⅲ崂硭悸贰?br> 刪除注釋之后擎宝,我們發(fā)現(xiàn),在WeMos D1開發(fā)板上傳的程序只有短短的16行浑玛,那么這16行分別有什么含義呢绍申?

#define BLYNK_PRINT Serial//宏定義
#include <ESP8266WiFi.h>//導(dǎo)入庫文件
#include <BlynkSimpleEsp8266.h>//導(dǎo)入庫文件
char auth[] = "YourAuthToken";//設(shè)置授權(quán)碼,該授權(quán)碼是App端創(chuàng)建項(xiàng)目后生產(chǎn)的唯一的授權(quán)碼顾彰。手機(jī)app通過該授權(quán)碼與開發(fā)板通信极阅。
char ssid[] = "YourNetworkName";//Wi-Fi名稱
char pass[] = "YourPassword";//Wi-Fi密碼
void setup()
{
 Serial.begin(9600);
 Blynk.begin(auth, ssid, pass);//連接到blynk云
}
void loop()
{
 Blynk.run();//blynk開始工作
}
圖 12用Blynk與WeMos D1控制小燈示意圖

上面兩個(gè)實(shí)例中,我們并沒有修改代碼涨享,修改的只是App端的設(shè)置筋搏。其實(shí)這16行程序可以看做是多用途程序,在對(duì)I/O口進(jìn)行簡單讀寫操作時(shí)灰伟,都可以用這段程序拆又。
如果我們繼續(xù)推廣,還可以在此基礎(chǔ)上進(jìn)行拓展栏账。如果想要用WeMos D1遠(yuǎn)程控制家里的一盞臺(tái)燈帖族,只需要再加繼電器模塊即可。將繼電器的控制端接在WeMos D1的D5端口挡爵,將臺(tái)燈的火線剪斷竖般,接入繼電器即可,接線如圖 13所示茶鹃。


圖 13通過繼電器控制電器的電路示意圖

看到這里涣雕,我們已經(jīng)可以利用Blynk制作物聯(lián)網(wǎng)應(yīng)用,實(shí)現(xiàn)很多神奇的功能了闭翩,而實(shí)現(xiàn)這些功能并不需要太多的代碼挣郭。

遠(yuǎn)程獲取數(shù)據(jù)

在物聯(lián)網(wǎng)應(yīng)用中,除了簡單的控制以外疗韵,我們也常常會(huì)有其他的需求恋拷。比如遠(yuǎn)程獲取溫度就是一種常用的情況痊硕。當(dāng)我們?nèi)嗽谕饷媛茜瑁Mㄟ^手機(jī)查看家里的溫度咒彤。此時(shí),該如何借助Blynk遠(yuǎn)程讀取LM35溫度傳感器的數(shù)據(jù)呢?

硬件連接

LM35溫度傳感器是一款線性模擬電壓傳感器,該傳感器的輸出電壓與攝氏溫度呈線性關(guān)系,0℃時(shí)輸出電壓為0V叠赦,每升高1℃,輸出電壓增加10mv革砸。WeMos D1開發(fā)板上支持模擬輸入的引腳只有A0除秀,那么就可以將LM35溫度傳感器連接在A0引腳。溫度與A0口讀數(shù)之間的換算公式為:溫度=A0讀數(shù)×3.3÷1024×100业岁。(注:WeMos D1開發(fā)板的A0接口輸出電壓為3.3V)

APP端設(shè)置

在手機(jī)端需要設(shè)置一個(gè)可以顯示數(shù)值的模塊鳞仙,這個(gè)數(shù)值是從開發(fā)板傳輸過來的。在App端可以增加Value Display 或者Labeled Value組件笔时,前者只能顯示數(shù)值棍好,后者可以標(biāo)注數(shù)值名稱及單位。
在此允耿,選擇Labeled Value組件借笙,在組件設(shè)置中設(shè)置參數(shù),如下圖所示较锡。其中最關(guān)鍵的是要將INPUT一欄設(shè)置成V1业稼,此處要與程序中設(shè)置的端口保持一致。

添加顯示組件
設(shè)置組件

程序剖析

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = "xxxxxxxxxxx";//授權(quán)碼
char ssid[] = "wifi-ssid";//wifi名稱
char pass[] = "wifi-password";//wifi密碼
BlynkTimer timer;
int value,Temperature;
void myTimerEvent()
{
value=analogRead(A0);//獲取到A0口測得數(shù)據(jù)
Temperature=value3.3/1024100;//計(jì)算溫度值
Blynk.virtualWrite(V1, Temperature);//將溫度值寫入V1端口
}
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, myTimerEvent);//每隔1秒執(zhí)行一次myTimerEvent
}
void loop()
{
Blynk.run();
timer.run();
}

程序效果

將程序上傳后蚂蕴,開啟App端低散,則可以看到溫度組件可以顯示當(dāng)前測到的溫度。如果給傳感器適當(dāng)加熱骡楼,APP端的數(shù)值馬上就會(huì)發(fā)生變化熔号。如果想要在App端顯示溫度的變化曲線,還可以增加History Graph組件鸟整,利用該組件就可以很方便地顯示溫度變化曲線了引镊,效果如下圖所示。

顯示溫度
顯示歷史溫度

如果想要把記錄的數(shù)值導(dǎo)出來篮条,可以在History Graph組件上向左滑動(dòng)弟头,會(huì)出現(xiàn)導(dǎo)出數(shù)據(jù)和擦除數(shù)據(jù)選項(xiàng),如圖 17所示涉茧。選擇導(dǎo)出數(shù)據(jù)赴恨,你就可以收到一份郵件,郵件中的.csv文件中包括了你導(dǎo)出的數(shù)據(jù)伴栓,有了這份數(shù)據(jù)后嘱支,如果想要做一些數(shù)據(jù)分析就變得很方便了蚓胸。
幾十年前竺可楨爺爺記錄氣象日記需要每天觀察記錄挣饥,而如今除师,我們只需要制作一個(gè)簡單的物聯(lián)網(wǎng)應(yīng)用就可以輕松解決了。


圖 17 App端導(dǎo)出歷史數(shù)據(jù)

結(jié)語

通過幾個(gè)簡單的例子扔枫,相信你已經(jīng)初步掌握了物聯(lián)網(wǎng)應(yīng)用的開發(fā)了吧汛聚。借助常用的傳感器,制作一些炫酷的作品短荐,讓物聯(lián)網(wǎng)技術(shù)盡早走進(jìn)你的生活吧倚舀!

(本文發(fā)表于《無線電》2017年10月刊)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市忍宋,隨后出現(xiàn)的幾起案子痕貌,更是在濱河造成了極大的恐慌,老刑警劉巖糠排,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舵稠,死亡現(xiàn)場離奇詭異,居然都是意外死亡入宦,警方通過查閱死者的電腦和手機(jī)哺徊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乾闰,“玉大人落追,你說我怎么就攤上這事⊙募纾” “怎么了轿钠?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長病苗。 經(jīng)常有香客問我疗垛,道長,這世上最難降的妖魔是什么铅乡? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任继谚,我火速辦了婚禮,結(jié)果婚禮上阵幸,老公的妹妹穿的比我還像新娘花履。我一直安慰自己,他們只是感情好挚赊,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布诡壁。 她就那樣靜靜地躺著,像睡著了一般荠割。 火紅的嫁衣襯著肌膚如雪妹卿。 梳的紋絲不亂的頭發(fā)上旺矾,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音夺克,去河邊找鬼箕宙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛铺纽,可吹牛的內(nèi)容都是我干的柬帕。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼狡门,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼陷寝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起其馏,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤凤跑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后叛复,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仔引,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年致扯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肤寝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抖僵,死狀恐怖鲤看,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情耍群,我是刑警寧澤义桂,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站蹈垢,受9級(jí)特大地震影響慷吊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜曹抬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一溉瓶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谤民,春花似錦堰酿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至为牍,卻和暖如春哼绑,著一層夾襖步出監(jiān)牢的瞬間岩馍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國打工抖韩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛀恩,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓帽蝶,卻偏偏與公主長得像赦肋,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子励稳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,756評(píng)論 25 707
  • 用到的組件 1、通過CocoaPods安裝 2囱井、第三方類庫安裝 3驹尼、第三方服務(wù) 友盟社會(huì)化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 14,604評(píng)論 1 180
  • 文章結(jié)構(gòu) <a id="1"></a>前言 前段時(shí)間從網(wǎng)上買了一個(gè)體重計(jì),它自帶了無線上網(wǎng)的功能庞呕,能夠同步體重測量...
    Linsw閱讀 4,499評(píng)論 4 20
  • “痛苦的滋味有31種新翎,而那一切滋味都不是失去,而是曾經(jīng)擁有住练〉貑”——《我們是這樣活過來的》 去圖書館蹭無線,走過新書...
    我叫辛美樂閱讀 466評(píng)論 2 1
  • 當(dāng)你一籌莫展 你最好選擇相信 火苗會(huì)憑空燃起 如同神的計(jì)劃和恩典 從不落空 從無失誤
    農(nóng)藥般的丫頭閱讀 136評(píng)論 0 1