GỬI DỮ LIỆU TỪ ARDUINO MEGA SANG MCU ESP8266 VÀ TRUYỀN THÔNG LÊN THINGSPEAK
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
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
VÀ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.
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:
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:
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.
Không có nhận xét nào:
Đăng nhận xét