Chủ Nhật, 5 tháng 11, 2023

GỬI DỮ LIỆU TỪ ARDUINO MEGA SANG MCU ESP8266 VÀ TRUYỀN THÔNG LÊN THINGSPEAK

GỬI DỮ LIỆU TỪ ARDUINO MEGA SANG MCU ESP8266 VÀ TRUYỀN THÔNG LÊN THINGSPEAK

  1. CHUẨN BỊ 

  • Arduino Mega

  • MCU ESP8266

  •  Dây nối 

  • Tài khoản thingspeak 

  • Ngoài ra cần một số cảm biến,  random

Sơ đồ chân ESP8266 - Nên sử dụng chân nào

Arduino Mega 2560 Rev3 — Arduino Online Shop


CHƯƠNG TRÌNH GỬI DỮ LIỆU TỪ ARDUINO MEGA SANG MCU

void setup() {

  Serial.begin(9600);

  Serial1.begin(9600); // TX1, RX1 Serial1

}

void loop() {

int camBien_1 = random(0,50);

int camBien_2 = random(0,60);

// Gửi dữ liệu sang Mcu

Serial1.print('*');

Serial1.print(camBien_1);

Serial1.print(camBien_2);

Serial1.println('#');

// Hiển thị lên cổng Com Serial 0

Serial.print('*');

Serial.print(camBien_1);

Serial.print(camBien_2);

Serial.println('#');

delay(2000);

}


CHƯƠNG TRÌNH GỬI NHẬN DỮ LIỆU TỪ ARDUINO MEGA

TRUYỀN THÔNG LÊN THINGSPEAK

#include "ThingSpeak.h"

#include <ESP8266WiFi.h>


//------- WI-FI details ----------//

char ssid[] = "CHL-C"; //SSID here // có thể thay đổi wifi phù hợp

char pass[] = "1a2b3c4d"; // Passowrd here

//--------------------------------//


//----------- Channel details ----------------//

unsigned long Channel_ID = 1538662; // Your Channel ID

const char * myWriteAPIKey = "5WE7SROY4M8VP9ZO"; //Your write API key

//-------------------------------------------//


const int Field_Number_1 = 1;

const int Field_Number_2 = 2;

String value = "";

int value_1 = 0, value_2 = 0;

int x, y;

WiFiClient  client;


void setup()

{

  Serial.begin(9600);

  WiFi.mode(WIFI_STA);

  ThingSpeak.begin(client);

  internet(); // chương trình con

}


void loop()

{

  internet();

  if (Serial.available() > 0)

  {

    delay(100);

    while (Serial.available() > 0)

    {

      value = Serial.readString();

      if (value[0] == '*')  //   *1234#

      {

        if (value[] == '#')

        {

          value_1 = ((value[1] - 0x30) * 10 + (value[2] - 0x30)); 

          value_2 = ((value[3] - 0x30) * 10 + (value[4] - 0x30));

         Serial.println(value_1); // in ra màn hình Mcu

         Serial.println(value_2);// in ra màn hình Mcu

         delay(500);

        }

      }

    }

  }

  upload();

}


void internet()

{

  if (WiFi.status() != WL_CONNECTED)

  {

    while (WiFi.status() != WL_CONNECTED)

    {

      WiFi.begin(ssid, pass);

      delay(2000);

    }

  }

}


void upload()

{

  ThingSpeak.writeField(Channel_ID, Field_Number_1, value_1, myWriteAPIKey);


  ThingSpeak.writeField(Channel_ID, Field_Number_2, value_2, myWriteAPIKey);

  delay(2000);

  value = "";

}

CÁCH TẠO TÀI KHOẢN THINGSPEAK

Trong phần này chúng ta cùng nhau tìm hiểu 1 cloud service khá phổ biến trong các cộng đồng IoT là ThingSpeak. Đây là một cloud service cho phép người dùng dễ dàng gửi dữ liệu và cung cấp các giao diện đồ họa hiển thị dữ liệu thông qua giao thức HTTP.

Bạn sẽ được hướng dẫn cách tạo 1 tài khoản ThingSpeak và 1 data channel và dùng Blocky để đưa data lên channel này thông qua giao thức HTTP.

Bước 1: Tạo Tài Khoản ThingSpeak

Bạn truy cập vào địa chỉ https://thingspeak.com và chọn Sign Up để đăng ký một tài khoản miễn phí. Sau khi điền đầy đủ các thông tin yêu cầu, bạn sẽ nhận được email yêu cầu xác thực tài khoản email.

https://yolostem.gitbooks.io/blocky/content/assets/thingspeak_signup.png

Sau khi xác thực, bạn sẽ có thể login vào và thấy được các thông tin về tài khoản của mình.

Bước 2: Tạo Data Channel

Sau khi login, bạn cần tạo một data channel để lưu trữ dữ liệu. Trong My Channels, bạn chọn New Channel và điền các thông tin cần thiết.

Ở đây mình tạo 1 channel để chứa các dữ liệu từ cảm biến thu được trong phòng ngủ của mình với Field 1 là temperature và Field 2 là humidity:

https://yolostem.gitbooks.io/blocky/content/assets/thingspeak_new_channel.png

Bước 3: Lấy URL cần thiết để upload dữ liệu

Để upload hay lấy dữ liệu về bạn cần biết URL để truy cập. Bạn mở channel mới tạo, tìm đến tab API Keys và sẽ thấy được các URL để get hay upload data:

https://yolostem.gitbooks.io/blocky/content/assets/thingspeak_apikeys.png

Bước 4: Upload dữ liệu từ Blocky

Bạn upload chương trình sau vào Blocky

[Hình code]

Sau khi Blocky chạy và bắt đầu upload dữ liệu lên ThingSpeak, bạn có thể xem các dữ liệu này trong channel, tab Private View

Bạn có thể tìm hiểu thêm các tính năng khác của ThingSpeak như phân tích và vẽ đồ thị cho dữ liệu của mình.https://yolostem.gitbooks.io/blocky/content/assets/thingspeak_view_data.png


Không có nhận xét nào:

Đăng nhận xét