1. Trang chủ
  2. » Giáo án - Bài giảng

EBOOK ARDUINO a z IOT 13 12

47 75 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 47
Dung lượng 14,89 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Internet of Things (IoT) Mạng lưới vạn vật kết nối Internet là một kịch bản của thế giới, khi mà mỗi đồ vật, con người được cung cấp một định danh của riêng mình, và tất cả có khả năng truyền tải, trao đổi thông tin, dữ liệu qua một mạng duy nhất mà không cần đến sự tương tác trực tiếp giữa người với người, hay người với máy tính. IoT đã phát triển từ sự hội tụ của công nghệ không dây, công nghệ vi cơ điện tử và Internet. Nói đơn giản là một tập hợp các thiết bị có khả năng kết nối với nhau, với Internet và với thế giới bên ngoài để thực hiện một công việc nào đó. ( Wikipedia). Hiểu đơn giản, IoT có thể khiến mọi vật giờ đây có thể giao tiếp với nhau dễ dàng hơn và ưu điểm lớn nhất của “Thông minh” là khả năng phòng ngừa và cảnh báo tại bất kì đâu.

Trang 1

IOT ( Internet Of Things )

I Khái ni m Internet Of Things ( IOT) là gì? ệ

1. Khái niệm IOT

Internet of Things (IoT) - Mạng lưới vạn vật kết nối Internet là một kịch bản của thế giới, khi mà mỗi đồ vật, con người được cung cấp một định danh của riêng mình, và tất cả có khả năng truyền tải, trao đổi thông tin, dữ liệu qua một mạng duy nhất mà không cần đến sự tương tác trực tiếp giữa người với người, hay người với máy tính IoT đã phát triển từ sự hội tụ của công nghệ không dây, công nghệ vi

cơ điện tử và Internet Nói đơn giản là một tập hợp các thiết bị có khả năng kết nối với nhau, với Internet và với thế giới bên ngoài để thực hiện một công việc nào

đó ( Wikipedia).

Hiểu đơn giản, IoT có thể khiến mọi vật giờ đây có thể giao tiếp với nhau dễ dàng hơn và ưu điểm lớn nhất của “Thông minh” là khả năng phòng ngừa và cảnh báo tại bất kì đâu.

2. Những ứng dụng thực tế trong cuộc sống

Những ứng dụng của IoT vào các lĩnh vực trong đời sống là vô cùng phong phú và

đa dạng Chúng ta sẽ cùng điểm qua một số ứng dụng điển hình của IoT:

• Smart Home - Theo thống kê, smart home là ứng dụng liên quan đến IoT được tìm kiếm nhiều nhất trên Google Smart Home là 1 ngôi nhà với rất nhiều tính năng tự động như bật máy điều không khí khi bạn sắp về tới nhà, tắt đèn ngay khi bạn rời khỏi nhà, mở khóa khi người thân trong gia đình đang ở cửa nhà, mở garage khi bạn lái xe đi làm về … còn rất nhiều những tính năng giúp nâng cao chất lượng cuộc sống khi sử dụng smart home.

Trang 2

• Vật dụng mang theo trên người - Có thể kể đến một số thiết bị như Dashbon Mask, đây là 1 chiếc smart headphone giúp bạn vừa có thể nghe nhạc với âm thanh có độ trung thực cao vừa có thể xem phim HD với máy chiếu ảo , hoặc AMPL SmartBag ba lô có pin dự phòng có thể sạc điện cho các thiết bị di động, kể cả máy tính.

3. ESP8266 dòng chip được sử dụng phổ biến nhất hiện nay trong IOT.

ESP8266 là dòng chip tích hợp Wi-Fi 2.4Ghz có thể lập trình được, rẻ tiền được sản xuất bởi một công ty bán dẫn Trung Quốc: Espressif Systems Được phát hành đầu tiên vào tháng 8 năm 2014, đóng gói đưa ra thị trường dạng

