电子说
第1步:你需要什么: -
对于这个可以指导的所有你需要的是一个微控制器,它可以是Arduino或raspberry pi或者我用过ESP8266。我使用的是基于ESP8266的Node MCU,如果你使用的是arduino,你将需要ESP WiFi模块。
硬件组件: -
NodeMCU(美国链接)
LCD显示屏。 x 1(美国链接)
面包板。 x 1(美国链接)
瞬时开关x 1(美国链接)。
220欧姆电阻x 1.(美国链接)
10k欧姆电位器x 1(美国链接)。
软件: -
Ardunio IDE。
RemoteMe.org(注册)。
步骤2:在RemoteMe上设置变量: -
在此步骤我们将设置变量,将数据发送到我们的微控制器。首先访问RemoteMe.org并按照以下步骤操作: - (请参阅上面的图片以便更好地理解)
在网站上,前往“ Applications ”并创建一个帐户,如果您还没有帐户。
接下来,转到“变量”(它位于菜单的左侧)。
在“变量”选项中,将有一个空白页面,右上角有“添加”选项。点击它。将出现一个弹出窗口。
在弹出窗口中填写变量的名称。这取决于你想要什么(订阅者计数,查看计数或天气信息)。
现在选择服务器类型“远程”,该组依赖于您想要的YouTube或天气数据。
如果您选择“ YouTube ”,则需要在YouTube上找到的频道ID,到YouTube并搜索您想要的频道,打开它并在网址中复制代码。 (查看图像以供参考)
现在,在“远程模式”选项中,选择您希望订阅者计数或视图计数的内容。并提交数据。它将创建一个变量。同样为您想要的其他数据创建更多变量。
查看图片了解详情,了解更多信息。
步骤3:在RemoteMe上设置设备: -
完成变量后,转到“ Devices ”选项。它位于“ Variables ”之上。在这里你必须创建一个新设备。
要创建新设备,请选择右上角的选项。
从下拉列表中选择“新网络设备”下方菜单。将出现一个弹出窗口。
首先选择您正在使用的设备类型。 (对于Arduino和NodeMCU,请选择arduino)
将设备命名为YouTube/Weather,无论您想要什么。
提供一个设备ID,它可以是任何东西,但对于第一个设备给‘1’。
现在提交。将出现一个新设备。
单击设备上的汉堡菜单。 (由3条水平线表示)并选择“代码生成器向导”。
现在选择Variables,Select all并单击Next。
输入您的WiFi名称和密码。在令牌菜单中选择令牌。单击Next。
打开调试选项并单击下一步。
在这里,您可以看到Arduino的代码。它将自动生成,您可以下载它。
继续下一步。
第4步:编码: -
下载的代码现在可以上传到微控制器。要使代码生效,您需要一些可以从库管理器安装的库。
安装库: -
转到 》》 草图 》》 包含库 》》 管理库。
在搜索栏中输入库的名称。 (ESP8266WiFi,ESP8266WiFiMulti& RemoteMe)
安装库。
现在您可以上传代码并打开串行监视器来观看数据。
下面我提供了一些代码,稍加编辑以使结果更具体。您可以下载代码,添加您的WiFi名称和必填字段中的密码。还要添加上一步(‘1’)中使用的设备ID。
手动添加令牌转到 RemoteMe 》》 应用程序》》 令牌。复制令牌并将其粘贴到代码上。上传并检查串口监视器的结果。
注意: - 要使用arduino IDE对ESP板进行编程,您必须设置IDE,如果您不知道,可以检查这个 教程 。
步骤5:在LCD上显示数据: -
现在您已成功在“串行监视器”上显示数据,您可以继续在LCD屏幕上显示数据,以便项目更加便携。
请仔细按照以下步骤操作: -
首先将NodeMCU板(ESP8266)放在面包板上,将其‘3.3v’连接到‘面包板的+ ve’轨道和‘Gnd’到‘ - ve’轨道。
连接MCU旁边的按钮,并通过‘220 ohm’电阻将其一个引脚连接到面包板的“-ve”轨道。并将相同的引脚连接到MCU的‘D2’引脚。将按钮的另一个引脚连接到面包板的‘+ ve’导轨。
现在连接面包板上的LCD并仔细按照连接进行操作。
VSS 》》面包板的-ve rail。
VDD 》》 + ve rail。
V0 》》电位器的中间端子。 (将另外两个端子连接到-ve和+ ve)
RS 》》 D2
RW 》》 -ve rail。
E 》》 D3的MCU
D4 》》 D5
D5 》》 D6
D6 》》 D7
D7 》》 D8
A 》》 + ve导轨板通过220欧姆电阻器。
K 》》 -ve rail
我知道这有点令人困惑,但请查看图片以获得更好的主意。
完成后,连接就绪,现在只需要上传代码。
需要编辑代码才能使用LCD。
让我们编辑前面的代码: -
#define WIFI_NAME “WiFi Name”
#define WIFI_PASSWORD “WiFi Password”
#define DEVICE_ID 1
#define DEVICE_NAME “Device Name”
#define TOKEN “Add Token”
#define btn D1 //Declare a button variable for push button
#include
#include
#include
#include
#include //including library to use LCD
LiquidCrystal lcd(D2, D3, D5, D6, D7, D8); //mapping LCD pins to ESP‘s pins
/* Variables to store data from RemoteMe */
int16_t i, i1, i2, temp, pres;
int32_t subs, views;
String hr; //Only needed if you want to display time.
long lastDebounceTime = 0, debounceDelay = 50; //To eliminate button bouncing.
ESP8266WiFiMulti WiFiMulti;
RemoteMe& remoteMe = RemoteMe::getInstance(TOKEN, DEVICE_ID);
void onSubscribersChange(int32_t i)
{
subs = i; //Storing subscriber data in variable ’subs‘
}
void onViewsChange(int32_t i)
{
views = i; //Storing views in variable ’views‘
}
void onWeatherChange(int16_t i1, int16_t i2,String s1,String s2)
{
temp = i1; //storing temperature
pres = i2; //Storing Pressure
}
/*New functions to display the stored data*/
void youtube()
{
//Display YouTube info.
Serial.printf(“Subscribers : %d ”, subs);
Serial.printf(“Views : %d ”, views);
lcd.clear();
lcd.printf(“Subscribers : %d”, subs);
lcd.setCursor(0,1);
lcd.printf(“Views : %d”, views);
lcd.setCursor(0,0);
}
void weather()
{
//Display weather info.
Serial.printf(“Temparature : %d °C ”, temp);
Serial.printf(“Pressure : %d Pa ”, pres);
lcd.clear();
lcd.printf(“Temperature : %d”, temp);
lcd.setCursor(0,1);
lcd.printf(“Pressure : %d”, pres);
lcd.setCursor(0,0);
}
void setup()
{
Serial.begin(9600);
lcd.begin(16, 2);
pinMode(btn, INPUT);
WiFiMulti.addAP(WIFI_NAME, WIFI_PASSWORD);
while (WiFiMulti.run() != WL_CONNECTED)
{
delay(100);
}
remoteMe.getVariables()-》observeInteger(“Subscribers” ,onSubscribersChange);
remoteMe.getVariables()-》observeInteger(“Views” ,onViewsChange);
remoteMe.getVariables()-》observeSmallInteger2Text2(“Weather” ,onWeatherChange);
remoteMe.sendRegisterDeviceMessage(DEVICE_NAME);
Serial.print(“Connected.。.”);
lcd.print(“Connected.。.”);
}
void loop()
{
int btn_state = LOW; //button state is initially set LOW
static int flag = 0; //flag is set 0
btn_state = digitalRead(btn); //button input is read.
if((millis() - lastDebounceTime) 》 debounceDelay)
{
if((btn_state == HIGH) && (flag == 0)) //if button is pressed & flag is 0
{
weather(); //show weather data
flag = 1; //set flag to 1
}
else if((btn_state == HIGH) && (flag == 1)) //if button is pressed & flag is 1
{
youtube(); //show YouTube info
flag = 0; //set flag to 0
}
lastDebounceTime = millis();
}
remoteMe.loop();
}
因此,在进行更改后,您可以将代码上传到电路板,您应该看到LCD上显示“已连接。..”以及串行监视器。
从下面下载代码: -
第6步:测试: -
代码启动并运行后,您可以测试一切是否正常。
当ESP板连接到网络时,LCD将显示“已连接。..”
按此按钮将显示天气(温度和压力信息),再按一次将显示YouTube用户和总计观点。
您可以编辑代码以显示其他信息,如时间,天气状况等。
全部0条评论
快来发表一下你的评论吧 !