开发板上有一个wifi模块,可以连接网络,用于运程控制,
网络接口,分基础网络连接与IOT应用。
基础网络连接就是配置wifi进行连接,但没有数据处理部分的组件,如果要通过以太网来传输数据,要使用python进行数据处理。
IOT组件,主要是MQTT协议,可连接河狸云平台,适用于一些物联网的DIY应用。
首先,来测度基础的联网功能。
通过图形化编程,程序如下。
程序烧写到开发板后,联网后,屏幕上会显示网络信息,如下:
如果想处理网络数据,那就要使用python进行联网才可以了。
python联网的代码如下:
import network
import time
import gewu
def do_connect():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print('connecting to network...')
wlan.connect("******", "******")
while not wlan.isconnected():
pass
print('network config:', wlan.ifconfig())
gewu.display.fill(OLED.BLACK)
gewu.display.text(str(wlan.ifconfig()[0]), 0, 0, 6)
gewu.display.text(str(wlan.ifconfig()[1]), 0, 10, 6)
gewu.display.text(str(wlan.ifconfig()[2]), 0, 20, 6)
gewu.display.text(str(wlan.ifconfig()[3]), 0, 30, 6)
gewu.display.show()
do_connect()
代码功能与上面图形化编程的功能一样的,都可以联网。
如下就是终端输出的联网信息。
目前只是连接到了wifi,还没有数据进行处理,而且开发板是支持mqtt的,
只是开发板支持的是河狸云平台,只是目前还没有该平台的测试方法,所以,先用第三方的mqtt服务器进行测试。
这次使用的是通信猫。
代码如下:
import network
import time
import gewu
from umqtt import MQTTClient
import ujson
def do_connect():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print('connecting to network...')
wlan.connect("******", "******")
while not wlan.isconnected():
pass
print('network config:', wlan.ifconfig())
gewu.display.fill(OLED.BLACK)
gewu.display.text(str(wlan.ifconfig()[0]), 0, 0, 6)
gewu.display.text(str(wlan.ifconfig()[1]), 0, 10, 6)
gewu.display.text(str(wlan.ifconfig()[2]), 0, 20, 6)
gewu.display.text(str(wlan.ifconfig()[3]), 0, 30, 6)
gewu.display.show()
do_connect()
ssid=''
passwd=''
client_id='txm123'
mserver='mq.tongxinmao.com'
port=18830
topic_ctl=b'/public/TEST/jwebcli'
topic_sta=b'/public/TEST/jwebcli'
def sub_callback(topic, msg):
print("收到订阅消息回调")
print(msg)
client = MQTTClient(client_id,mserver,port)
client.set_callback(sub_callback)
client.connect()
client.subscribe(topic_ctl)
client.publish(topic_sta, 'Device online', retain=True)
print("Connected to %s, subscribed to %s topic" % (mserver, topic_ctl))
while True:
client.check_msg()
time.sleep(1)
运行后的结果如下:
这里的 11 22 33 是mqtt服务器发送的。