Simon西 发表于 2021-4-28 18:08

WiFi 扫描

终于来到最激动人心的时刻--RTL8722DM最大的特色就是双频WiFi,2.4Ghz和5GHz通吃,让你的wifi无死角,使用wifi scan功能还可以轻松扫描出所有附近的WiFi信号,想连哪个连哪个!材料准备
[*]Ameba x 1
范例说明WiFi扫描功能可以帮助我们快速发现周围有哪些WiFi网络。该范例不需要任何其他硬件,因此只需复制以下代码并将其粘贴到REPL中即可查看其作用。from wireless import WLAN
wifi = WLAN(mode = WLAN.STA)
wifi.scan()wifi 扫描就是这么简单~

Simon西 发表于 2021-4-30 09:23


WiFi 连接


扫描WiFi之后,就可以连接上你想要的WiFi网络啦,方法很简单,只需要在wifi.connect() API里面输入WiFi名字和密码就好啦,

材料准备
[*]Ameba x 1
范例说明Ameba可以使用开放安全性或WPA2安全类型连接到WiFi接入点,WPA2安全类型是家用无线路由器中最常用的安全类型。在这里我们将使用下面的代码连接到WiFi接入点,将以下代码逐行复制并粘贴到REPL中,以查看其作用。from wireless import WLAN
wifi = WLAN(mode = WLAN.STA)
wifi.connect(ssid = "YourWiFiName", pswd = "YourWiFiPassword")

Simon西 发表于 2021-5-3 11:51


Socket - Echo服务器与客户端

WiFi网络沟通最简单的就是使用Socket来进行点对点的沟通,想要知道你搭建的Server和client有没有正确的运作,就可以找来两个可以使用WiFi的设备,让他们之间互联并且echo(回应同样的信息)彼此的信息来做验证,以下就是上手啦,


材料准备
[*]Ameba x 2
范例说明WiFi连接完成后即可使用Socket来使用网路。 Socket就像一个假想的乙太网路介面,你可以用它把你的PC连接到互联网上的服务器上,比如Google或Github。即使是像HTTP这样的应用层协议也是建立在socket之上的。一旦给定了IP地址和端口号,就可以自由地连接到远程设备并与其进行通信。连接流程如下图所示。下面是一个使用服务器socket和客户端socket互相传送消息的范例,要使用这个范例,您需要两个ameba RTL8722来运行MicroPython,在REPL 的paste模式下分别将下面的代码复制并粘贴到两个ameba。以下是服务器代码import socket
from wireless import WLAN
wifi = WLAN(mode = WLAN.STA)
wifi.connect(ssid = "YourWiFiSSID", pswd = "YourWiFiPassword") # change the ssid and pswd to yours
s = socket.SOCK()
port = 5000
s.bind(port)
s.listen()
conn, addr = s.accept()
while True:
    data = conn.recv(1024)
    conn.send(data+"from server")
以下是客户端代码
import socket
from wireless import WLAN
wifi = WLAN(mode = WLAN.STA)
wifi.connect(ssid = "YourWiFiSSID", pswd = "YourWiFiPassword") # change the ssid and pswd to yours
c = socket.SOCK()
# make sure to check the server IP address and update in the next line of code
c.connect("your server IP address", 5000)
c.send("hello world")
data = c.recv(1024)
print(data)
这样,你在客户端(client)这边发送的hello world就会被服务器端收到并打印出来了

Simon西 发表于 2021-5-5 19:28


Socket - 从HTTP网站获取信息

上次只是本地的socket互相发送东西,这次,我们直接用socket来从MicroPython的官网上面抓一点网站上的信息下来,同样很简单,但是为了简化步骤,下面的示例定义了一个function从而可以让代码更清晰,

材料准备
[*]Ameba x 1
范例说明创建socket后,我们可以访问HTTP网站并从中获取信息。在粘贴模式下,将以下代码复制并粘贴到REPL中。import socket
from wireless import WLAN
wifi = WLAN(mode = WLAN.STA)
wifi.connect(ssid = "YourWiFiSSID", pswd = "YourPassword") # change the ssid and pswd to yours

def http_get(url):
    _, _, host, path = url.split('/', 3)
    c = socket.SOCK()
    # We are visiting MicroPython official website's test page
    c.connect(host, 80)
    c.send(bytes('GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n' % (path, host), 'utf8'))
    while True:
      data = c.recv(100)
      if data:
            print(str(data,'utf8'), end='')
      else:
            break

http_get('http://micropython.org/ks/test.html')
如果你收到“It's working if you can read this!”的字符串打印在REPL上,就说明你成功了! 恭喜,物联网已经成功走出大门了!

Simon西 发表于 2021-5-7 18:40

SDFS - SD卡的读写1


文件系统可以帮助我们存储和读取较大的文件,特别适合网络传输所用的html文件,图片文件或是音频视频文件,如何使用RTL8722DM上面的SDIO来快速读写呢? 请看下面,




import sdfs

s=sdfs            # create a short form
s.listdir()       # listing the files and folders under current path
s.mkdir("test")   # create a folder named "test" under current path
s.chdir("test")   # change directory to test folder
s.pwd()         # print out present working directory(current path)
s.chdir("/")      # change directory bach to root directory
s.rm("test")      # delete the test folder

MicroPython这边使用了和linux相似的API命名方式,方便大家快速、直观的上手, listdir就是展示当前所有文件,mkdir就是创建文件夹,以此类推

Simon西 发表于 2021-5-12 16:16

SDFS - SD卡的读写2

上次看了文件系统的文件夹管理,这次着重看一下文件的处理:




import sdfs

s=sdfs                  # create a short form
s.create("ameba.txt")   # create a file named "ameba.txt"
s.write("ameba.txt", "ameba supports sd card file system!") # write a string to the file just created
s.read("ameba.txt")   # read the content from the same file
s.rm("ameba.txt")       # delete the file

开心的话就用create()创建一个新的文件“ameba.txt" , 不开心就可以用rm()来删除它,是不是超方便?






xiaozhi1996526 发表于 2021-12-7 16:24

我要怎么才能重新上电还能继续运行上次下载的DEMO呢?
页: 1 [2]
查看完整版本: 瑞昱双频WiFi+BLE5.0物联网单片机之MicroPython教程