Sampel Publish Multi Tag
Math Random Multi Tag
Persiapkan Komponen
Buat GoIoT Proyek
Mulai memprogram
Jalankan program di Perangkat Keras
Enjoy
Persiapkan Komponen
NodeMCU ESP8266

Karena math random hanya membutuhkan esp
Buat GoIoT proyek
Ikuti langkah-langkah nya disini
Mulai memprogram
/*This Example Program created for Publish test with output math random using GoIoT as IOT Platform
--------------------------- https://goiot.id ---------------------------
Wifi Communication*/
#include <ESP8266WiFi.h> // library esp8266
// #include <WiFi.h> // library esp32
#include <PubSubClient.h> // library MQTT
#include <ArduinoJson.h> // library ArduinoJson ver 5.13.5
const char* ssid = "ssid wifi anda"; // silahkan diisi
const char* password = "password wifi anda"; // silahkan diisi
const char* mqtt_server = "broker.goiot.id"; // set MQTT server
WiFiClient espClient;
PubSubClient client(espClient);
char msg2[50];
char msg[50];
long randomNumber; // variabel yang akan dikirim
long randomNumber2; // variabel yang akan dikirim
StaticJsonBuffer<200> jsonBuffer; // ArduinoJson ver 5.13.5
//Wifi Setup
void setup_wifi() {
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
//General Setup
void setup() {
Serial.begin(115200);
setup_wifi(); // run setup_wifi
client.setServer(mqtt_server, 1883); // set MQTT port
}
//Connect to broker
void reconnect() {
// Loop until we're reconnected
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
char *idnya = "projectID anda#device anda#"; // MQTT Client ID
char *username = "username anda"; // GOIOT Username
char *password = "mqtt token anda"; // GOIOT MQTT Token
if (client.connect(idnya, username, password))
{
Serial.println("connected");
}
else
{
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
// Wait 5 seconds before retrying
delay(5000);
}
}
}
//Looping Function
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
randomNumber = random(20); // random number from 0 to 19
randomNumber2 = random(20); // random number from 0 to 19
char result[100];
char* arrayBuka = "[";
char* tagSatu = "{\"tag\":\"sensor11\",\"value\":"; // silahkan ganti sensor11 menjadi tag anda
sprintf (msg, "%i", randomNumber); // convert integer to char
char* tutupJson = "}";
char* tagDua = ",{\"tag\":\"sensor12\",\"value\":"; // silahkan ganti sensor12 menjadi tag anda
sprintf (msg2, "%i", randomNumber2); // convert integer to char
char* arrayTutup = "]";
strcpy(result, arrayBuka);
strcat(result, tagSatu);
strcat(result, msg);
strcat(result, tutupJson);
strcat(result, tagDua);
strcat(result, msg2);
strcat(result, tutupJson);
strcat(result, arrayTutup);
Serial.println(result);
/* Bisa lihat di https://docs.goiot.id/mqtt-rule */
client.publish("v2/projectID anda/device anda/json", result); // silahkan diisi
delay(1000);
}
/* www.goiot.id */
Upload Program


Temperatur dan Kelembaban Sensor MQTT
DHT22
Persiapkan Komponen
NodeMCU ESP8266

DHT Sensor

Kabel Jumper

Konfigurasi Perangkat Keras

DHT NodeMCU
VCC <--> 3v3 / VV / Vin
GND <--> GND
Out <--> D4 / GPIO2
/*This Example Program created for Publish test with output (GPIO2/D4) using GoIoT as IOT Platform
--------------------------- www.goiot.id ---------------------------
Wifi Communication*/
#include <PubSubClient.h> // library MQTT (metode MQTT publish subscribe)
#include <ESP8266WiFi.h> // library esp8266
// #include <WiFi.h> // library esp32
#include <DHT.h> // library DHT sensor
#include <ArduinoJson.h> // library ArduinoJson ver 5.13.5
#define DHTPIN 2 // GPIO2 is D4 in board esp8266 NodeMCU
// #define DHTPIN 4 // GPIO2 is D4 in board ESP32
#define DHTTYPE DHT22 // Tipe DHT (sesuaikan dengan tipe DHT sensornya)
DHT dht(DHTPIN, DHTTYPE);
char ssid[] = "ssid wifi anda"; // silahkan diisi
char pass[] = "password wifi anda"; // silahkan diisi
const char* broker = "broker.goiot.id"; // set MQTT server
WiFiClient client;
PubSubClient mqtt(client);
char msg[50];
char msg2[50];
StaticJsonBuffer<200> jsonBuffer; // ArduinoJson ver 5.13.5
void setup_wifi() {
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, pass);
int retries = 0;
while ((WiFi.status() != WL_CONNECTED) && (retries < 10)) {
retries++;
delay(500);
Serial.print(".");
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println(F("WiFi connected"));
}
}
void setup() {
Serial.begin(115200);
setup_wifi();
dht.begin();
mqtt.setServer(broker, 1883);
delay(10);
Serial.println("Hasil DHT : ");
}
void reconnect() {
while (!mqtt.connected())
{
Serial.print("Attempting MQTT connection...");
char *idnya = "projectID anda#device anda#"; // silahkan diisi
char *username = "username GOIOT anda"; // silahkan diisi
char *password = "MQTT token GOIOT anda"; // silahkan diisi
if (mqtt.connect(idnya, username, password))
{
Serial.println("connected");
}
else
{
Serial.print("failed, rc=");
Serial.print(mqtt.state());
Serial.println("try again in 5 seconds");
delay(5000);
}
}
}
void loop() {
if (!mqtt.connected())
{
reconnect();
}
mqtt.loop();
float h = dht.readHumidity(); // Read Humidity
float t = dht.readTemperature(); // Read temperature as Celsius
float f = dht.readTemperature(true); // Read temperature as Fahrenheit
Serial.print("Temperature : ");
Serial.print(t);
Serial.print(" °C ");
Serial.print(" | ");
Serial.print("Humidity : ");
Serial.print(h);
Serial.println(" RH ");
char result[100];
char* arrayBuka = "[";
char* tagSatu = "{\"tag\":\"sensor11\",\"value\":"; // silahkan ganti sensor11 menjadi tag anda
// sprintf(msg, "%f", t); // convert float ke char
sprintf(msg, "%d.%02d", (int)t, (int)(t*100)%100); // bila konversi float ke char error gunakan
char* tutupJson = "}";
char* tagDua = ",{\"tag\":\"sensor12\",\"value\":"; // silahkan ganti sensor12 menjadi tag anda
// sprintf(msg, "%f", t); // convert float ke char
sprintf(msg2, "%d.%02d", (int)h, (int)(h*100)%100); // bila konversi float ke char error gunakan
char* arrayTutup = "]";
strcpy(result, arrayBuka);
strcat(result, tagSatu);
strcat(result, msg);
strcat(result, tutupJson);
strcat(result, tagDua);
strcat(result, msg2);
strcat(result, tutupJson);
strcat(result, arrayTutup);
Serial.println(result);
mqtt.publish("v2/projectID anda/device anda/json", result); // silahkan diisi
delay(1000);
}
/* www.goiot.id */
Last updated
Was this helpful?