Sampel Publish Single Tag

Temperatur dan Kelembaban Sensor MQTT

DHT22

  1. Persiapkan Komponen

  2. Konfigurasi Perangkat Keras

  3. Buat GoIoT Proyek

  4. Mulai memprogram

  5. Jalankan program di Perangkat Keras

  6. Enjoy

Persiapkan Komponen

  • DHT Sensor

  • NodeMCU ESP8266

  • Kabel Jumper

Konfigurasi Perangkat Keras

DHT NodeMCU

VCC <--> 3v3 / VV / Vin

GND <--> GND

Out <--> D4 / GPIO2

Buat GoIoT proyek

Ikuti langkah-langkah nya disini

Mulai memprogram

  • Install Driver CH340 jika diperlukan, disini

  • Download PubSubClient Library, disini

  • Download ESP8266 Library, disini

  • Download DHT Library, disini

/*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
#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];

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.println(" °C ");
  
  // 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 ini
  mqtt.publish("v2/projectID anda/device anda/direct/tag anda", msg); // silahkan diisi
  Serial.println(msg);
  delay(1000);
}

/* www.goiot.id */

Untuk Konfigurasi Perangkat Keras MQTT, disini

Untuk mengetahui aturan dasar agar bisa terhubung dengan MQTT, disini

Upload Program

Board dan Port terkonfigurasi seperti ini :

Konfigurasi Board dan Port
Klik tombol Upload

Math Random MQTT

Persiapkan Komponen

  • NodeMCU ESP8266

/*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

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];
long randomNumber; // variabel yang akan dikirim

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();

  mqtt.setServer(broker, 1883);
  delay(10);
}

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();
  
  randomNumber = random(20); // random number from 0 to 19
  sprintf(msg, "%i", randomNumber); // convert integer ke char
  mqtt.publish("v2/projectID anda/device anda/direct/tag anda", msg); // silahkan diisi
  Serial.println(msg);
  delay(1000);
}

/* www.goiot.id */

Last updated

Was this helpful?