Mình đã làm bể cá thông minh như thế nào - Giới thiệu phần cứng - Wemos (phần 2)
This post hasn't been updated for 3 years
Xin chào các bạn! Tiếp tục với chủ đề Làm bể cá thông minh, hôm nay mình xin giới thiệu với các bạn các khái niệm liên quan đến phần cứng. Các lưu ý khi sử dụng bất kì em vi xử lý nào. Bên cạnh đó mình sẽ giới thiệu với các bạn về Esp8266 (cụ thể ở đây là Wemos) và cách chinh phục em nó.
Bài viết sẽ có khá nhiều kiến thức liên quan đến phần cứng. Mình sẽ cố gắng giải thích thật rõ cho các bạn dễ hiểu nhất và học sinh lớp 3 cũng có thể hiểu được.
I. Một số vật dụng cần thiết
1. Chân nối
Khi 2 dây muốn dẫn điện với nhau thì ta cần phải nối chúng với nhau (thật dễ hiểu phải không :v ). Thực tế thì các dây sẽ được hàn với nhau. Và hàn vào mạch như thế này Tuy nhiên chúng ta là các developer (các nhà phát triển) không thể hàn cứng như vậy được. Hôm nay ta muốn nối vào thiết bị này nhưng hôm sau ta lại nối vào thiết bị khác. Như vậy ta cần phải có các giắc nối để nối 2 đầu thiết bị vào với nhau. Chúng ta thường sử dụng dây nối như này đây: Và có 2 loại đầu dây cần lưu ý, khi đi mua bạn chỉ cần nói đúng tên là người bán sẽ bán cho bạn đúng thứ mình cần:
- Chân đực: là loại dây có 1 đầu nhọn bằng kim loại nhô ra ngoài
- Chân cái: là loại dây có lỗ để chân đực luồn vào
Quá dễ hiểu và dễ nhớ phải không nào. Cái thì có lỗ, đực thì có cái dài nhô ra. Như vậy khi đi mua dây cắm chỉ cần nói là "Cho em mua Dây nối Đực đực" hoặc Đực cái,... là người bán hàng hiểu và bán đúng dây cho bạn.
2. Điện trở
Thông thường các bạn hay dùng module
(mạch tích hợp sẵn) nên rất ít khi phải động đến mạch điện. Nhưng chúng ta cần phải hiểu nó một chút. Biết đồ biết vận dụng thì lắp mạch không còn là nỗi ám ảnh nữa.
Bài này không phải là bài viết cho dân điện tử nên mình chỉ giới thiệu điện trở thôi còn rất nhiều loại nữa như là tụ điện, cuộn cảm, transistor, diode,... các bạn tự tìm đọc nhé.
Điện trở là gì? Điện trở là cái này:
Cái tên của nó đã nói lên tất cả. Điện trở là cái để cản trở dòng điện. Vâng, đúng vậy. Mỗi khi ta muốn lắp 1 cái thiết bị nào đó mà bản thân nó không thể cản trở dòng điện thì ta cần phải lắp thêm điện trở (ví dụ cái đèn led chẳng hạn). Hoặc khi ta muốn cản trở dòng điện đi qua một thiết bị thì lắp thêm cái điện trở thôi (ví dụ như cấp điện cho cực E của transistor chẳng hạn).
II. Những điều cần biết khi sử dụng một thiết bị phần cứng
Như các bạn đã biết, khi làm một việc gì đó mà ta không hiểu rõ về nó thì ta sẽ rất hay nhầm lẫn và lúng túng. Điều đó sẽ dẫn đến một quyết định sai lầm hoặc kết quả không hay và có thể dẫn tới một hậu quả gì đó.
Nếu như khi ta lập trình phần mềm thì ta cho vào host test. Sai thì sửa, hỏng thì đập đi làm lại. Thì phần cứng lại khác (Thiết bị phần cứng mình nói ở đây là các mạch phát triển, các kit dành cho developer). Khi làm việc với phần cứng là ta sẽ thao tác trực tiếp với thiết bị. Và thiết bị rất dễ bị hỏng nếu ta không biết sử dụng. Chỉ cần cắm sai 1 chân, cho vào nhầm 1 lỗ thì có thể dẫn đến hỏng một phần hoặc hỏng luôn cái mạch. Mục này mình xin giới thiệu các loại chân cắm có thể có trong một thiết bị phần cứng.
Thông thường, khi làm việc với board nào đó thì bạn phải tra datasheet của board đó để biết được vị trí các chân, các giới hạn cho phép, các cổng kết nối, các thông tin bộ nhớ,...
Cũng có thể nhà sản xuất sẽ in chức năng chính của từng chân lên ngay trên mạch. Ta cần phải chú ý điều đó để đỡ cắm nhầm. Thông thường ta phải quan tâm các loại chân sau:
1. Chân nguồn
Có 2 loại nguồn ra và nguồn vào. Thông thường ta sẽ cấp nguồn vào ở cổng usb (vừa để nạp code vừa để cấp nguồn luôn). Nhưng đôi khi các bạn cần cắm nguồn ngoài thì cần phải chú ý đến các loại chân và các đặc điểm sau:
GND
đây là chân cực kì quan trọng. Nó thường có khá nhiều vì rất nhiều thiết bị khác cắm vào sẽ sử dụng nó. Nó là chân chung duy nhất cho tất cả các kết nối. Bạn có thể kết nối bất kì chân GND nào vào với nhau mà không lo bị hỏng. Chân này giống như mốc 0 của tọa độ, mực nước biển trong việc đo chiều cao. Nó là mức 0 để so sánh giá trị của các chân vào ra (IO). Tên gọi thông thường là cực âm, cực -, đất, Ground5V
,3.3V
đây là các chân nguồn ra. Có nghĩa là bạn có thể lấy nguồn từ đây để sử dụng cho các thiết bị khác. Bạn không được cấp nguồn qua các chân này.VIN
,VCC
đây là các chân nguồn vào. Bạn có thể cấp cực dương của nguồn vào đây để thiết bị có thể hoạt động từ nguồn ngoài. Cơ mà, nguồn thì sẽ có cực âm nữa. Vậy cực âm nối vào chỗ nào? Đây là một câu hỏi có phần hài hước mà những người mới bắt đầu có thể đặt ra. Bạn mình cũng đã từng hỏi mình câu này. )) Mình xin trả lời với các bạn luôn. Hãy cứ thẳng tay mà cắm vào chân GND. Bất kì chân nối GND nào cũng được.
2. Chân tín hiệu
Một mạch kit phát triển sẽ có rất nhiều chân tín hiệu. Mỗi chân sẽ đảm nhận 1 hoặc nhiều nhiệm vụ khác nhau. Bạn hãy tra datasheet của thiết bị đó để biết thêm. Hoặc là tìm kiếm google với từ khóa Pinout <thiết bị> là nó sẽ ra đầy đủ cho bạn. Hãy nhớ để đúng chiều và tra đúng tác dụng của chân cắm đó. Khi nào thật chắc chắn thì mình mới cắm dây nối các thiết bị với nhau. Cuối cùng là cấp điện, cấp nguồn.
Đối với tín hiệu thông thường thì sẽ có 2 loại là digital
và analog
, tương ứng với nó cũng sẽ có 2 loại chân digital
và analog
.
- Chân
digital
chỉ có 2 mức 0, 1 tương ứng với mức điện áp 0V và 5V (trên thực tế sẽ khác: mức 0 có thể từ 0V đến 1.5V, mức 1 có thể là mức > 1.5V. Đối với từng mạch sẽ có mức điện áp cao nhất có thể đưa vào chân IO. Nếu quá mức này thì chân IO đó sẽ bị hỏng hoặc hỏng cả thiết bị). Nhiệm vụ thông thường của nó là được dùng để nhận tín hiệu như nút bấm chẳng hạn và điều khiển bóng đèn tắt/bật. Kí hiệu thông thường: GPIOx, Dx (x là số hiệu của chân). - Chân
analog
có thể đọc được các mức điện áp khác nhau phân ra từng mức. Kiểu như là chia đoạn từ 0 đến 5V ra thành 1024 đoạn nhỏ, chẳng hạn vậy. Mỗi đoạn nhỏ là 1 mức. Khi điện áp nằm trong đoạn nhỏ đó thì sẽ tương ứng với một số được quy định trong khi lập trình (với ví dụ trên thì sẽ có 1024 mức giá trị đo được). Sau đó dựa vào các thông số đo được và qua 1 số phép tính sẽ cho ra kết quả đo của cảm biến. Thông thường các chânanalog
sẽ được dùng để đọc giá trị cảm biến. Tùy từng mạch mới có loại chân này thôi. Ví dụ: mạchraspberry pi 3
sẽkhông có
chân analog, mạcharduino
thì sẽ có khá nhiều, mạchWemos
mình sắp giới thiệu có duy nhất 1 chân analog. Kí hiệu thông thường: Ax (x là số hiệu của chân).
Chuẩn kết nối cơ bản Có rất nhiều chuẩn kết nối để kết nối 2 hoặc nhiều phần cứng với nhau. Mình sẽ kể tên các chuẩn hay dùng nhất:
-
IIC
,I2C
: kết nối 2 dâySCL
vàSDA
bạn hãy nối như hình vẽ. Tất cả các dây SCL nối với nhau và tất cả các dây SDA nối với nhau. Và ta cần phải nối 2 trở kéo SCL và SDA lên 5V (giá trị trở phải lớn: 10K, 20K) Một số mạch sẽ tự có điện trở này. Bạn hãy đọc datasheet để xem có phải lắp không nhé. -
UART
: Chuẩn kết nối này sẽ có 2 dây tín hiệu:RX
vàTX
.RX
là nhận,TX
là truyền. Và 2 thiết bị muốn truyền nhận được thì phải nốiRX
của thiết bị này vớiTX
của thiết bị kia, và cần thêm dây nối 2 chânGND
của 2 thiết bị với nhau nữa. Ngoài ra còn phải set Baud rate cho 2 thiết bị là giống nhau. Chỉ cần đáp ứng đúng các yêu cầu như vậy là thiết bị đã hoạt động trơn tru.
Giới thiệu Wemos
Sau đây mình giới thiệu với các bạn về Wemos.
Cấu hình phần cứng
- Operating Voltage 3.3V
- Clock Speed: 80MHz/160MHz
- Flash: 4M bytes
- Length: 34.2mm
- Width: 25.6mm
- Weight: 10g
- A Micro USB connection
- WiFi 2.4 GHz, 802.11 b/g/n, support WPA/WPA2
IO PIN
- Digital I/O Pins: 11
- Analog Input Pins: 1(Max input: 3.2V)
- All of the IO pins have interrupt/pwm/I2C/one-wire support except D0.
- All of the IO pins run at 3.3V.
Lập trình phần mềm
- Sử dụng Arduino IDE để lập trình và upload code.
- Ngôn ngữ lập trình C/C++ quen thuộc. Bạn có thể dùng sublime để lập trình cho thuận tiện rồi dùng Arduino IDE để upload code cũng được. )))
Bài viết đã khá dài. Mình xin dừng tại đây. Nếu có khó khăn gì hãy để lại comment ở bên dưới. Mình sẽ giải đáp tận tình. Chúc các bạn thành công trên con đường chinh phục các thiết bị! Mình sẽ quay lại với bài viết tiếp theo. Nói về việc sử dụng Wemos. Các bạn hãy đón đọc nhé.
Các bạn có thể xem lại phần 1 của mình tại link dưới đây: https://viblo.asia/p/minh-da-lam-be-ca-thong-minh-nhu-the-nao-phan-1-jvEla6nx5kw
All Rights Reserved