OpenHarmony开源社区
直播中

jinyi7016

12年用户 6608经验值
擅长:处理器/DSP
私信 关注
[经验]

【小河狸创客格物开发板试用体验】无线网络连接与mqtt测试

开发板上有一个wifi模块,可以连接网络,用于运程控制,

网络接口,分基础网络连接与IOT应用。

基础网络连接就是配置wifi进行连接,但没有数据处理部分的组件,如果要通过以太网来传输数据,要使用python进行数据处理。

IOT组件,主要是MQTT协议,可连接河狸云平台,适用于一些物联网的DIY应用。

clipboard.png

首先,来测度基础的联网功能。

通过图形化编程,程序如下。

clipboard.png

程序烧写到开发板后,联网后,屏幕上会显示网络信息,如下:

微信图片_20221104141241.jpg

如果想处理网络数据,那就要使用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()

代码功能与上面图形化编程的功能一样的,都可以联网。

如下就是终端输出的联网信息。
clipboard.png

目前只是连接到了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服务器发送的。

clipboard.png

更多回帖

发帖
×
20
完善资料,
赚取积分