ESP - MicroPython (4) Access Point Mode

🌱 ESP - MicroPython (4) Access Point Mode

    Ở bài viết trước mình đã giới thiệu với các bạn về ESP hoạt động ở Station, tức là bắt wifi từ một router/điện thoại phát ra, và kết . Các bạn có thể tham khảo 2 bài viết đó tại đây:

    👉 Access Point Mode

    Ở bài viết này mình sẽ giới thiệu về ESP hoạt động ở chế độ Access Point (AP), tức là con ESP của mình sẽ phát wifi (local) và điện thoại, máy tính có thể kết nối vào nếu nằm trong vùng phủ sóng. 

APMode

    Trong trường hợp này chúng ta có thể kết nối ESP với một mạng wifi khác để kết nối Internet, còn nếu không thì chỉ có ESP phát sóng cho điện thoại/máy tính để thực hiện một số hoạt động, giống như một mạng LAN (Local Area Network).

    👉 Setup ESP hoạt động ở chế độ Access Point

    Tương tự như Station Mode, AP Mode cũng cần import thư viện network của Micropython, sử dụng method WLAN

import

    Cài đặt ssidmật khẩu của Wifi do ESP phát ra, sử dụng method config với 2 tham số là essidpassword dạng chuỗi.

apconfig

    Sau đó sử dụng phương thức ifconfig để kiểm tra địa chỉ IP, địa chỉ IP này khá quan trọng để ở bước sau chúng ta có thể dùng để truy cập vào trang web.

    👉 Khởi tạo một Socket Server

    "Socket là điểm cuối end-point trong liên kết truyền thông hai chiều (two-way communication) biểu diễn kết nối giữa Client – Server."

    Để tìm hiểu rõ hơn về Socket thì các bạn đọc thêm về mô hình OSI và giao thức TCP/IP nhé.

    Ở đây để sử dụng socket, chúng ta vần import thư viện usocket. Sử dụng method socket để khởi tạo một kết nối, và phương thức bind để ràng buộc với cổng port mạng là 80.

socket

    Tạo môt socket server với lời nhắn Hello World, các bạn có kiến thức về HTML thì có thể thiết kế một trang web phức tạp hơn. 

socket server

    ESP sẽ đóng vai trò như một Server - Acess Point, khi mà Điện thoại/Máy tính kết nối với wifi và truy cập vào địa chỉ IP trên, ESP cần gửi trang web trên (socket server) cho client đó bằng method send

send

    👉 Kết quả 

    Kết nối tới wifi mà ESP phát ra bằng điện thoại di động và truy cập vào địa chỉ IP 192.168.4.1.

Result

    Tham khảo full code tại đây:

import usocket as socket
import network

ap = network.WLAN(network.AP_IF)
ap.active(True)
ap.config(essid='MicroPython-AP', password='123456789')
print('Connection successful')
print(ap.ifconfig())

def web_page():
  html = """<html><head><meta name="viewport" content="width=device-width, initial-scale=1"></head>
  <body><h1>Hello, World!</h1></body></html>"""
  return html

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', 80))
s.listen(5)

while True:
  conn, addr = s.accept()
  request = conn.recv(1024)
  response = web_page()
  conn.send(response)
  conn.close()

    Chúc các bạn học tập tốt 😊

ESP - Micropython (3)                 ESP - Micropython (5)

Nguyễn Văn Nghĩa

Mình là một người thích học hỏi và chia sẻ các kiến thức về Nhúng IOT.

Đăng nhận xét

Mới hơn Cũ hơn