ĐẠI HỌC BÁCH KHOA NỘI
TRƯỜNG ĐIỆN- ĐIỆN T
BÁO CÁO THỰC TẬP KỸ THUẬT
Đề tài: Tìm hiểu và ứng dụng ESP32 trong IOT
Sinh viên thực hiện : Nguyễn Nam Phong
MSSV : 20214038
Lớp : ET1-02 K66
Giảng viên hướng dẫn : PGS.TS Trần Quang Vinh
Hà Nội, 8/2024
1
M CC L
A, LỜI NÓI ĐẦU....................................................................................................2
B, N I DUNG .........................................................................................................3
Chương 1: Giới thi u v ti p nh đơn vị ế n .............................................................3
1.1: Gi i thi u v VNPT Technology....................................................................3
1.2: Điều l t ch c và hoạt động ..........................................................................3
1.2.1: L ch s hình thành và phát trin ..............................................................3
1.2.2: Lĩnh vực kinh doanh ...............................................................................3
1.3: Cơ cu t chc ...............................................................................................4
1.4: S m nh và t m nhìn .....................................................................................5
Chươ ng 2: N i dung th c t p ................................................................................6
2.1: Gi i thi u v ESP32 và Platform IO ..............................................................6
2.1.1: Gi i thi u v ESP32 ................................................................................6
2.1.2: Gi i thi u v Platform IO ........................................................................6
2.2: L p trình Wifi Station, Smart config wifi ESP32 ...........................................7
2.2.1: L p trình WiFi Station ............................................................................7
2.2.2: L p trình Smart Config Wifi ESP32 ........................................................7
2.3: L p trình HTTP Client Write, Read Data gi lên ThingSpeak ........................8
2.4: L p trình MQTT x lý chui JSON ............................................................. 10
2.4.1: Gi i thi u v MQTT ............................................................................. 10
2.4.2: Gi i thi u v Hivemq Broker ................................................................ 10
2.4.3: L p trình MQTT cho ESP32 ................................................................. 11
2.5: L p trình OTA, tạo Server Local lưu Firmware Update ............................... 13
2.6: S dụng tính năng Flash Encytion để mã hóa d liu Flash .......................... 16
Chương 3: Nhận xét và đánh giá ......................................................................... 17
3.1: Nh n xét ...................................................................................................... 17
3.2: Đánh giá ca công ty.................................................................................... 17
C, K T LU N ...................................................................................................... 18
2
A, LỜI NÓI ĐẦU
Hi n nay, ESP32 là m ột vi điều khi n m nh m , tích h p Wi-Fi và Bluetooth,
giúp d dàng k t n i không dây trong các d án IoT. V i kh t ki ế năng tiế m năng
lượng và h tr nhi u giao th c truy n thông, ESP32 được ng dng r ng rãi trong
các h th ng nhà thông minh, giám sát t xa và các thi t b c m bi n. S ế ế linh ho t
ca nó khi n ESP32 tr thành l a ch ng cho vi c phát tri n các ng d ng ế ọn lý tưở
IoT sáng t o.
Qua th i gian th c t p t i công ty VNPT Technology, em i ti p đã có cơ h ế
cn và làm quen v i l p trình nhúng thông qua vi c s d ng ESP32, m u ột vi điề
khin m nh m được ng d ng r ng rãi trong các thi t b IoT tài này không ch ế . Đề
giúp em c ng c ki n th c lý thuy c mà còn rèn luy n k ế ết đã họ năng thực hành, t
đó nâng cao khả năng giả i quyết vấn đề trong lĩnh vự thc tế c công ngh .
Em xin cảm ơn công ty VNPT Technology cùng các trách đã tạanh, ch ph o
mi điều ki n thu n l i, cùng v i s hướng d n nhi t tình, t m em th c t p trong để
thi gian qua, giúp chúng em có một môi trường làm vi c t t, có tác phong, k lu t
và chuyên nghi p.
Em xin g i l i c ảm ơn đến Ban lãnh đạo Trường Điện Điện t - Trường
Đại hc Bách Khoa Hà N u kiội đã tạo điề ện cho chúng em được tham gia khóa thc
tp k thu t này. Qua khoa th c tập này, đã cung cấp cho sinh viên chúng em nh ng
kiến thc b ích v c chuyên ngành và k sau này có th tham gia năng mềm để
vào công vi c m t cách ch ng và d độ dàng hơn.
Em cũng ảm ơn thầ Vinh đã tạ ọi điề i đểxin c y Trn Quang o m u kin thun l
chúng em hoàn thi n t t th c t p. ốt đợ
3
B, N I DUNG
Chương 1: Giới thi u v ti p nh đơn vị ế n
1.1 Gi i thi u v VNPT Technology
Tên đầy đủ: Công ty C ph n Công ngh Công nghi n thông ệp Bưu chính Viễ
Tên giao d ch qu c t : Vietnam Post and Telecommunication Industry Technology ế
JSC
Đị a ch liên h:
- Tr s chính: Khu Công nghi p công ngh cao I, Khu Công ngh cao Hòa L c,
H B ng, Huy n Th ch Th t, Hà N i
- -24 3748 0922 - Fax: 84-24 3784 0925 Văn phòng: 84
- Website: https://www.vnpt-technology.vn
1.2 u l t ch c và ho ng Điề ạt độ
1.2.1 L ch s hình thành và phát tri n
- VNPT Technology c thành l p ngày 6/1/2011 b i Tđượ ập đoàn Bưu chính Viễn
thông Vi t Nam (VNPT) và 2 c đông khác là VNPost và Pacifab, với vốn điều l 500
t đồng, đượ ạt độc t chc ho ng theo hình thc công ty c phn.
- Ngay sau khi thành l p, VNPT Technology mua l i ph n v n góp c a Alcatel Lucent
ti công ty Liên doanh ANSV và ph n v n góp c a Siemens t i công ty Liên doanh
TELEQ, chuy i 2 công ty này tr thành công ty thành viên c a VNPT ển đổ
Technology.
- K thế a ngu n l c kinh nghi m tích lũy sau gần 20 năm của các công ty liên
doanh ANSV TELEQ; s h u ti p t c phát tri ng ế ển đội ngũ chuyên gia trưở
thành t nh ững ngày đầu ca thi k s hóa mng vin thông, cùng v i h t ng k
thuật được tích lũy tiếp tc phát trin t các liên doanh; VNPT Technology ngày
càng kh nh vẳng đị th vai trò c a m tiên phong trong nghiên c u phát ế ột đơn vị
trin và s n xu t các thi t b ế điện t , vi n thông và công ngh thông tin, x ứng đáng là
đơn vị ủa VNPT trong lĩnh vự ch lc c c Công ngh , Công nghi n ệp Bưu chính, Viễ
thông, Công ngh thông tin, Truy n thông và Công nghi p N i dung s ..
1.2.2 Lĩnh vực kinh doanh
- VNPT Technology hoạt động trong các lĩnh vực: Nghiên c u phát tri n, S n xu t
Công ngh Công nghi p; Kinh doanh qu c t i & D ch v k thu t; phát ế; Thương mạ
trin và kinh doanh các n n t ng.
4
- Nghiên c u phát tri n s n ph m công ngh & ODM: Là ho ng c t lõi c a Công ạt độ
ty nh m t o ra nh ng giá tr t tri th c, t o ra tài s n trí tu và hàng hóa d ch v v i
hàm lượng công ngh cao. Nghiên cu phát trin các công ngh l õi trong 5 lĩnh
vực: Băng rộng c ng không dây, IoT, công ngh 5G và Chuy i s định, băng rộ ển đổ
nh ng/Thim t o ra nh ng s n ph m toàn di n t Ph n c ết b, các n n t ng cho t i
các ng d ụng người dùng. Đồ ời công ty đang đẩng th y mnh mng kinh doanh các
sn ph m thi t k t k ế ế ết qu R&D.
- S ế n xu t thi t b công ngh công nghi p & EMS: Các s n ph m t o ra t quá trình
nghiên c u và phát tri c s n xu t hàng lo t qua ho ển, đượ ạt động s n xu t công nghi p
điệ n t đáp ứng nhu c u th trường trong và ngoài nước. Bên cạnh đó dịch v sn xut
điệ n t - c mEMS đượ rng giúp Công ty tn dng được năng lc và h tng sn có
đồng thi tham gia sâu rộng hơn vào chuỗi cung ng toàn cu.
- Tích h p h th ng m ng vi n thông, Công ngh thông tin: V i g ần 30 năm kinh
nghim tích h p các h th ng l ng Vi n như mạ ễn thông, Công ty xác định tr thành
đơn vị dẫn đầu trong lĩnh vực tích h p h th ng m ng Vi n thông và Công ngh thông
tin. Ho ng tích h p h th ng toàn di n t Phân tích, Xây d ng gi i pháp t ng th , ạt độ
Thiết k , Triế ển khai và Đào tạo chuyn giao.
- i, d ch v k thu c qu c t : Ho ng kinh doanh Thương mạ ật ICT trong ế ạt độ
phát tri n th trường nh m cung c p các s n ph m ph m công ngh , các gi i pháp tích
hp, d ch v k thu c qu c t vật ICT trong nướ ế i các m ng th ng bao g trườ m:
Kinh doanh phát tri n th ng truy n th ng/các nhà m ng; Kinh doanh phát tri n trườ
th trường Doanh nghi p và khách hàng cá nhân; và Kinh doanh phát tri n th ng trườ
quc t . ế
1.3 u tCơ cấ ch c
- VNPT Technology là đơn vị ch l c c a T ập đoàn VNPT trong lĩnh vực Công ngh ,
Công nghi n tệp Điệ Vi n thông, Công ngh thông tin, Truy n thông và Công nghi p
ni dung s .
- Hi n t i VNPT Technology có ba công ty thành viên, ho ng theo hình h p ạt độ
nht ngu n l c:
5
Hình 1.3.1: Cơ cấu t ch c VNPT Techonology
1.4 S m nh và tm nhìn
- S m nh c a VNPT Technology t o ra c s n ph m công ngh ch ng cao ất lượ
mang thương hiệu Vit phc v mng viễn thông CNTT cũng như đông đo cng
đồng.
- VNPT Technology vi vai trò doanh nghi p ch l c c a T ập đoàn VNPT trong lĩnh
vc công ngh , công nghi n t vi n thông, công ngh thông tin, truy n thông và ệp điệ
công nghi p n i dung s có t m nhìn tr thành doanh nghi p công ngh cao hàng đầu
ti Vi t Nam ti n t i tr ế thành m t trong nh ng công ty công ngh u khu hàng đầ
vc.
6
Chương 2: Nội dung th c t p
2.1 Gi i thi u v ESP32 và Platform IO
2.1.1 Gi i thi u v ESP32
ESP32 một vi điều khi n giá r ng th p h ẻ, năng lượ tr WiFi dual-mode
Bluetooth (t m d ch: Bluetooth ch kép). Dòng ESP32 s d ng b vi x ế độ
Tensilica Xtensa LX6 c hai bi n th lõi kép bao g m các công t c ế lõi đơn,
antenna tích hp, RF balun, b khu i công su t, b khu i thu nhi u th p, ếch đạ ếch đạ
b l c và module qu ng. ản lý năng lượ
ESP32 được chế to và phát tri n b i Espressif Systems, m t công ty Trung Qu c có
tr s t ng H c s n xu t b i ại Thượ ải, đượ TSMC b ng cách s d ng công ngh
40 nm. ESP32 là s n ph m k th a t ế vi điều khin ESP8266.
th nói ESP32 s nâng c p hoàn h o c a ESP8266, v i ESP8266 phù h p v i
các d án nh và ti t ki m chi phí. ESP32 l i phù h p v ế i các d án ph c t ạp hơn, tốc
độ x lý cao hơn và tích hợp nhiu ngo i vi m nh m hơn.
ESP8266 là 17 chân GPIO, ADC độ phân gi i 10 bit, 8 kênh PWM m ềm trong khi đó
ESP 32 t phân gi i 12-bit, 16 kênh PWM ới 30/36 chân GPIO, 18 kênh ADC đ
mm, Touch Sensor, Hall Effect Sensor, Ethernet MAC Interface, C m bi n nhi ế ệt độ
được tích hp sn.
V b nh ESP32 thêm 4MB External Flash 520KB SRAM (static random
access memory) trong đó 8 KB RAM RTC tốc độ ốc độ cao 8 KB RAM RTC t thp
(dùng ch DeepSleep). ế độ
ESP32 h tr Bluetooth 4.2 BLE (Bluetooth Low Energy). Vi c h tr c bluetooth
khiến ESP32 th i các thi t b tương tác vớ ế như bàn p ột, đihím, chu n thoi khi
mà không có wifi.
2.1.2 Gi i thi u v Platform IO
PlatformIO là m ng phát tri n tích h p (IDE) dành cho các d án nhúng và ột môi trườ
IoT, h tr nhi ều vi điều khin và b ng m ạch như Arduino, ESP32, STM32, và nhiều
hơn nữa. Nó cung c p các công c m nh m như quản lý thư viện, g li, và tích h p
vi các trình biên dch khác nhau.
PlatformIO có th c s d i d ng m đượ ụng dướ t plugin cho Visual Studio Code, giúp
lp trình viên d dàng phát tri n, ki m th , tri n khai ngu n trên các thi t b ế
nhúng.
Để s dng PlatformIO, ta cần cài đặt như một plugin trong Visual Studio Code,
sau đó tạo ho c m d án m i v i c ấu trúc thư mục t động t o ra. Ta có th thêm các
thư viện cn thiết thông qua quản lý thư viện, biên dch và ti mã ngun trc tiếp lên
vi điều khin .
7
2.2 Lp trình Wifi Station, Smart config wifi ESP32
2.2.1 Lp trình WiFi Station
WiFi Station là ch mà ESP32 k t n i v i mế độ ế t mng WiFi hi t client, ện có như mộ
tương tự như cách điệ n tho i ho c máy tính k t n i v i m ế ng WiFi. Trong ch ế độ này,
bn c n cung c p thông tin SSID m t kh u c a m ng WiFi mà ESP32 s k t n i. ế
Đây cách thông thường và ph bi k t n i ESP32 v i internet ho c m ng n i ến để ế
b.
Hình 2.2.1: Thi t l p WiFi Station cho ESP32 ế
2.2.2 Lp trình Smart Config Wifi ESP32
Smart Config là một tính năng đặc bit cho phép c u hình WiFi c a ESP32 mà không
cn cung c p tr c ti p thông tin SSID m t kh u trong l ế ập trình. Thay vào đó,
bn s d ng m t ng d ng trên thi t b g i thông tin m ng WiFi (SSID và ế di động để
mt kh n ESP32 thông qua sóng WiFi. ẩu) đế
Cơ chế ạt động cơ bả ủa Smart Config như sau: ho n c
- Thi t b ng: ng d ng trên thi t b ng g i thông tin SSID m t ế di độ ế di độ
khu qua các gói UDP.
- ESP32: Nh n các gói UDP này, gi i mã thông tin và k t n i v i m ng WiFi. ế
Smart Config h ng h p: ữu ích trong các trườ
- Không mu n mã hóa c ng thông tin m ng WiFi vào mã lập trình, để d dàng
thay đổi thông tin mng khi c n.
- T o s thu n ti ện cho người dùng cu i khi h th c u hình thi t b qua m t ế
ng d ng. ụng di độ
8
Để s d ng Smart Config trên ESP32, b n có th s d ụng thư viện WiFi ca Arduino
hoc ESP-IDF vi các hàm h tr Smart Config. th dùng app Esp Touch để
điề u ch nh thông tin WIFI kết n i.
Hình 2.2.2: Thi t l p Smart Config trên ESP32 ế
2.3 L p trình HTTP Client Write, Read Data gi lên ThingSpeak
ThingSpeak mt d ch v IoT (Internet of Things) cho phép b n thu th , ập, lưu trữ
phân tích hi n th d li u t các c m bi n thi t b thông qua giao th c HTTP. ế ế
Khi l p trình m ột HTTP Client đ gi nhn d liu t ThingSpeak, b n có th s
dụng các phương pháp HTTP như GET (đọc d liu) và POST (g i d li ệu) để tương
tác v i kênh c a mình.
Các bước để to Server Thingspeak
a) Bước 1: T o tài kho ản/Đăng nhập ThingSpeak
b) Bước 2: T o Channels ThingSpeak
9
Hình 2.3.1: T o Channel Thingspeak
c) L y Channel ID, Write API Key và Read API keys
Hình 2.3.2: L y Channel ID, Write API Key và Read API keys
Để lp trình HTTP client gcho ESP32 để ửi và đọc d liu t ThingSpeak, b n có th
s d n HTTPClient có s n trong Arduino IDE. ụng thư việ
Cú pháp URL để gi d liu:
https://api.thingspeak.com/update?api_key=WRITE_API_KEY&field1=value1&fiel
d2=value2...
Cú pháp URL để đọc d liu mi nht:
https://api.thingspeak.com/channels/CHANNEL_ID/feeds/last.json?api_key=READ
_API_KEY
Cú p c l ch s d li u: háp URL để đọ
10
https://api.thingspeak.com/channels/CHANNEL_ID/feeds.json?api_key=READ_AP
I_KEY&results=NUM_RESULTS
Hình 2.3.3: K t qu ế thu được trên ThingSpeak
2.4 L p trình MQTT x lý chui JSON
2.4.1 Gi i thi u v MQTT
MQTT (Message Queuing Telemetry Transport) giao th c truy ền thông điệp
(message) theo hình publish/subscribe (cung c c s d ng cho ấp / thbao), đượ
các thi t b IoT vế ới băng thông thấp, độ năng đượ tin cy cao kh c s dng trong
mạng lưới không nh. Nó d a trên m t Broker (t m d môi giổn đị ịch là “Máy chủ ới”)
“nhẹ” (khá ít xử lý) và đư c thiết kế có tính m (tức là không đặc trưng cho ứng d ng
c th nào), đơn giả cài đn và d t.
Tn t i ba m ức độ tin cy cho vic truyn d liu (QoS: Quality of service)
+ QoS 0: Broker/client s g i d li ệu đúng mộ ửi đượt ln, quá trình g c xác nhn bi
ch giao thc TCP/IP.
+ QoS 1: Broker/client s g i d li u v i ít nh t m t l n xác nh n t đầu kia, nghĩa là
có th nhi n xác nh ều hơn 1 lầ ận đã nhận được d liu.
+ QoS 2: Broker/client đảm bo khi g i d li u thì phía nh n ch nh ận được đúng một
ln, quá trình này ph i tr ải qua 4 bước bt tay.
2.4.2 Gii thi u v Hivemq Broker
HiveMQ là mt n n t ng MQTT broker hi u su ất cao được thi t kế ế để xhàng tri u
kết nối IoT đồ năng truyềng thi, cung cp kh n d liu tin cy và b o m t gi a các
thiết bng d ng.
HiveMQ Broker chia thành 2 lo i:
11
+ Public broker: S d ng c ng 1883, không có b o m ật, thường dùng để test ng d ng
hoc các s n ph n. ẩm đơn giả
+ Private broker: S d ng c ng 8883 và b o m t SSL/TLS. Ta có th s d ng trong
các s n ph ẩm thương mại.
Hình 2.4.1: Giao di n c a HiveMQ
2.4.3 Lp trình MQTT cho ESP32
Để lp trình ESP32 MQTT, ta s n pubsubclient dùng thư việ
Hình 2.4.2: K t n i v i Broker ế
12
Hình 2.4.3: Publish d li u lên MQTT
Mi khi có d li i trên broker, hàm callback s c g ệu thay đổ đượ i:
Hình 2.4.4: Subcrible d li u t MQTT
13
2.5 L p trình OTA, tạo Server Local lưu Firmware Update
FOTA (Firmware Over The Air) là thu t ng ch vi c n p firmware t xa mà không
cn s d ng m ch n p, ch c n có 1 k t n i không dây là có th s ế d c. FOTA ụng đượ
đượ c s dng rng rãi trong các sn ph m IOT.
Để th np firmware t xa cho ESP32 qua Internet. Chúng ta c n 1 máy ch lưu
gi. Khi c p nh t h th ng s c sau: tuân theo các bướ
+ Nhà phát tri n Upload firmware lên máy ch
+ ESP32 s g ọi 1 API lên server đó, truy vấn xem bn cp nht mi không. Vi c
hi này s được lp li liên t c có th 1 vài phút 1 l n ho ặc 1 vài ngày, tùy người phát
trin
+ N u nhế ận được thông tin thay đổi version, ESP32 s download firmware v thông
qua internet.
+ Kh ng l i v i firmware m i ởi độ
Hình 2.5.1: Thi t l p trên server ESP32 ế
Hình 2.5.2: Thi t l p giao diế n login
14
Hình 2.5.3: Thi t l p giao diế n upload
Để np Firmware vào ESP32, ta s d n Update vụng các thư việ i các hàm
Update.begin, Update.buf, Update.end
Hình 2.5.4: C p nh p firmware trên ESP32 (1)
15
Hình 2.5.5: C p nh p firmware trên ESP32 (2)
Hình 2.5.6: Giao di n c p nh t firmware
16
2.6 S dụng tính năng Flash Encytion để mã hóa d li u Flash
Flash Encryption là một tính năng bảo mt quan trọng đượ ụng trong các vi điềc s d u
khiển, đặc bi t là nh ững vi điều khi n c a Espressif (như ESP32). Tính năng này giúp
hóa d li trong b nh Flash, bao g m c firmware, nh ệu lưu trữ ằm ngăn chặn
vic truy xu t trái phép và b o v các ng d ng kh i b sao chép ho c t n công.
Để s d ụng tính năng Flash Encryption trên ESP32 nhằm mã hóa d li u Flash và b o
v Firmware, b n c n th c hi n m t s bước cơ bản.
a) Bước 1: Kích ho t Flash Encryption
Cu hình sdkconfig: B n c n c b ấu hình sdkconfig để ật tính năng Flash Encryption.
Trong thư mục d án, m file sdkconfig và tìm các mc sau:
CONFIG_FLASH_ENCRYPTION_ENABLED=y
CONFIG_FLASH_ENCRYPTION_MODE=y
b) Bước 2: T o Key Encryption
Khi t o Flash Encryption: B n c n kh i t o và l p trình khóa hóa cho Flash. S
dng công c i ESP-IDF. Ví d t o khóa l p trình chúng, espsecure đi kèm vớ ụ, để
bn có th ch y l nh:
espsecure.py gen_keypair flash_encryption_key.pem
Sau đó, lập trình khóa vào ESP32:
espsecure.py --keyfile flash_encryption_key.pem write_flash_encryption_key --port
/dev/ttyUSB0 --baud 115200
c) Bước 3: Xây dng và n p Firmware
Biên d ch Firmware: Biên d ch firmware c a b n b ng PlatformIO. L nh này th
thc hi n t terminal: pio run
Np Firmware vào ESP32: Sau khi biên d ch thành công, n p firmware vào ESP32
vi l nh: pio run --target upload
17
Chương 3: Nhận xét và đánh giá
3.1 Nh n xét
Trong su t quá trình th c t p t i tham ại Công ty VNPT Technology, em đã hộ
gia vào nhi u ho ng th c t , t c nhi u kinh nghi m quý báu cho ạt độ ế đó tích lũy đượ
bn thân. Nh ng công vi c giao t i phòng gi i pháp ph n m ệc đượ m không ch giúp
em c ng c ki n th c lý thuy t mà còn m r ng hi u bi t v ế ế ế các quy trình công vi c
thc tế, k năng giả ấn đề năng làm việi quyết v và kh c nhóm.
Những ưu điểm ni bt trong quá trình thc tp bao gm:
- Khám phá công ngh m i: Th c t p c n tìm hi u ập đã giúp em tiế sâu n về
nhng công ngh m ng làm quen, t r ng t m hi u ới mà trước đây em chưa từ đó mở
biết và kh o trong vi c áp d ng các gi i pháp công ngh . năng sáng tạ
- Rèn luy n kh năng làm việc độc lp: Trong su t quá trình th c t ập, em đã có cơ hội
t mình thc hi n nhi u nhi m v độ, t đó nâng cao khả năng tự qun ch ng
trong công vi c.
- ng làm vi c thân thi n và h tr n cho em Môi trườ ợ: VNPT Technology đã mang đế
một môi trườ ện, nơi các anh chịng làm vic thân thi đồng nghi p luôn s n sàng chia
s kinh nghi m h tr khi c n thi t, giúp em c m th y t ế tin hơn trong quá trình
hc h i và phát tri n.
3.2 Đánh giá ca công ty
VNPT Technology đã đánh giá cao sự n lc tiến b ca em trong sut quá trình
thc t p. Công ty nh n xét r ằng em đã thể hiện đưc s ch ng trong công vi c, kh độ
năng tiếp thu nhanh chóng các công ngh m i, luôn hoàn thành t t các nhi m v
được giao. Đồ ời, công ty cũng đánh giá cao tinh thầ năng m ng th n hp tác kh
vic nhóm c a em, góp ph n tích c c vào các d án c a phòng gi i pháp ph n m m.
18
C, K T LU N
Quá trình th c t p t i VNPT Technology v ới đề tài “Tìm hiểu ng dng
ESP32” đã mang lại cho em nhi u ki n th c và kinh nghi m th c t quý báu. T vi c ế ế
nghiên c u lý thuy n tri n khai các ng d ng th c t i ti p c n và ết đế ế, em đã có cơ hộ ế
làm quen v i các khía c nh khác nhau c a l p trình nhúng và Internet of Things (IoT).
Nhng ki n thế c này không ch giúp em c ng c n n t ng h c thu t còn m ra
những hướ ới trong lĩnh vựng phát trin m c công ngh .
Trong su t th i gian th c t c làm vi c trong m ập, em đã đượ ột môi trường
chuyên nghiệp, nơi mà các anh chị đồng nghip các thy luôn sn sàng h tr
và chia s kinh nghi ệm. Điều này đã giúp em không chỉ phát tri n v m t chuyên môn
còn nâng cao k năng mềm như giao tiếp, qun th i gian làm vi c nhóm.
Nhng bài học thu được t quá trình này s là hành trang quý giá giúp em t tin hơn
trong s nghi ệp tương lai.
Đề tài v ESP32 đã giúp em hiểu rõ hơn về tm quan tr ng c a công ngh IoT
trong cu c s ng hi i. T vi c k t n i thi t b , qu n lý d li n vi c xây d ng ện đạ ế ế ệu đế
các ng d ụng thông minh, em đã nhậ ức đượn th c rng ESP32 m t n n t ng m nh
m và linh ho t, kh ng nhi u yêu c u khác nhau trong các d án IoT. ng đáp
S thành công trong vi c tri n khai các ng d ng th c t t nh ế đề tài này đã khẳng đị
giá tr c a nh ng ki n th c. ế ức mà em đã học đượ
Em xin chân thành c u ki n cho em th c m ơn VNPT Technology đã tạo điề
hin quá trình thc t p này. S h tr và hướng d n t n tình t công ty, cùng v i môi
trường làm vi y chuyên nghiệc đầ ệp, đã giúp em hoàn thành đề tài mt cách tt nht.
Nhng kinh nghiệm em tích lũy đượ ại đây sc t nn tng vng chc cho con
đườ ng s nghip sau này.
Cu i cùng, em xin g i l i tri ân sâu s n t t c nh ng hành ắc đế ững ai đã đồ
h tr em trong su t th i gian th c t p. Quá trình này không ch giúp em trưởng thành
hơn về mt ki n th c kế năng còn định hình duy làm việc chuyên nghip,
góp ph n vào s phát tri ển cá nhân trong tương lai.

