Energia – Bài 10: Thingspeak với ESP8266 và TIVA C

Mình xin giới thiệu cách để gửi dữ liệu lên thingspeak với TIVA C và ESP8266. Trong các bài viết trước mình có chia sẻ cách lấy dữ liệu với TIVA nhưng đây chỉ là cách cục bộ, tức là chỉ quan sát được tại chỗ, không thể giám sát và theo dõi từ xa được. Nhân tiện kết hợp được TIVA C và ESP8266 thì mình đã có trợ thủ đắc lực có thể giúp đỡ gửi dữ liệu lên trên mây thông qua internet, nhờ đó mình có thể giám sát được dữ liệu ở bất kỳ đâu.

Để dễ hình dung bạn có thể xem hình sau

Ta có thể thấy tất cả mọi thông tin về nhiệt độ, độ ẩm, ánh sáng,… sẽ được TIVA C thu thập, sau đó sẽ gửi lên internet thông qua Wifi ở đây là modul ESP8266, những thông tin được gửi lên sẽ được lưu lại trên một server, server có sẵn được chọn là thingspeak. Từ điện thoại và máy tính ở bất kỳ đâu thì ta cũng có thể truy cập vào thingspeak để quan sát được các thông số mà TIVA C đã gửi lên.

Chuẩn bị

Phần cứng

  • TIVA C Launchpad
  • Dây nối
  • ESP8266 phiên bản từ v1 tới v12 (mình dùng v1) dùng firmware AT command

Phần mềm

  • Energia IDE

Tạo tài khoản thingspeak

Bên thingspeak hơi làm khó chúng ta một chút là phải có tài khoản matwork, do đó mình cứ làm một tài khoản bên đó rồi đăng nhập sang bên này nhé.

Sau khi tạo xong tài khoản và đăng nhập thành công thì chọn New Channel để có kênh mới nhận dữ liệu

 

Chúng ta có tên, mô tả, và Field 1 – 8 là trường để nhận dữ liệu, thingspeak giới hạn tối đa 8 trường, do đó nếu muốn sử dụng hơn thì chắc phải chọn thằng khác hoặc tự dựng server, nhưng các bạn yên tâm, với 8 trường này thì đủ cho chúng ta có thể thử nghiệm rồi.

Tick chọn public nếu bạn muốn cho mọi người xem được kênh của mình

Phần quan trọng nhất còn lại là lấy API Key để Read và Write dữ liệu lên, bạn chọn vào thẻ API Keys, sau đó copy lại 2 mục Key chỗ Write/Read API Key đê sử dụng trong lập trình

Gửi dữ liệu bằng tay

Mình sẽ thử gửi dữ liệu bằng tay, gõ các đoạn mã gửi cho ESP8266 trước thông qua phần mềm sscom để kiểm tra xem có kết nối và đưa được dữ liệu lên thingspeak không ?

Ta sẽ thử gửi lệnh theo bảng mô tả dưới dây

Lệnh ATPhản hồiMô tả
AT+CWMODE =1OKCài đặt chế độ station
AT+CWJAP = "ten_wifi", "pass"OKKết nối với mạng wifi
AT+CIPMUX = 1OKCài đặt chế độ đa kết nối
AT+CIFSROKHiển thị IP
AT+CIPSTART=1,"TCP","184.106.153.149",80OKKết nối tới thingspeak địa chỉ 184.106.153.149, port 80 thông qua TCP
AT+CIPSEND=1,44>Gửi gói tin TCP/IP với 1 là id, 44 là độ dài gói tin
GET /update?key=B549R51BLLQxxxx&field1=67SEND OK
OK
Cập nhật thông số field1 với key Write của thingspeak

Kết quả ta sẽ thấy 1 điểm trên biểu đồ và phần update last entry sẽ là thời gian gần nhất

Gửi dữ liệu tự động

Tạm thời yên tâm là kết nối server, gửi dữ liệu thủ công lên đã ổn, giờ tranh thủ lập trình thêm một chút để TIVA C làm nhiệm vụ này thay cho chúng ta

Lại lục chút kiến thức bài cũ ra một chút, thử lại kết nối giữa TIVA C và ESP8266 xem có ổn không, nếu gửi AT nhận OK thì bắt đầu bước tiếp theo thôi

Bước 1: thực hiện lập trình kết nối server thingspeak, cách nối dây các bạn xem trong code luôn nhé

Chương trình

Kết quả

Bước 2: Thực hiện gửi dữ liệu lên field1 của thingspeak

Chương trình

Lưu ý:

Bạn cần thay đúng API thingspeak, tên và mật khẩu wifi của bạn vào code

Nếu không kết nối được server thì bạn có thể reset lại kit TIVA

Cần phải đóng kết nối lại sau khi gửi dữ liệu xong bằng AT+CIPCLOSE=1

Kết quả

Ta thấy log bên dưới sẽ khá giống với những gì làm bằng tay thông qua sscom, thế là cũng tạm ổn rồi

Tiếp theo xem thử trên thingspeak xem thế nào

Giá trị mới là 23 đã được cập nhật lên thingspeak, tuyệt vời ông mặt trời 😀

Bạn có thể xem demo thingspeak của hocarm tại

https://thingspeak.com/channels/222057

Ngoài ra ta có thể dùng trang check độ dài online nếu muốn kiểm tra về độ dài của chuỗi

Tạm kết

Vậy là mình đã giới thiệu sơ bộ về cách để gửi dữ liệu lên thingspeak với TIVA C và ESP8266 ở mức độ đơn giản nhất. Nếu không có TIVA C thì bạn có thể chọn cách lập trình trực tiếp gửi dữ liệu từ ESP8266 lên thinkspeak luôn, bài này mình xin phép trình bày ở một bài viết sau.

 

 

6
Leave a Reply

avatar
2 Comment threads
4 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
huunghiasc Recent comment authors

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

  Subscribe  
newest oldest most voted
Notify of
huunghia
Guest
huunghia

OK
AT+CWJAP=”39A2″,”244466666″

WIFI DISCONNECT
WIFI CONNECTED
WIFI GOT IP

OK
AT+CIPMUX=1

OK
AT+CIFSR

+CIFSR:STAIP,”111.100.46.97″
+CIFSR:STAMAC,”78:5f:6b:65:79:3d”

OK
AT+CIPSTART=1,”TCP”,”184.106.153.149″,80

ERROR
AT+CIPSEND=1,44

link is not valid

ERROR
Failed
AT+CIPCLOSE=1

UNLINK

ERROR
bạn ơi,mình hỏi với,sao làm giống như bạn mà vẫn ko kết nối thingspeak được,có gì cần lưu ý nữa không v

huunghia
Guest
huunghia

link ở đây là link của thingspeak hả bạn