Mô dun ESP-01, được sản xuất bởi bên thứ 3: AI-Thinker Có khả năng kết nối Internet qua mạng Wi-Fi một cách nhanh chóng và sử dụng rất ít linh kiện đi kèm Với giá cả có thể nói là rất rẻ so với tính năng và khả năng ESP8266 có thể làm được ESP8266 có một cộng đồng các nhà phát triển trên thế giới rất lớn, cung cấp nhiều Module lập trình mã nguồn mở giúp nhiều người có thể tiếp cận và xây dựng ứng dụng rất nhanh Hiện nay tất cả các dòng chip ESP8266 trên thị trường đều mang nhãn ESP8266EX, là phiên bản nâng cấp của ESP8266

Trang 3

4. Module và Board phát triển của ESP8266.

ESP8266 cần một số linh kiện nữa mới có thể hoạt động, trong đó phần khó nhất

là Anten Đòi hỏi phải được sản xuất, kiểm tra với các thiết bị hiện đại Do đó, trên thị trường xuất hiện nhiều Module và Board mạch phát triển đảm đương hết để người dùng đơn giản nhất trong việc phát triển ứng dụng Một số Module và Board phát triển phổ biến:

Hiện nay phiên bản sử dụng phổ biến nhất là ESP8266 12E.

Trang 4

5. Giới thiệu về module ESP 12E( NodeMCU V1).

NodeMCU v1.0 Lua - ESP8266 ESP12E

Sơ đồ chân của ESP12E

NodeMCU V1.0 được phát triển dựa trên Chip WiFi ESP8266EX bên trong Module ESP-12E dễ dàng kết nối WiFi với một vài thao tác Board còn tích hợp IC CP2102, giúp dễ dàng giao tiếp với máy tính thông qua Micro USB để thao tác với board Và có sẳn nút nhấn, led để tiện qua quá trình học, nghiên cứu.

Với kích thước nhỏ gọn, linh hoạt board dễ dàng liên kết với các thiết bị ngoại vi

để tạo thành project, sản phẩm mẫu một cách nhanh chóng.

Thông số kỹ thuật:

• WiFi: 2.4 GHz hỗ trợ chuẩn 802.11 b/g/n

• Điện áp hoạt động: 3.3V

• Điện áp vào: 5V thông qua cổng USB

• Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/PWM/I2C/One-wire, trừ chân D0)

• Số chân Analog Input: 1 (điện áp vào tối đa 3.3V)

Trang 5

• Bộ nhớ Flash: 4MB

• Giao tiếp: Cable Micro USB

• Tích hợp giao thức TCP/IP

• Lập trình trên các ngôn ngữ: C/C++, Micropython, NodeMCU - Lua

6. Lập trình ESP 12E bằng Arduino IDE.

Gi i thi u v ESP826612E: ớ ệ ề

Để bắt đầu với những dự án Wifi các bạn cần ESP8266 với giá thành rẻ, và dễ dàng sửdụng Đặc biệt ESP8266 12E có thể được lập trình bằng Arduino IDE Trước khi bắt đầunhững chuỗi dự án với ESP8266, ở bài viết này, mình sẽ chia sẻ cách cài đặt Arduino IDE

để nạp code cho ESP8266

mạch nạp

Cài đặt phần mềm arduino IDE và thư viện cho esp8266.

Sau khi tải phần mềm Arduino IDE, các bạn tiến hành cài đặt như bình thường và

mở chương trình lên Và các bạn nhớ cài driver cho nó nhé.( file driver có sẵn trong file cài).

Trang 6

Để tiến hành cài đặt thư viện và chức năng nạp code cho IDE các bạn làm như sau:

Vào File→ Preferences, vào textbox Additional Board Manager URLs thêm đường

link sau vào

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Click OK để chấp nhận

Trang 7

Tiếp theo vào ToolBoardBoards Manager

Đợi một lát để chương trình tìm kiếm Ta kéo xuống và click vào ESP8266 by ESP8266 Community, click vào Install Chờ phần mềm tự động download và cài

đặt.

Trang 8

H ướ ng d n n p ch ẫ ạ ươ ng trình cho ESP8266 12E:

