该项目将向您展示如何设置 Arduino IoT 将消息发送到云板显示器(LCD)。
该项目基于Project Hub 用户MicroBob 的项目
该项目将您的显示器连接到Arduino IoT Cloud。最终结果是能够从Arduino IoT Cloud上的仪表板向LCD发送消息。
您将需要一个与 IoT Cloud 积木的 Arduino 板,我们在此项目中使用 33 IoT。
补给品
Arduino Nano 33 上网或其他物联网云物板× 1
Adafruit 标准 LCD - 16x2 白底蓝× 1
电阻 220 欧姆 × 1
面包板(通用) × 1
Arduino物联网联网
第一个连接线:
面包有关您首先将如何连接到组件到连接步骤。将找到一个连接器和下面的分步步骤。LCD 有 6 个连接器,在板子中,我们将它们分别设置为您的本机连接器中的 1 个-16,从左到右编号,从上角开始。
将阿杜诺的面包绕在地上,将连接线连接到您的液晶显示器上:
Arduino 用 2 到 LCD 上的地址 14
Arduino 字母 3 到 LCD 上的地址 13
Arduino 4 到 LCD 上的地址 12
Arduino 用 5 到 LCD 上的地址 11
Arduino 9到LCD上的地址3
Arduino 10 到 LCD 上的地址 15
Arduino 上的 11 到 LCD 上的 6
Arduino 上的 12 到 LCD 上的 4
Arduino 5V 到 LCD 上的电源 2
Arduino 上的接地到 1 和 1 用 LCD5
Arduino 通过一个 222 电阻连接到 LCD 上的接地端 16
完成后,您的电路将如下所示:
第 2 步:Arduino 物联网联网
要开始执行此步骤,您将需要一些非常基本的 Arduino IoT Cloud 制造服务知识。如果您以前通过任何项目,请不要担心,您需要知道所有使用服务的知识。
如果您是 Arduino 的入门教程,那么请一些时间学习入门页面,然后您就可以开始学习了。如果需要,还有物联网教程启动教程
在云端,您需要创建一个新事物,并配置您的设备和网络。
然后,你应该赋予一个变量。
现在,您需要创建一个仪表板来向您的 Arduino 板发送消息。转到仪表板部分,并制作一个新的仪表板。
在里面,创建一个“信使”类型的小组件。然后你将它链接到你的“lcdText”变量需要。
现在,它不会做决定,我们还没有将他们发送到任何地方。因为你可以写地方消息,但不会做。
第 3 步代码:代码
对于这个项目,我们需要包含一个库来处理这个消息的繁重工作。除了这个之外,以及处理它们的正确拆解以适合显示的 2 行。我们将引导完成,如果您将它复制到您的完整过程中,但可以在底部找到 IDE。
您可以从合适的库开始,并立即传递给我们想要使用的相关信息。
通过将下面的代码行到东西 -> 选项卡中的草图的添加来完成这一点。
#include LiquidCrystal lcd(12, 11, 5, 4, 3, 2); #define contra 9 //定义控制屏幕对比度的引脚 #define bri 10 //定义控制屏幕亮度的引脚 |
现在,屏幕上的所有内容传递给库,并开始很好地进行。并且我们准备好让我们准备好液晶显示器和已表达的愿望。
此外,我们已将 LCD 上的第一条消息打印到 LCD 上,以便您知道它正在准备好接收到云端的消息。
在 setup 函数中添加这些行,以便在开发板启动时运行一次。
lcd.begin(16, 2); //告诉LCD这是一个16x2 LCD pinMode(contra, OUTPUT); pinMode(bri,输出); 数字写入(相反,低); 类比写入(布里,255); lcd.print("发送文本!"); |
循环函数将保持为无缘无故地运行代码,因此我们将在LcdTextChange函数中继续编写其他的更新代码,每次从仪表盘运行一次。
这也是我们将消息一分为二的地方,如果它显示太长而不能只在一行上,并检查它是否太长而根本无法。
我们将设置包含两个变量来展示我们的消息,然后我们将确定一个消息来显示我们是否需要一两行消息,以及一个没有条件的回传内容。 ! 将它传递下去,然后它太长了,然后我们可以随便加个文本给它两块好。
字符串第一行; 字符串第二行; if(lcdText.length()< 15){ firstLine = lcdText; } else if (lcdText.length() < 29){ firstLine = lcdText.substring(0, 15); secondLine = lcdText.substring(15, 29); } else{ firstLine = "消息太长"; } |
完成后,我们还在屏幕上打印出文本需要首先,清除 LCD 上显示的任何一条消息。二行。
Serial.println(lcdText); lcd.clear(); lcd.setCursor(0,0); lcd.print(firstLine); lcd.setCursor(0,1); lcd.print(第二行); |
完整代码如下:
/* Arduino IoT Cloud Thing "Untitled 2" 生成的草图 https://create.arduino.cc/cloud/things/d5666fa2-1687-4538-a1d7-90f746998d23 Arduino IoT Cloud 变量描述 以下变量是自动生成和更新的当对事物 字符串 lcdText 进行更改时; 在 Cloud Thing 中标记为 READ/WRITE 的变量也将具有 在从仪表板更改其值时调用的函数。 这些功能由 Thing 生成并添加到此草图的末尾。 */ #include "thingProperties.h" #include LiquidCrystal lcd(12, 11, 5, 4, 3, 2); #define contra 9 //定义控制屏幕对比度的引脚 #define bri 10 //定义控制屏幕亮度的引脚 void setup() { // 初始化串口并等待端口打开: Serial.开始(9600); // 如果没有找到延迟(1500), 则此延迟提供了等待串行监视器而不阻塞的机会 lcd.begin(16, 2); //告诉LCD这是一个16x2 LCD pinMode(contra, OUTPUT); //将引脚 9 设置为 OUTPUT pinMode(bri, OUTPUT); //将pin 10设置为OUTPUT //pinMode-ing OUTPUT使指定的pin输出功率 digitalWrite(contra, LOW); /*不向对比引脚输出电源。 这可以让您看到单词*/ 类比写入(布里,255);//向屏幕亮度 LED 输出全功率 lcd.print("Send text!"); // 定义在thingProperties.h initProperties(); // 连接到 Arduino IoT Cloud ArduinoCloud.begin(ArduinoIoTPreferredConnection); /* 以下函数可让您获得更多 与网络和物联网云连接状态相关的信息,错误 数越高,您获得的信息越细。 默认值为 0(仅错误)。 最大值为 4 */ setDebugMessageLevel(2); ArduinoCloud.printDebugInfo(); } 无效循环() { ArduinoCloud.update(); // 您的代码 } /* 由于 LcdText 是 READ_WRITE 变量,因此 每次从 IoT Cloud 接收到新值时都会执行 onLcdTextChange()。 */ void onLcdTextChange() { // 在此处添加代码以作用于 LcdText 更改 String firstLine; 字符串第二行; if(lcdText.length()< 15){ firstLine = lcdText; } else if (lcdText.length() < 29){ firstLine = lcdText.substring(0, 15); secondLine = lcdText.substring(15, 29); } else{ firstLine = "消息太长"; } Serial.println(lcdText); lcd.clear(); lcd.setCursor(0,0); lcd.print(firstLine); lcd.setCursor(0,1); lcd.print(第二行); } |
总结:
一致发布此草稿后,您应该在 LCD 上阅读它们的消息
全部0条评论
快来发表一下你的评论吧 !