Preview text:

ĐẠI HỌC BÁCH KHOA HÀ NỘI
TRƯỜNG ĐIỆN- ĐIỆN TỬ
BÁO CÁO THỰC TẬP KỸ THUẬT
Đề tài: Tìm hiểu và ứng dụng ESP32 trong IOT
Sinh viên thực hiện : Nguyễn Nam Phong MSSV : 20214038 Lớp : ET1-02 K66
Giảng viên hướng dẫn : PGS.TS Trần Quang Vinh
Hà Nội, 8/2024
MC LC
A, LỜI NÓI ĐẦU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
B, NI DUNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Chương 1: Giới thiu v đơn vị tiếp nhn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
1.1: Giới thiệu về VNPT Technology. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2: Điều lệ tổ chức và hoạt động . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1: Lịch sử hình thành và phát triển . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2: Lĩnh vực kinh doanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
1.3: Cơ cấu tổ chức . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
1.4: Sứ mệnh và tầm nhìn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
Chương 2: Ni dung thc tp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1: Giới thiệu về ESP32 và Platform IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.1: Giới thiệu về ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.2: Giới thiệu vầ Platform IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2: Lập trình Wifi Station, Smart config wifi ESP32 . . . . . . . . . . . . . . . . . . . . . .7
2.2.1: Lập trình WiFi Station . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.2: Lập trình Smart Config Wifi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3: Lập trình HTTP Client Write, Read Data gửi lên ThingSpeak . . . . . . . . . . . . 8
2.4: Lập trình MQTT xử lý chuỗi JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4.1: Giới thiệu về MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4.2: Giới thiệu về Hivemq Broker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4.3: Lập trình MQTT cho ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5: Lập trình OTA, tạo Server Local lưu Firmware Update . . . . . . . . . . . . . . . . 13
2.6: Sử dụng tính năng Flash Encytion để mã hóa dữ liệu Flash . . . . . . . . . . . . . 16
Chương 3: Nhận xét và đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1: Nhận xét . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2: Đánh giá của công ty. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
C, KT LUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1
A, LỜI NÓI ĐẦU
Hiện nay, ESP32 là một vi điều khiển mạnh mẽ, tích hợp Wi-Fi và Bluetooth,
giúp dễ dàng kết nối không dây trong các dự án IoT. Với khả năng tiết kiệm năng
lượng và hỗ trợ nhiều giao thức truyền thông, ESP32 được ứng dụng rộng rãi trong
các hệ thống nhà thông minh, giám sát từ xa và các thiết bị cảm biến. Sự linh hoạt
của nó khiến ESP32 trở thành lựa chọn lý tưởng cho việc phát triển các ứng dụng IoT sáng tạo.
Qua thời gian thực tập tại công ty VNPT Technology, em đã có cơ hội tiếp
cận và làm quen với lập trình nhúng thông qua việc sử dụng ESP32, một vi điều
khiển mạnh mẽ được ứng dụng rộng rãi trong các thiết bị IoT. Đề tài này không chỉ
giúp em củng cố kiến thức lý thuyết đã học mà còn rèn luyện kỹ năng thực hành, từ
đó nâng cao khả năng giải quyết vấn đề thực tế trong lĩnh vực công nghệ.
Em xin cảm ơn công ty VNPT Technology cùng các anh, chị phụ trách đã tạo
mọi điều kiện thuận lợi, cùng với sự hướng dẫn nhiệt tình, tỉ mỉ để em thực tập trong
thời gian qua, giúp chúng em có một môi trường làm việc tốt, có tác phong, kỉ luật và chuyên nghiệp.
Em xin gửi lời cảm ơn đến Ban lãnh đạo Trường Điện – Điện tử - Trường
Đại học Bách Khoa Hà Nội đã tạo điều kiện cho chúng em được tham gia khóa thực
tập kỹ thuật này. Qua khoa thực tập này, đã cung cấp cho sinh viên chúng em những
kiến thức bổ ích về cả chuyên ngành và kỹ năng mềm để sau này có thể tham gia
vào công việc một cách chủ động và dễ dàng hơn.
Em cũng xin cảm ơn thầy Trần Quang Vinh đã tạo mọi điều kiện thuận lợi để
chúng em hoàn thiện tốt đợt thực tập. 2 B, NI DUNG
Chương 1: Giới thiu v đơn vị tiếp nhn
1.1 Gii thiu v VNPT Technology
Tên đầy đủ: Công ty Cổ phần Công nghệ Công nghiệp Bưu chính Viễn thông
Tên giao dịch quốc tế: Vietnam Post and Telecommunication Industry Technology JSC Địa chỉ liên hệ:
- Trụ sở chính: Khu Công nghiệp công nghệ cao I, Khu Công nghệ cao Hòa Lạc, Xã
Hạ Bằng, Huyện Thạch Thất, Hà Nội
- Văn phòng: 84-24 3748 0922 - Fax: 84-24 3784 0925
- Website: ht ps:/ www.vnpt-technology.vn
1.2 Điều l t chc và hoạt động
1.2.1 Lch s hình thành và phát trin
- VNPT Technology được thành lập ngày 6/1/2011 bởi Tập đoàn Bưu chính Viễn
thông Việt Nam (VNPT) và 2 cổ đông khác là VNPost và Pacifab, với vốn điều lệ 500
tỷ đồng, được tổ chức và hoạt động theo hình thức công ty cổ phần.
- Ngay sau khi thành lập, VNPT Technology mua lại phần vốn góp của Alcatel Lucent
tại công ty Liên doanh ANSV và phần vốn góp của Siemens tại công ty Liên doanh
TELEQ, chuyển đổi 2 công ty này trở thành công ty thành viên của VNPT Technology.
- Kế thừa nguồn lực và kinh nghiệm tích lũy sau gần 20 năm của các công ty liên
doanh ANSV và TELEQ; sở hữu và tiếp tục phát triển đội ngũ chuyên gia trưởng
thành từ những ngày đầu của thời kỳ số hóa mạng viễn thông, cùng với hạ tầng kỹ
thuật được tích lũy và tiếp tục phát triển từ các liên doanh; VNPT Technology ngày
càng khẳng định vị thế và vai trò của một đơn vị tiên phong trong nghiên cứu phát
triển và sản xuất các thiết bị điện tử, viễn thông và công nghệ thông tin, xứng đáng là
đơn vị chủ lực của VNPT trong lĩnh vực Công nghệ, Công nghiệp Bưu chính, Viễn
thông, Công nghệ thông tin, Truyền thông và Công nghiệp Nội dung số.
1.2.2 Lĩnh vực kinh doanh
- VNPT Technology hoạt động trong các lĩnh vực: Nghiên cứu phát triển, Sản xuất
Công nghệ Công nghiệp; Kinh doanh quốc tế; Thương mại & Dịch vụ kỹ thuật; phát
triển và kinh doanh các nền tảng. 3
- Nghiên cứu phát triển sản phẩm công nghệ & ODM: Là hoạt động cốt lõi của Công
ty nhằm tạo ra những giá trị từ tri thức, tạo ra tài sản trí tuệ và hàng hóa dịch vụ với
hàm lượng công nghệ cao. Nghiên cứu và phát triển các công nghệ lõi trong 5 lĩnh
vực: Băng rộng cố định, băng rộng không dây, IoT, công nghệ 5G và Chuyển đổi số
nhằm tạo ra những sản phẩm toàn diện từ Phần cứng/Thiết bị, các nền tảng cho tới
các ứng dụng người dùng. Đồng thời công ty đang đẩy mạnh mảng kinh doanh các
sản phẩm thiết kế từ kết quả R&D.
- Sản xuất thiết bị công nghệ công nghiệp & EMS: Các sản phẩm tạo ra từ quá trình
nghiên cứu và phát triển, được sản xuất hàng loạt qua hoạt động sản xuất công nghiệp
điện tử đáp ứng nhu cầu thị trường trong và ngoài nước. Bên cạnh đó dịch vụ sản xuất
điện tử - EMS được mở rộng giúp Công ty tận dụng được năng lực và hạ tầng sẵn có
đồng thời tham gia sâu rộng hơn vào chuỗi cung ứng toàn cầu.
- Tích hợp hệ thống mạng viễn thông, Công nghệ thông tin: Với gần 30 năm kinh
nghiệm tích hợp các hệ thống lớn như mạng Viễn thông, Công ty xác định trở thành
đơn vị dẫn đầu trong lĩnh vực tích hợp hệ thống mạng Viễn thông và Công nghệ thông
tin. Hoạt động tích hợp hệ thống toàn diện từ Phân tích, Xây dựng giải pháp tổng thể,
Thiết kế, Triển khai và Đào tạo chuyển giao.
- Thương mại, dịch vụ kỹ thuật ICT trong nước và quốc tế: Hoạt động kinh doanh
phát triển thị trường nhằm cung cấp các sản phẩm phẩm công nghệ, các giải pháp tích
hợp, dịch vụ kỹ thuật ICT trong nước và quốc tế với các mảng thị trường bao gồm:
Kinh doanh phát triển thị trường truyền thống/các nhà mạng; Kinh doanh phát triển
thị trường Doanh nghiệp và khách hàng cá nhân; và Kinh doanh phát triển thị trường quốc tế.
1.3 Cơ cấu t chc
- VNPT Technology là đơn vị chủ lực của Tập đoàn VNPT trong lĩnh vực Công nghệ,
Công nghiệp Điện tử Viễn thông, Công nghệ thông tin, Truyền thông và Công nghiệp nội dung số.
- Hiện tại VNPT Technology có ba công ty thành viên, hoạt động theo mô hình hợp nhất nguồn lực: 4
Hình 1.3.1: Cơ cấu tổ chức VNPT Techonology
1.4 S mnh và tm nhìn
- Sứ mệnh của VNPT Technology là tạo ra các sản phẩm công nghệ chất lượng cao
mang thương hiệu Việt phục vụ mạng viễn thông CNTT cũng như đông đảo cộng đồng.
- VNPT Technology với vai trò doanh nghiệp chủ lực của Tập đoàn VNPT trong lĩnh
vực công nghệ, công nghiệp điện tử viễn thông, công nghệ thông tin, truyền thông và
công nghiệp nội dung số có tầm nhìn trở thành doanh nghiệp công nghệ cao hàng đầu
tại Việt Nam và tiến tới trở thành một trong những công ty công nghệ hàng đầu khu vực. 5
Chương 2: Nội dung thc tp
2.1 Gii thiu v ESP32 và Platform IO
2.1.1 Gii thiu v ESP32
ESP32 là một vi điều khiển giá rẻ, năng lượng thấp có hỗ trợ WiFi và dual-mode
Bluetooth (tạm dịch: Bluetooth chế độ kép). Dòng ESP32 sử dụng bộ vi xử lý
Tensilica Xtensa LX6 ở cả hai biến thể lõi kép và lõi đơn, và bao gồm các công tắc
antenna tích hợp, RF balun, bộ khuếch đại công suất, bộ khuếch đại thu nhiễu thấp,
bộ lọc và module quản lý năng lượng.
ESP32 được chế tạo và phát triển bởi Espressif Systems, một công ty Trung Quốc có
trụ sở tại Thượng Hải, và được sản xuất bởi TSMC bằng cách sử dụng công nghệ
40 nm. ESP32 là sản phẩm kế thừa từ vi điều khiển ESP8266.
Có thể nói ESP32 là sự nâng cấp hoàn hảo của ESP8266, với ESP8266 phù hợp với
các dự án nhỏ và tiết kiệm chi phí. ESP32 lại phù hợp với các dự án phức tạp hơn, tốc
độ xử lý cao hơn và tích hợp nhiều ngoại vi mạnh mẽ hơn.
ESP8266 là 17 chân GPIO, ADC độ phân giải 10 bit, 8 kênh PWM mềm trong khi đó
ESP 32 có tới 30/36 chân GPIO, 18 kênh ADC độ phân giải 12-bit, 16 kênh PWM
mềm, Touch Sensor, Hal Effect Sensor, Ethernet MAC Interface, Cảm biến nhiệt độ được tích hợp sẵn.
Về bộ nhớ ESP32 có thêm 4MB External Flash và 520KB SRAM (static random
access memory) trong đó 8 KB RAM RTC tốc độ cao – 8 KB RAM RTC tốc độ thấp
(dùng ở chế độ DeepSleep).
ESP32 hỗ trợ Bluetooth 4.2 và BLE (Bluetooth Low Energy). Việc hỗ trợ cả bluetooth
khiến ESP32 có thể tương tác với các thiết bị như là bàn phím, chuột, điện thoại khi mà không có wifi.
2.1.2 Gii thiu v Platform IO
PlatformIO là một môi trường phát triển tích hợp (IDE) dành cho các dự án nhúng và
IoT, hỗ trợ nhiều vi điều khiển và bảng mạch như Arduino, ESP32, STM32, và nhiều
hơn nữa. Nó cung cấp các công cụ mạnh mẽ như quản lý thư viện, gỡ lỗi, và tích hợp
với các trình biên dịch khác nhau.
PlatformIO có thể được sử dụng dưới dạng một plugin cho Visual Studio Code, giúp
lập trình viên dễ dàng phát triển, kiểm thử, và triển khai mã nguồn trên các thiết bị nhúng.
Để sử dụng PlatformIO, ta cần cài đặt nó như một plugin trong Visual Studio Code,
sau đó tạo hoặc mở dự án mới với cấu trúc thư mục tự động tạo ra. Ta có thể thêm các
thư viện cần thiết thông qua quản lý thư viện, biên dịch và tải mã nguồn trực tiếp lên vi điều khiển . 6
2.2 Lp trình Wifi Station, Smart config wifi ESP32
2.2.1 Lp trình WiFi Station
WiFi Station là chế độ mà ESP32 kết nối với một mạng WiFi hiện có như một client,
tương tự như cách điện thoại hoặc máy tính kết nối với mạng WiFi. Trong chế độ này,
bạn cần cung cấp thông tin SSID và mật khẩu của mạng WiFi mà ESP32 sẽ kết nối.
Đây là cách thông thường và phổ biến để kết nối ESP32 với internet hoặc mạng nội bộ.
Hình 2.2.1: Thiết lập WiFi Station cho ESP32
2.2.2 Lp trình Smart Config Wifi ESP32
Smart Config là một tính năng đặc biệt cho phép cấu hình WiFi của ESP32 mà không
cần cung cấp trực tiếp thông tin SSID và mật khẩu trong mã lập trình. Thay vào đó,
bạn sử dụng một ứng dụng trên thiết bị di động để gửi thông tin mạng WiFi (SSID và
mật khẩu) đến ESP32 thông qua sóng WiFi.
Cơ chế hoạt động cơ bản của Smart Config như sau:
- Thiết bị di động: Ứng dụng trên thiết bị di động gửi thông tin SSID và mật khẩu qua các gói UDP.
- ESP32: Nhận các gói UDP này, giải mã thông tin và kết nối với mạng WiFi.
Smart Config hữu ích trong các trường hợp:
- Không muốn mã hóa cứng thông tin mạng WiFi vào mã lập trình, để dễ dàng
thay đổi thông tin mạng khi cần.
- Tạo sự thuận tiện cho người dùng cuối khi họ có thể cấu hình thiết bị qua một ứng dụng di động. 7
Để sử dụng Smart Config trên ESP32, bạn có thể sử dụng thư viện WiFi của Arduino
hoặc ESP-IDF với các hàm hỗ trợ Smart Config. Và có thể dùng app Esp Touch để
điều chỉnh thông tin WIFI kết nối.
Hình 2.2.2: Thiết lập Smart Config trên ESP32
2.3 Lp trình HTTP Client Write, Read Data gi lên ThingSpeak
ThingSpeak là một dịch vụ IoT (Internet of Things) cho phép bạn thu thập, lưu trữ,
phân tích và hiển thị dữ liệu từ các cảm biến và thiết bị thông qua giao thức HTTP.
Khi lập trình một HTTP Client để gửi và nhận dữ liệu từ ThingSpeak, bạn có thể sử
dụng các phương pháp HTTP như GET (đọc dữ liệu) và POST (gửi dữ liệu) để tương tác với kênh của mình.
Các bước để tạo Server Thingspeak
a) Bước 1: Tạo tài khoản/Đăng nhập ThingSpeak
b) Bước 2: Tạo Channels ThingSpeak 8
Hình 2.3.1: Tạo Channel Thingspeak
c) Lấy Channel ID, Write API Key và Read API keys
Hình 2.3.2: Lấy Channel ID, Write API Key và Read API keys
Để lập trình HTTP client cho ESP32 để gửi và đọc dữ liệu từ ThingSpeak, bạn có thể
sử dụng thư viện HTTPClient có sẵn trong Arduino IDE.
Cú pháp URL để gửi dữ liệu:
ht ps:/ api.thingspeak.com/update?api_key=WRITE_API_KEY&field1=value1&fiel d2=value2. .
Cú pháp URL để đọc dữ liệu mới nhất:
ht ps:/ api.thingspeak.com/channels/CHANNEL_ID/feeds/last.json?api_key=READ _API_KEY
Cú pháp URL để đọc lịch sử dữ liệu: 9
ht ps:/ api.thingspeak.com/channels/CHANNEL_ID/feeds.json?api_key=READ_AP I_KEY&results=NUM_RESULTS
Hình 2.3.3: Kết quả thu được trên ThingSpeak
2.4 Lp trình MQTT x lý chui JSON
2.4.1 Gii thiu v MQTT
MQTT (Message Queuing Telemetry Transport) là giao thức truyền thông điệp
(message) theo mô hình publish/subscribe (cung cấp / thuê bao), được sử dụng cho
các thiết bị IoT với băng thông thấp, độ tin cậy cao và khả năng được sử dụng trong
mạng lưới không ổn định. Nó dựa trên một Broker (tạm dịch là “Máy chủ môi giới”)
“nhẹ” (khá ít xử lý) và được thiết kế có tính mở (tức là không đặc trưng cho ứng dụng
cụ thể nào), đơn giản và dễ cài đặt.
Tồn tại ba mức độ tin cậy cho việc truyền dữ liệu (QoS: Quality of service)
+ QoS 0: Broker/client sẽ gửi dữ liệu đúng một lần, quá trình gửi được xác nhận bởi chỉ giao thức TCP/IP.
+ QoS 1: Broker/client sẽ gửi dữ liệu với ít nhất một lần xác nhận từ đầu kia, nghĩa là
có thể có nhiều hơn 1 lần xác nhận đã nhận được dữ liệu.
+ QoS 2: Broker/client đảm bảo khi gửi dữ liệu thì phía nhận chỉ nhận được đúng một
lần, quá trình này phải trải qua 4 bước bắt tay.
2.4.2 Gii thiu v Hivemq Broker
HiveMQ là một nền tảng MQTT broker hiệu suất cao được thiết kế để xử lý hàng triệu
kết nối IoT đồng thời, cung cấp khả năng truyền dữ liệu tin cậy và bảo mật giữa các
thiết bị và ứng dụng.
HiveMQ Broker chia thành 2 loại: 10
+ Public broker: Sử dụng cổng 1883, không có bảo mật, thường dùng để test ứng dụng
hoặc các sản phẩm đơn giản.
+ Private broker: Sử dụng cổng 8883 và bảo mật SSL/TLS. Ta có thể sử dụng nó trong
các sản phẩm thương mại.
Hình 2.4.1: Giao diện của HiveMQ
2.4.3 Lp trình MQTT cho ESP32
Để lập trình ESP32 MQTT, ta sẽ dùng thư viện pubsubclient
Hình 2.4.2: Kết nối với Broker 11
Hình 2.4.3: Publish dữ liệu lên MQTT
Mỗi khi có dữ liệu thay đổi trên broker, hàm cal back sẽ được gọi:
• Hình 2.4.4: Subcrible dữ liệu từ MQTT 12
2.5 Lp trình OTA, tạo Server Local lưu Firmware Update
FOTA (Firmware Over The Air) là thuật ngữ chỉ việc nạp firmware từ xa mà không
cần sử dụng mạch nạp, chỉ cần có 1 kết nối không dây là có thể sử dụng được. FOTA
được sử dụng rộng rãi trong các sản phẩm IOT.
Để có thể nạp firmware từ xa cho ESP32 qua Internet. Chúng ta cần 1 máy chủ lưu
giữ. Khi cập nhật hệ thống sẽ tuân theo các bước sau:
+ Nhà phát triển Upload firmware lên máy chủ
+ ESP32 sẽ gọi 1 API lên server đó, truy vấn xem có bản cập nhật mới không. Việc
hỏi này sẽ được lặp lại liên tục có thể 1 vài phút 1 lần hoặc 1 vài ngày, tùy người phát triển
+ Nếu nhận được thông tin thay đổi version, ESP32 sẽ download firmware về thông qua internet.
+ Khởi động lại với firmware mới
Hình 2.5.1: Thiết lập trên server ESP32
Hình 2.5.2: Thiết lập giao diện login 13
Hình 2.5.3: Thiết lập giao diện upload
Để nạp Firmware vào ESP32, ta sử dụng các thư viện Update với các hàm
Update.begin, Update.buf, Update.end
Hình 2.5.4: Cập nhập firmware trên ESP32 (1) 14
Hình 2.5.5: Cập nhập firmware trên ESP32 (2)
Hình 2.5.6: Giao diện cập nhật firmware 15
2.6 S dụng tính năng Flash Encytion để mã hóa d liu Flash
Flash Encryption là một tính năng bảo mật quan trọng được sử dụng trong các vi điều
khiển, đặc biệt là những vi điều khiển của Espressif (như ESP32). Tính năng này giúp
mã hóa dữ liệu lưu trữ trong bộ nhớ Flash, bao gồm cả firmware, nhằm ngăn chặn
việc truy xuất trái phép và bảo vệ các ứng dụng khỏi bị sao chép hoặc tấn công.
Để sử dụng tính năng Flash Encryption trên ESP32 nhằm mã hóa dữ liệu Flash và bảo
vệ Firmware, bạn cần thực hiện một số bước cơ bản.
a) Bước 1: Kích hoạt Flash Encryption
Cấu hình sdkconfig: Bạn cần cấu hình sdkconfig để bật tính năng Flash Encryption.
Trong thư mục dự án, mở file sdkconfig và tìm các mục sau:
CONFIG_FLASH_ENCRYPTION_ENABLED=y
CONFIG_FLASH_ENCRYPTION_MODE=y
b) Bước 2: Tạo Key Encryption
Khởi tạo Flash Encryption: Bạn cần khởi tạo và lập trình khóa mã hóa cho Flash. Sử
dụng công cụ espsecure đi kèm với ESP-IDF. Ví dụ, để tạo khóa và lập trình chúng,
bạn có thể chạy lệnh:
espsecure.py gen_keypair flash_encryption_key.pem
Sau đó, lập trình khóa vào ESP32:
espsecure.py --keyfile flash_encryption_key.pem write_flash_encryption_key --port /dev/t yUSB0 --baud 115200
c) Bước 3: Xây dựng và nạp Firmware
Biên dịch Firmware: Biên dịch firmware của bạn bằng PlatformIO. Lệnh này có thể
thực hiện từ terminal: pio run
Nạp Firmware vào ESP32: Sau khi biên dịch thành công, nạp firmware vào ESP32
với lệnh: pio run --target upload 16
Chương 3: Nhận xét và đánh giá 3.1 Nhn xét
Trong suốt quá trình thực tập tại Công ty VNPT Technology, em đã có cơ hội tham
gia vào nhiều hoạt động thực tế, từ đó tích lũy được nhiều kinh nghiệm quý báu cho
bản thân. Những công việc được giao tại phòng giải pháp phần mềm không chỉ giúp
em củng cố kiến thức lý thuyết mà còn mở rộng hiểu biết về các quy trình công việc
thực tế, kỹ năng giải quyết vấn đề và khả năng làm việc nhóm.
Những ưu điểm nổi bật trong quá trình thực tập bao gồm:
- Khám phá công nghệ mới: Thực tập đã giúp em tiếp cận và tìm hiểu sâu hơn về
những công nghệ mới mà trước đây em chưa từng làm quen, từ đó mở rộng tầm hiểu
biết và khả năng sáng tạo trong việc áp dụng các giải pháp công nghệ.
- Rèn luyện khả năng làm việc độc lập: Trong suốt quá trình thực tập, em đã có cơ hội
tự mình thực hiện nhiều nhiệm vụ, từ đó nâng cao khả năng tự quản lý và chủ động trong công việc.
- Môi trường làm việc thân thiện và hỗ trợ: VNPT Technology đã mang đến cho em
một môi trường làm việc thân thiện, nơi các anh chị đồng nghiệp luôn sẵn sàng chia
sẻ kinh nghiệm và hỗ trợ khi cần thiết, giúp em cảm thấy tự tin hơn trong quá trình
học hỏi và phát triển.
3.2 Đánh giá ca công ty
VNPT Technology đã đánh giá cao sự nỗ lực và tiến bộ của em trong suốt quá trình
thực tập. Công ty nhận xét rằng em đã thể hiện được sự chủ động trong công việc, khả
năng tiếp thu nhanh chóng các công nghệ mới, và luôn hoàn thành tốt các nhiệm vụ
được giao. Đồng thời, công ty cũng đánh giá cao tinh thần hợp tác và khả năng làm
việc nhóm của em, góp phần tích cực vào các dự án của phòng giải pháp phần mềm. 17
C, KT LUN
Quá trình thực tập tại VNPT Technology với đề tài “Tìm hiểu và ứng dụng
ESP32” đã mang lại cho em nhiều kiến thức và kinh nghiệm thực tế quý báu. Từ việc
nghiên cứu lý thuyết đến triển khai các ứng dụng thực tế, em đã có cơ hội tiếp cận và
làm quen với các khía cạnh khác nhau của lập trình nhúng và Internet of Things (IoT).
Những kiến thức này không chỉ giúp em củng cố nền tảng học thuật mà còn mở ra
những hướng phát triển mới trong lĩnh vực công nghệ.
Trong suốt thời gian thực tập, em đã được làm việc trong một môi trường
chuyên nghiệp, nơi mà các anh chị đồng nghiệp và các thầy cô luôn sẵn sàng hỗ trợ
và chia sẻ kinh nghiệm. Điều này đã giúp em không chỉ phát triển về mặt chuyên môn
mà còn nâng cao kỹ năng mềm như giao tiếp, quản lý thời gian và làm việc nhóm.
Những bài học thu được từ quá trình này sẽ là hành trang quý giá giúp em tự tin hơn
trong sự nghiệp tương lai.
Đề tài về ESP32 đã giúp em hiểu rõ hơn về tầm quan trọng của công nghệ IoT
trong cuộc sống hiện đại. Từ việc kết nối thiết bị, quản lý dữ liệu đến việc xây dựng
các ứng dụng thông minh, em đã nhận thức được rằng ESP32 là một nền tảng mạnh
mẽ và linh hoạt, có khả năng đáp ứng nhiều yêu cầu khác nhau trong các dự án IoT.
Sự thành công trong việc triển khai các ứng dụng thực tế từ đề tài này đã khẳng định
giá trị của những kiến thức mà em đã học được.
Em xin chân thành cảm ơn VNPT Technology đã tạo điều kiện cho em thực
hiện quá trình thực tập này. Sự hỗ trợ và hướng dẫn tận tình từ công ty, cùng với môi
trường làm việc đầy chuyên nghiệp, đã giúp em hoàn thành đề tài một cách tốt nhất.
Những kinh nghiệm mà em tích lũy được tại đây sẽ là nền tảng vững chắc cho con
đường sự nghiệp sau này.
Cuối cùng, em xin gửi lời tri ân sâu sắc đến tất cả những ai đã đồng hành và
hỗ trợ em trong suốt thời gian thực tập. Quá trình này không chỉ giúp em trưởng thành
hơn về mặt kiến thức và kỹ năng mà còn định hình tư duy làm việc chuyên nghiệp,
góp phần vào sự phát triển cá nhân trong tương lai. 18