Kết nối mudule ESP8266 -12E vào máy tính Vào Tool→Board→NodeMCU 1.0, chọn

cổng COM tương ứng với module tương ứng

Chọn chế độ nạp Arduino as ISP và chọn cổng COM cho đúng nhé.Vậy là ta đã có môi

trường lập trình cho esp8266 rất thân thiện

Sau khi kết nối ESP8266 với máy tính, các bạn có thể test code ESP8266 ở đây:

Trang 9

Code ở dưới test led trên board esp8266 12E ở chân 13 (D7 ) sáng tắt trong vòng 1 giây.

void setup() {

pinMode(LED_BUILTIN, OUTPUT);

}

void loop() {

digitalWrite(LED_BUILTIN, HIGH); // bật led sáng 1 giây

delay(1000); // wait for a second

digitalWrite(LED_BUILTIN, LOW); // tắt led 1 giây

delay(1000); // wait for a second

Trang 10

1 L p trình đi u khi n ESP8266 12E b ng Arduino IDE ậ ề ể ằ

Gi i thi u v ESP826612E: ớ ệ ề

Để bắt đầu với những dự án Wifi các bạn cần ESP8266 với giá thành rẻ, và dễ dàng sửdụng Đặc biệt, ESP8266 ( ở phần này tôi sử dụng loại V12E) có thể được lập trình bằngArduino IDE Trước khi bắt đầu những chuỗi dự án hay ho với ESP8266, ở bài viết này,mình sẽ chia sẻ cách cài đặt Arduino IDE để nạp code cho ESP8266

• 1 x ESP8266 V12 hoặc V12E đã tích hợp sẵn mạch nạp ( Trong ví bài viết này tôi

sử dụng ESP8266-V12E)

Cài đặt phần mềm arduino IDE và thư viện cho esp8266.

Sau khi tải phần mềm Arduino IDE, các bạn tiến hành cài đặt như bình thường và mở chương trình lên

Trang 11

Để tiến hành cài đặt thư viện và chức năng nạp code cho IDE các bạn làm như sau:

Vào File→ Preferences, vào textbox Additional Board Manager URLs thêm đường

link sau vào

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Click OK để chấp nhận

Tiếp theo vào ToolBoardBoards Manager

Trang 12

Đợi một lát để chương trình tìm kiếm Ta kéo xuống và click vào ESP8266 by ESP8266 Community, click vào Install Chờ phần mềm tự động download và cài

đặt.

Trang 13

H ướ ng d n n p ch ẫ ạ ươ ng trình cho ESP8266 12E:

Kết nối mudule ESP8266 -12E vào máy tính Vào Tool→Board→NodeMCU 1.0, chọn

cổng COM tương ứng với module tương ứng

Chọn chế độ nạp Arduino as ISP và chọn cổng COM cho đúng nhé.Vậy là ta đã có môi

trường lập trình cho esp8266 rất thân thiện

Sau khi kết nối ESP8266 với máy tính, các bạn có thể test code ESP8266 ở đây:

Trang 14

Code ở dưới test led trên board esp8266 12E ở chân 13 (D7 ) sáng tắt trong vòng 1 giây.

void setup() {

pinMode(LED_BUILTIN, OUTPUT);

}

void loop() {

digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)

delay(1000); // wait for a second

digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW

delay(1000); // wait for a second

Trang 15

• 1 led.

• 1 điện trở 220 Ohm.

Lắp mạch:

• Chân ( + ) của led được nối chân D3 ( tương ứng với chân số GPIO0 )

• Chân ( ) của led được nối chân GND của ESP.

digitalWrite(0, HIGH); // turn the LED on (HIGH is the voltage level)

delay(1000); // wait for a second

digitalWrite(0, LOW); // turn the LED off by making the voltage LOW

delay(1000); // wait for a second

}

thực tế:

Trang 16

3 B t t t led b ng nút nh n ( không l u tr ng thái) ậ ắ ằ ấ ư ạ

• Chân ( + ) của led được nối chân D0 ( tương ứng với chân số GPIO16 )

