2018年1月31日 星期三

NodeMCU Lesson 14 — 4-Digit 7 Segment LED Display & MQTT

NodeMCU Lesson 14 — 4-Digit 7 Segment LED Display 

                      & MQTT

Introduction

In this lesson, we will show how to use a MQTT client(MQTTBox here) to send a digit MQTT message to NodeMCU. NodeMCU will subscribe to corrsponding publish topic and display the subscription messages  on a 4-digit 7 segment LED device.

Preparation

Hardware:
Software:

Connection

NodeMCU4 digital display
3.3VVCC
GNDGND
D2CLK
D3DIO

Upload Sketch

Connect the NodeMCU to computer via USB cable,open this sketch by using Arduino IDE(Version1.6.4+):
Edit the code to fit your own WiFi and MQTT settings as following operations:
1)Hotspot Configration:
const char* ssid = "your_hotspot_ssid";
const char* password = "your_hotspot_password";
Find above code line,put your own ssid and password on there.
2)MQTT  Server  Address Setting
const char* mqtt_server = "broker.mqtt-dashboard.com";
You can use your own MQTT broker URL or IP address to set above mqtt_server value. You can also use some famous free MQTT server to test the project such as  "broker.mqtt-dashboard.com",  "iot.eclipse.org" etc.
3)MQTT Client Settings
If your MQTT broker require clientID,username and password authentication,you need to change
if (client.connect(clientId.c_str()))
to
if (client.connect(clientId,userName,passWord)) //put your clientId/userName/passWord here
If not,just keep them as default.
After do that,choose the coresponding board type and port type as below,then upload the sketch to the NodeMCU.
  • Board:"NodeMCU 0.9(ESP-12 Module)"
  • CPU Frequency:"80MHz"
  • Flash Size:"4M (3M SPIFFS)"
  • Upload Speed:"115200"
  • Port: Choose your own Serial Port for your NodeMCU

MQTT Client Settings

About how to config the MQTT clientr,check this link.
Topics Settings:
  • Topic to publish: OsoyooCommand
  • Payload Type: Decimal Array

Running Result

Onece the upload done,if wifi hotspot name and password setting is ok and MQTT broker is connected, open the Serial Monitor,you will see following result:
The NodeMCU serial port will show the IP address and the connection satatus,then print the command from MQTT client.NOTE: When the number is between 0 and 191, it can be displayed normally.The initial state output value is 83.
Open the MQTTBox and publish different number(0~191) to the broker,
The 4 digital LED display will show as below :
The Serial Monitor output as below:

沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...