Loading...
OUR BLOG

Hantar data ke ThingSpeak menggunakan Ultrasonic Sensor dan NodeMCU ESP8266

Hi BDx-ian!

 

Tutorial ini menunjukkan cara nak hantar data jarak dari ultrasonic sensor ke ThingSpeak menggunakan NodeMCU ESP8266. Sebelum ThingSpeak disambungkan ke board, kita akan belajar cara nak setup akaun ThingSpeak terlebih dahulu.

 

Apa itu ThingSpeak?

ThingSpeak ialah IoT Cloud Platform yang membolehkan user mengumpul dan menyimpan data di dalam cloud dan mencipta aplikasi IoT. Ia juga membenarkan user untuk visualize dan analyze live data stream di dalam cloud. User juga boleh menghantar data ke ThingSpeak, membina visual data dalam bentuk graf dan menghantar notifikasi amaran. ThingSpeak juga  menyediakan API untuk mengakses data yang berada dalam cloud tersebut.

ThingSpeakjuga terkenal di kalangan inovator dan industri untuk membuat prototaip dan projek IoT.  

 

ThingSpeak

 

 

1. Cipta akaun

Pergi ke ThingSpeak -> Tekan Create

 

Isikan maklumat akaun anda -> Tekan Continue -> Verify Email

 

Pilih lokasi web site

 

 

Setelah akaun anda berjaya create, tekan Ok

 

2. Cipta channel

 

Pergi ke Channels -> Tekan New Channel

 

 

Isikan maklumat -> Enable Field -> Save Channel

 

 

Anda boleh enable Field mengikut berapa banyak data sensor yang anda ingin hantar. Jadi dalam tutorial ini menggunakan satu Field bertujuan untuk tunjuk data jarak yang dihantar dari ultrasonic sensor ke ThingSpeak.

 

3. Setup Field & Chart

 

Isikan maklumat anda seperti di bawah-> Tekan Save

 

 

 

 

API key

 

Untuk mendapatkan API key, pergi ke API keys -> Copy API key -> Paste pada code

 

Channel ID

Anda juga perlu copy Channel ID dan paste pada code. 

 

 

 

Arduino IDE

Install library ThingSpeak

 

Pergi ke Sketch -> Include library -> Manage Libraries -> Buat carian “ThingSpeak by MathWorks” -> Tekan Install.

 

 

Komponen

 

Komponen yang diperlukan

 

 

Litar

 

Ultrasonic sensor

 

Code

#include <ESP8266WiFi.h>

#include "ThingSpeak.h"

#include "WiFiClient.h"

 

const char* ssid = "Nama Wifi anda";    

const char* password = "Password wifi anda";   

 

WiFiClient  client;

 

unsigned long myChannelNumber = XXXXX;  //Channel ID

const char * myWriteAPIKey = "API KEY";

 

// Timer variables

unsigned long lastTime = 0;

 

// Variable to hold distance readings

int distance;

long duration;

 

#define triggerPin 13

#define echoPin    15

 

 

void setup() {

  Serial.begin(115200);  //Initialize serial

  pinMode(triggerPin, OUTPUT);

  pinMode(echoPin, INPUT);

   

  WiFi.mode(WIFI_STA);  

      

  ThingSpeak.begin(client);  // Initialize ThingSpeak

}

 

void loop() {

  if (millis() - lastTime > 15000) {

    

    

    // Connect or reconnect to WiFi

    if(WiFi.status() != WL_CONNECTED){

    Serial.print("Attempting to connect");

    while(WiFi.status() != WL_CONNECTED){

      WiFi.begin(ssid, password);  // Connect to WPA/WPA2 network. Change this line if using open or WEP network

      Serial.print(".");

      delay(5000);     

    } 

    Serial.println("\nConnected.");

  }

  

    getDistance();

    

    //Tukarkan 1 kepada nombor field yang anda nak publish data

    //Untuk tutorial ini, kita akan menulis nombor untuk field 1

    int x = ThingSpeak.writeField(myChannelNumber, 1, distance, myWriteAPIKey);

 

    if(x == 200){

      Serial.println("Channel update successful.");

    }

    else{

      Serial.println("Problem updating channel. HTTP error code " + String(x));

    }

    lastTime = millis();

  }

}

 

void getDistance(){

  digitalWrite(triggerPin, HIGH);

  delayMicroseconds(10);

  digitalWrite(triggerPin, LOW);

  duration = pulseIn(echoPin, HIGH);

  distance = (duration/2)/29.1;

 

  Serial.print(distance);

  Serial.println(" cm");

}

 

Peringatan

Jangan lupa tukarkan maklumat di bawah.

const char* ssid = "Nama Wifi anda";    

const char* password = "Password wifi anda";   

 

unsigned long myChannelNumber = XXXXX;  //Channel ID

const char * myWriteAPIKey = "API KEY";


Output

Setelah code diupload, output pada Serial Monitor dan Thingspeak menunjukkan data jarak.

 

Output Serial Monitor

 

 

Output ThingSpeak

 

 

Jika anda suka dengan perkongsian tutorial dalam blog kami ni, jangan lupa untuk follow Facebook dan Instagram kami, kat situ ada bermacam info dan update terkini yang akan kami kongsikan kepada anda. Itu sahaja untuk tutorial kami. Stay update dan selamat mencuba!

Unsure Whether You Need Our Help?

Have you got an awesome new idea or project that you want to talk about? We're here to talk you through it. Flick us an email or give us a call to get started.