• Chân ( ) của led được nối chân GND của ESP.

• Chân D3 ( chân GPIO0 ) được nối với nút nhấn như hình dưới.

Lập trình:

int ledPin = 16; // LED connected to digital pin 16 ( D0)

int btnPin = 0; // BUTTON connected to digital pin 0 ( D3)

//int ledState = LOW;

Trang 17

void setup()

{

pinMode(ledPin, OUTPUT); // sets the digital pin as output

pinMode(btnPin, INPUT); // sets the digital pin as input

Trang 18

• Chân ( + ) của led được nối chân D0 ( tương ứng với chân số GPIO16 )

• Chân ( ) của led được nối chân GND của ESP.

• Chân D3 ( chân GPIO0 ) được nối với nút nhấn như hình dưới.

Lập trình:

//khai báo biến int nutnhan

nghĩa chân

button ( D3 )

int led = 16,t=0; // khai báo led và biến,

16 ( GIPO16) (tuong ung D0)

int status1;// biến lưu các trạng thái nút nhấn

// viết hàm chống dội

boolean chong_doi()// int char float ngoại trừ void

{

int sta =!digitalRead(nutnhan); // đọc trạng thái nút nhấn

return sta;// khi co nhan nut la true

Trang 20

5 Đi u khi n relay b ng Esp8266 V_12E ề ể ằ

void setup() {

// initialize digital pin 13 as an output.

pinMode(13, OUTPUT);// chân điều khiển relay là chân GIPO13 ( D7)

}

// the loop function runs over and over again forever

void loop() {

digitalWrite(13, HIGH); // turn the RELAY on

delay(5000); // wait for 5 second

digitalWrite(13, LOW); // turn the RELAY off

delay(2000); // wait for 2 second

Trang 21

Lưu ý: khi ra làm mô hình thực tế nên có nguồn cấp riêng cho module relay.

6 Hi n th lên màn hình LCD b ng ESP8266 12E ể ị ằ

Trang 22

lcd.init(); // initialize the lcd

// Print a message to the LCD.

Trang 23

7 Đ c giá tr c m bi n nhi t đ LM35 và g i lên thingspeak ọ ị ả ế ệ ộ ử

Cảm biến nhiệt độ LM35 là một loại cảm biến tương tự rất hay được ứng dụng

trong các ứng dụng đo nhiệt độ thời gian thực ( nhưng vẫn còn sai số lớn) Với kích thước nhỏ và giá thành rẻ là một trong những ưu điểm của nó Vì đây là cảm biến tương tự (analog sensor) nên ta có thể dễ dàng đọc được giá trị của nó bằng hàm analogRead()

Nhiệt độ được xác định bằng cách đo hiệu điện thế ngõ ra của LM35

→ Đơn vị nhiệt độ: °C

→ Nhiệt độ thay đổi tuyến tính: 10mV/°C

Độ chính xác thực tế: 1/4°C ở nhiệt độ phòng và 3/4°C ngoài khoảng 2°C tới 150°Ccông suất tiêu thụ là 60uA

Cảm biến LM35 hoạt động bằng cách cho ra một giá trị hiệu điện thế nhất định tạichân Vout (chân giữa) ứng với mỗi mức nhiệt độ

Trang 24

Cài đặt trên thingspeak:

sau khi đăng kí một tài khoản miễn phí ta được giao diện như sau và ta chọn New

Channel

Sau đó ta thực hiện các thao tác sau:

Và ta được giao diện như hình sau:

Và mã Writekey ta lấy từ đây:

Trang 25

Lập trình:

#include <ESP8266WiFi.h>

String apiWritekey = "VXMLHG2R6DDPUCNT"; // mã Writekey ta thay vào đây

const char* ssid = "coffee "; // tên wifi nhà bạn

const char* password = "coffee" ; // wifi pasword

const char* server = "api.thingspeak.com";

float resolution=3.3/1023; // 3.3 is the supply volt & 1023 is max analog read value

Trang 26

String tsData = apiWritekey;

Sau khi upload code ta mở cổng serial monitor và thingspeak:

và được kết quả như sau

Trang 27

8 Đi u khi n thi t b đi n b ng webserver ề ể ế ị ệ ằ

Trang 28

Lập trình:

#include <ESP8266WiFi.h>

const char* ssid = "Truong Phi";

const char* password = "01695304802";

// Print the IP address

Serial.print("Use this URL to connect: ");

Trang 29

// Check if a client has connected

WiFiClient client = server.available();

// Read the first line of the request

String request = client.readStringUntil('\r');

Trang 30

client.println("<meta name='apple-mobile-web-app-capable' content='yes' />");

client.println("<meta name='apple-mobile-web-app-status-bar-style' translucent' />");

client.println("<a href=\"/light1on\"\"><button>Turn On </button></a>");

client.println("<a href=\"/light1off\"\"><button>Turn Off </button></a><br />"); client.println("</center>");

client.println("<br><br>");

client.println("<center>");

client.println("Device 2");

client.println("<a href=\"/light2on\"\"><button>Turn On </button></a>");

client.println("<a href=\"/light2off\"\"><button>Turn Off </button></a><br />"); client.println("</center>");

client.println("<br><br>");

client.println("<center>");

client.println("Device 3");

client.println("<a href=\"/light3on\"\"><button>Turn On </button></a>");

client.println("<a href=\"/light3off\"\"><button>Turn Off </button></a><br />"); client.println("</center>");

client.println("<br><br>");

client.println("<center>");

client.println("Device 4");

Trang 31

client.println("<a href=\"/light4on\"\"><button>Turn On </button></a>");

client.println("<a href=\"/light4off\"\"><button>Turn Off </button></a><br />"); client.println("</center>");

Trang 32

Sau khi upload chương trình thành công ta mở cổng serial monitor lên:

Từ hình trên ta được địa chỉ ip để truy cập webserver để điều khiển thiết bị điện là :

192.168.100.11 địa chỉ sẽ khác đi tùy vào router wifi nữa nhé.

Trang 34

• 1 Điện thoại sử dụng hệ điều hành android.

• Dây test board

• 4 Led ( các bạn có thể thay thế bằng relay để đóng ngắt thiết bị điện)

• 4 Trở 220 Ohm

L p m ch: ắ ạ

Code ch ươ ng trình:

#include <ESP8266WiFi.h>

const char* ssid = "Truong Phi"; //Identifier is the name of your WIFI

const char* password = "xxxxxxxxx"; // Your Wifi password

Trang 35

// Print the IP address

Serial.print("Use this URL to connect: ");

Serial.print("http://");

Serial.print(WiFi.localIP()); //Gets the WiFi shield's IP address and Print the IP

address of serial monitor

Serial.println("/");

}

Trang 39

Cài đ t app cho đi n tho i ( Andriod): ặ ệ ạ

Viết app mit inverter (có file kèm theo), các bạn nên đăng kí một tài khoản trên web app mit invetor

Hình ảnh thực tế:

Ta mở màn hình serial monitor nên và ta có được kết quả giống như dưới sau mỗi lần ta bật tắt

Trang 40

• 1 Điện thoại sử dụng hệ điều hành android hoặc ISO.

• Dây test board

• 1 Led ( các bạn có thể thay thế bằng relay để đóng ngắt thiết bị điện)

• 1 Trở 220 Ohm

Trang 41

Lắp mạch:

• Chân ( + ) của led được nối chân D3 ( tương ứng với chân số GPIO0 )

• Chân ( ) của led được nối chân GND của ESP.

Trang 42

Và ta được code như sau:

#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>

char auth[] = "YourAuthToken"; // token sau khi đăng kí email trên blynk và lập project thì mã token này sẽ được gửi vào email đăng kí.

char ssid[] = "YourNetworkName"; // tên wifi

char pass[] = "YourPassword"; // nhập mật khẩu của wifi cần kết nối

Ngày đăng: 06/06/2020, 06:21

TỪ KHÓA LIÊN QUAN

w