0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

M5Paper: MQTT 送信

0
Last updated at Posted at 2022-06-03

ブローカー mqtt.m5stack.com
トピック m5paper

image.png

mqtt_publish.ino
// ---------------------------------------------------------------
/*
	mqtt_publish.ino

					Jun/03/2022
*/
// ---------------------------------------------------------------
#include <M5EPD.h>
#include <WiFi.h>
#include <PubSubClient.h>
#include <ArduinoJson.h>
#include <PubSubClient.h>
#include <stdio.h>
#include "config.h"

#define INTERVAL	(5000)

WiFiClient wificlient;
PubSubClient mqttClient(wificlient);

M5EPD_Canvas canvas(&M5.EPD);

int	count = 0;

// ---------------------------------------------------------------
void setup()
{
	M5.begin();
	M5.EPD.Clear(true);
	canvas.createCanvas(960, 540);
	canvas.setTextSize(4);

	WiFi.begin(SSID, PASSWORD);

	while (WiFi.status() != WL_CONNECTED) {
		delay(500);
		Serial.print(".");
	}

//	M5.Lcd.print("\nConnecting Wifi...\n");
	int xx = 100;
	int yy = 30;
	canvas.drawString("Connecting Wifi...", xx, yy);
	canvas.pushCanvas(0,0,UPDATE_MODE_DU4);

	Serial.print("\nConnecting Wifi...\n");
	delay(1000);
	yy = 80;
	canvas.drawString("*** setup *** aaa ***", xx, yy);
	canvas.pushCanvas(0,0,UPDATE_MODE_DU4);
	Serial.println("*** setup *** aaa ***");
	delay(1000);

	setup_mqtt_proc();

	yy = 130;
	canvas.drawString("*** Setup completed *** Jun/03/2022 PM 14:00 ***", xx, yy);
	canvas.pushCanvas(0,0,UPDATE_MODE_DU4);
	Serial.println("*** Setup completed *** Jun/03/2022 PM 14:00 ***");
}

// ---------------------------------------------------------------
void loop()
{
	Serial.println("*** check *** " + String(count));

	mqtt_send_proc(count);

	delay(INTERVAL);

	count++;
}

// ---------------------------------------------------------------
void mqtt_send_proc(int count)
{
	DynamicJsonDocument doc(256);
	char data_json[256];
	data_json[0] = '\0';

	char *chx = (char *)malloc(256);
	chx[0] = '\0';

	char qq[51] = "01234567890123456789";

	strcat(chx,qq);

	doc["state"]["reported"]["led"] = "on";

	doc["count"] = count;

	doc["llx"] = String(strlen(chx));
	doc["chx"] = chx;
	doc["version"] = "2022-6-03 PM 14:20";

	serializeJson(doc, data_json);

	Serial.println("MQTT_MAX_PACKET_SIZE = " + String(MQTT_MAX_PACKET_SIZE));

	boolean flag = mqttClient.publish(OUT_TOPIC, data_json);
	Serial.println(flag);

	free(chx);
}

// ---------------------------------------------------------------
void setup_mqtt_proc()
{
	Serial.println("### Connecting to MQTT server \""MQTT_SERVER_HOST"\"");
//	M5.Lcd.println("### Connecting to MQTT server \""MQTT_SERVER_HOST"\"");
	mqttClient.setServer(MQTT_SERVER_HOST, MQTT_SERVER_PORT);

	if (!mqttClient.connect(ID))
		{
		Serial.println("### Error! connect ###");
		}
	else
		{
		Serial.println("### Success! connect ###");
		}
}

// ---------------------------------------------------------------
config.h
// ---------------------------------------------------------------
/*
	config.h

					Jun/03/2022
*/
// ---------------------------------------------------------------
#define MQTT_SERVER_HOST  "mqtt.m5stack.com"
#define MQTT_SERVER_PORT  (1883)

#define ID		"M5Paper"
#define OUT_TOPIC	"m5paper"
#define IN_TOPIC	"m5paper"

#define SSID		"******************"
#define PASSWORD	"***************"
// ---------------------------------------------------------------

実行時のモニター

サブスクライブ

go_sub_mqtt.sh
BROKER="mqtt.m5stack.com"
TOPIC="m5paper"
#
echo ${BROKER}
mosquitto_sub -d -t orz -h $BROKER --topic ${TOPIC}
$ ./go_sub_mqtt.sh 
mqtt.m5stack.com
Client (null) sending CONNECT
Client (null) received CONNACK (0)
Client (null) sending SUBSCRIBE (Mid: 1, Topic: orz, QoS: 0, Options: 0x00)
Client (null) sending SUBSCRIBE (Mid: 1, Topic: m5paper, QoS: 0, Options: 0x00)
Client (null) received SUBACK
Subscribed (mid: 1): 0, 0
Client (null) received PUBLISH (d0, q0, r0, m0, 'm5paper', ... (117 bytes))
{"state":{"reported":{"led":"on"}},"count":85,"llx":"20","chx":"01234567890123456789","version":"2022-6-03 PM 14:20"}
Client (null) received PUBLISH (d0, q0, r0, m0, 'm5paper', ... (117 bytes))
{"state":{"reported":{"led":"on"}},"count":86,"llx":"20","chx":"01234567890123456789","version":"2022-6-03 PM 14:20"}
Client (null) received PUBLISH (d0, q0, r0, m0, 'm5paper', ... (117 bytes))
{"state":{"reported":{"led":"on"}},"count":87,"llx":"20","chx":"01234567890123456789","version":"2022-6-03 PM 14:20"}

シリアルモニター

cu -s 115200 -l /dev/ttyACM0
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?