Python kết nối với wifi Raspberry Pi
Raspberry PI Pico W đã thêm kết nối WiFi vào bộ vi điều khiển từ RPI Foundation, cho phép các dự án của chúng tôi kết nối với thế giới internetHướng dẫn này sẽ chỉ cho bạn cách sử dụng WiFi với Raspberry PI Pico Show
Với việc phát hành Raspberry PI Pico W, việc thêm mô-đun Infineon CYW4343 vào bộ vi điều khiển dựa trên RP2040 đã cho phép chúng tôi kết nối với 2. Mạng Wi-Fi 4GHz. Đó là một bước tiến lớn, vì trước sự phát triển này, chỉ một số bộ vi điều khiển có thể kết nối với kết nối WiFi và điều này giúp Pico có thể sử dụng được trong các dự án đồ vật thông minh Theo dõi các bài đăng của peppe8o trên -> Twitter Những gì chúng tôi cầnNhư thường lệ, tôi khuyên bạn nên thêm tất cả phần cứng cần thiết vào giỏ hàng thương mại điện tử yêu thích của mình từ bây giờ để cuối cùng, bạn có thể đánh giá chi phí tổng thể và quyết định xem có nên tiếp tục dự án hay xóa chúng khỏi giỏ hàng. Vì vậy, phần cứng sẽ chỉ
Kiểm tra giá phần cứng với các liên kết sau Quy trình từng bướcCài đặt chương trình cơ sở MicroPythonTrước khi bắt đầu với các ví dụ, bạn cần cài đặt chương trình cơ sở MicroPython trong Raspberry PI Pico W của mình Đây là lưu ý cảnh báo đầu tiên. tại thời điểm viết bài này (tháng 7 năm 2022), Raspberry PI Foundation đã phải xuất bản một chương trình cơ sở cụ thể để WiFi hoạt động trên Raspberry PI Pico W. Họ đã hứa rằng các khả năng của phần sụn sẽ sớm được kết hợp với phần sụn chính thức của MicroPython. Tuy nhiên, hiện tại, việc chạy mã mạng bằng chương trình cơ sở chính thức của MicroPython sẽ dẫn đến lỗi sau khi cố gắng nhập thư viện mạng
Dù sao đi nữa, bạn cũng có thể tham khảo hướng dẫn Các bước đầu tiên với Raspberry PI Pico cho người mới bắt đầu của tôi, vì nó cũng chỉ ra cách sử dụng Thonny (cùng một IDE mà tôi sẽ sử dụng cho hướng dẫn này). Điều này sẽ cho phép bạn kiểm tra chương trình cơ sở chính thức của MicroPython trước khi chuyển sang RPI Foundation fork Vì vậy, nếu bạn đã kiểm tra phần sụn chính thức gặp lỗi trên, vui lòng cài đặt phần sụn do Raspberry PI Foundation cung cấp từ họ (vui lòng chú ý chọn phần sụn cho Pico W) hoặc bạn có thể lấy một bản sao từ trang tải xuống của tôi micropython-firmware-pico-w-290622. uf2 Tóm lại, bạn có thể cài đặt nó bằng cách
Quét Wi-FiThao tác đầu tiên là kiểm tra xem mạng WiFI của bạn có đủ tín hiệu để kết nối không. Hãy nhớ rằng Raspberry PI Pico W chỉ có thể sử dụng 2. mạng 4 GHz Mã để thực hiện thao tác này đơn giản và ngắn gọn, vì vậy tôi đã thêm nhận xét trong mã giải thích tác vụ hàng
Kết quả sẽ tương tự như sau (ở đây tôi đã sử dụng ký tự “*” để ẩn mạng cá nhân của mình để bảo mật)
Đối với mỗi điểm truy cập được phát hiện, thông tin sau NÊN được báo cáo
Tôi đã nhập “NÊN” vì 2 giá trị cuối cùng do quá trình quét cục bộ của tôi dường như không tuân thủ với tài liệu WLAN chính thức của MicroPython… Tôi không biết liệu đó có phải là lỗi triển khai hay tôi đang đọc những giá trị này trong Kết nối Wi-FiSau khi quét các mạng WiFi và thấy rằng tín hiệu đủ để liên lạc đáng tin cậy, giờ đây chúng ta có thể bắt đầu kết nối với bộ định tuyến gia đình của mình Mã như sau (bạn sẽ phải thay đổi các phần màu đỏ)
Trong mã MicroPython, “rp2. country('IT')” đặt mã quốc gia WiFi (mã của tôi là CNTT vì tôi đang ở Ý). Thay đổi nó thành mã quốc gia gồm 2 chữ cái của bạn để có WiFi bằng các kênh được phép ở quốc gia của bạn “mạng lưới. config(pm = 0xa11140)” đặt chế độ nguồn WiFi cho Raspberry PI Pico W của bạn. Theo mặc định, Pico W đặt WiFi ở chế độ tiết kiệm năng lượng khiến nó kém phản hồi hơn sau một thời gian không sử dụng kết nối. Nếu bạn cần phản hồi nhanh chóng ngay cả khi hết thời gian, hãy sử dụng tính năng này để luôn bật nguồn WiFi mạng lan. connect() là nơi lưu thông tin đăng nhập WiFi của bạn. Nói thật, nếu bạn định sử dụng Raspberry PI Pico W trong không gian công cộng thì sẽ không an toàn khi mật khẩu WiFi được hiển thị bằng mã thuần túy và bạn sẽ cần bảo vệ kết nối nâng cao hơn (chẳng hạn như một mạng cụ thể được bảo vệ khỏi . Đối với các dự án gia đình, thông thường, đó không phải là vấn đề lớn. Hơn nữa, wlan. connect() khởi tạo kết nối WiFi Vòng lặp while chờ kết nối hoàn thành. Việc kiểm tra cũng được thực hiện bằng cách xác minh mạng wlan. mã trạng thái (), có thể được diễn giải bằng lược đồ sau
Cuối cùng, chúng tôi in cấu hình IP nhận được từ bộ định tuyến (bên dưới tôi hiển thị của tôi, nhưng cấu hình của bạn sẽ tương tự)
Kết quả cho thấy
Raspberry PI Pico W của chúng tôi không được kết nối với mạng WiFi và nó có thể tương tác với thế giới Nhận các trang/nội dung Internet với UrequestsVí dụ đầu tiên là lấy thông tin từ các trang hoặc dịch vụ internet. Có nhiều cách khác nhau để đạt được mục tiêu này, nhưng cách đơn giản hơn là sử dụng thư viện urequests Ví dụ này cho biết cách tải xuống một tệp chung, nhưng bạn có thể sử dụng các kết quả trong mã MicroPython của mình để quản lý các tệp văn bản/json đã nhận để lọc và điều chỉnh bất kỳ đầu vào nào Mã này như sau
Xin lưu ý rằng bạn không thể tải xuống các trang có kích thước quá lớn so với giới hạn của bộ nhớ Raspberry PI Pico W (256KB RAM và 2MB bộ nhớ Flash). Khi vượt quá giới hạn này, bạn sẽ gặp lỗi tương tự như sau
Đoạn script trên sẽ trả về mã HTML cho trang được liên kết Hiển thị các trang HTMLVí dụ này cho thấy trường hợp ngược lại so với trường hợp trước. Raspberry PI Pico W của chúng tôi sẽ xuất bản một trang HTML đơn giản. Hơn nữa, từ trang HTML này, chúng ta sẽ có thể điều khiển bảng LED. Trong trường hợp này, chúng tôi sẽ sử dụng thư viện ổ cắm, cũng được bao gồm trong chương trình cơ sở RPI Foundation Vui lòng bắt đầu tải xuống các tệp sau và di chuyển chúng vào bộ lưu trữ Raspberry PI Pico W của bạn
người đánh lưới. mã py bao gồm một thư viện rất đơn giản để quản lý kết nối WiFi cho Raspberry PI Pico W của bạn. Nó bao gồm chức năng connectWiFi() yêu cầu đầu vào SSID nhà riêng, mật khẩu WiFi và mã quốc gia gồm 2 chữ cái của bạn. Nó trả về trạng thái kết nối. đây là một mảng có phần tử đầu tiên là Địa chỉ IP nhận được từ Bộ định tuyến nhà của bạn. Hơn nữa, nó bổ sung khả năng quản lý kết nối tốt hơn với khả năng xử lý lỗi, như được đề xuất trong tài liệu Raspberry PI Foundation Sử dụng chức năng tùy chỉnh như vậy, được liên kết từ một tệp bên ngoài, giúp mã của bạn sạch hơn và dễ hiểu hơn mạng nhện. mã py là tập lệnh MicroPython để chạy trong Raspberry PI Pico W của bạn. Tất nhiên, các câu lệnh print() sẽ hiển thị trong trình bao Thonny của bạn những gì đang xảy ra và có thể bị xóa hoặc nhận xét khi bạn không cần chúng Khi bắt đầu, các mô-đun cần thiết được nhập
Các mô-đun mạng và rp2 không bắt buộc vì chúng được nhập bởi mô-đun netman Sau khi tạo đối tượng LED, đối tượng đó sẽ điều khiển đèn LED bảng Raspberry PI Pico W ________số 8chúng tôi đặt thông tin xác thực và quốc gia kết nối WiFi. Chúng tôi sử dụng các biến để có một nơi duy nhất để thay đổi chúng
Bây giờ chúng tôi sử dụng mô-đun netman để khởi tạo kết nối WiFi và chúng tôi sẽ lưu trữ trạng thái kết nối trong biến “wifi_connection” 0Phần tiếp theo lưu trữ mã HTML để trang của chúng tôi hiển thị trên các máy tính từ xa. Bạn có thể lưu ý rằng chúng tôi đang sử dụng điểm đánh dấu “%s” để có thể thêm trạng thái đèn LED sau này. Ngoài ra, chúng tôi cũng đang sử dụng giá trị “wifi_connection[0]” (đó là địa chỉ IP nhận được từ kết nối Wlan) để tạo liên kết nội bộ đến cùng một trang 1Ổ cắm được khởi tạo và định cấu hình để liên kết tại “0. 0. 0. 0”. điều này có nghĩa là máy chủ web của chúng tôi sẽ trả lời bất kỳ yêu cầu nào từ các máy tính bên ngoài 2Ở lần tải trang đầu tiên, trạng thái đèn LED có thể không nhất quán. Vì vậy, khởi tạo nó thành giá trị mặc định là một cách tốt để có cấu hình ban đầu được kiểm soát 3Vòng lặp chính sẽ đợi các kết nối bên ngoài. Khi một kết nối chung đến từ máy tính, trình bao sẽ in yêu cầu (cũng hữu ích để khắc phục sự cố) 4Máy chủ web này có thể trả lời để phục vụ 3 trang (URL) khác nhau. Các URL sẽ luôn bắt đầu bằng “http. //YourRpiPicoAddress” (trong đó “YourRpiPicoAddress” là địa chỉ IP Pico W của bạn, địa chỉ của tôi cho ví dụ này sẽ là 192. 168. 1. 43). URL gốc sẽ hiển thị trạng thái đèn LED, trong khi các URL bao gồm “/light/on” hoặc “/light/off” sẽ điều khiển đèn LED, ngoài việc hiển thị cùng một đầu ra trang và trạng thái đèn LED hiện tại. Làm cho nó đơn giản hơn, với địa chỉ IP của tôi
Chúng tôi sẽ tìm URL mà máy tính đang yêu cầu bằng cách đọc nội dung yêu cầu và tìm kiếm các chuỗi liên quan. Xin lưu ý rằng chuỗi yêu cầu đã bị cắt đối với 50 ký tự đầu tiên khi di chuyển từ trang LED BẬT và trang TẮT LED, nó sẽ theo dõi trang trước đó bằng truy vấn “Người giới thiệu” và có thể dẫn đến trạng thái không chính xác 5Nếu hàm find không tìm thấy chuỗi được yêu cầu, nó sẽ trả về giá trị “-1”. Nếu điều này tìm thấy chuỗi, nó sẽ trả về vị trí liên quan dưới dạng số nguyên. Với suy nghĩ này, các câu lệnh if sau đây sẽ đặt bật/tắt đèn LED và chuỗi thông báo trạng thái liên quan đến anh ấy 6Cuối cùng, trang web là máy chủ và chúng tôi cũng đóng phiên socket 7Hơn nữa, phù hợp với “thử. ” câu lệnh, “ngoại lệ” cuối cùng sẽ xử lý lỗi 8Trang kết quả sẽ như sau (vui lòng nhớ sử dụng địa chỉ Raspberry PI Pico W của bạn thay vì địa chỉ của tôi). Và vâng, bạn có thể định cấu hình mã HTML theo ý muốn, như tôi đã thêm peppe8o. liên kết com. Điều này sẽ yêu cầu một chút kiến thức về HTML Tài liệu chính thứcTài liệu chính thức để kết nối Raspberry PI Pico W của bạn có sẵn trên trang web Raspberry PI Foundation tại https. //bảng dữ liệu. mâm xôi. com/picow/kết-nối-với-internet-với-pico-w. pdf. Từ tài liệu này, tôi đã tự do thay đổi một số phần mã và tôi hy vọng bạn sẽ thích những thay đổi đó Cái gì tiếp theoMuốn làm nhiều hơn với Raspberry PI Pico của bạn? Làm cách nào để kết nối với WiFi bằng Python?Kết nối với mạng Wi-Fi mới . Bước 1. Nhập thư viện os Bước 2. Thiết lập cấu hình XML của Mạng Wi-Fi mới Bước 3. Chọn mạng Wi-Fi Bước 4. Thêm hồ sơ này vào hệ thống của bạn Bước 5. Kết nối với mạng Wi-Fi Raspberry Pi 4 có thể kết nối với WiFi không dây không?Các tính năng không dây của Raspberry Pi 4 B. Ngoài Gigabit Ethernet thông suốt, Raspberry Pi 4 B còn có mạng không dây và Bluetooth tích hợp . Giống như người tiền nhiệm của nó, RPi 4 B có băng tần kép 802. 11ac\n không dây có thể chạy trên 2. 4GHz hoặc 5GHz. |