K230开发板带了一个WIFI模块,能够连接互联网传输数据,对于处于当前物联网时代的我们,能够将设备连接到物联网平台也是至关重要的一件事,如果我们可以把K230开发板能接到物联网平台的话,是不是我们能够实现的场景也就变多了,经过以上的思考,我决定尝试一下物联网连接.
经过查阅开发板资料,发现我们板子是能够支持物联网平台连接的,使用的是simple.py库,而且官方附带有开发文档,地址:https://wiki.01studio.cc/docs/canmv_k230/network/mqtt,那么接下来就要开始基于官方手册来编程了,在开始之前我们要准备好:一个能上网的wifi信号,如果家里没有路由器的话,使用手机热点也是可以的,不过按照官方的解释,需要调整到2,4GHz的热点频率:

然后是在ctwing平台上注册一个账号,并根据官方手册的描述,新建产品,添加设备,ctwing平台地址:https://www.ctwing.cn/
附上ctwing平台的介绍:
天翼物联网平台(AIoT)是中国电信倾力打造的智能终端汇聚、应用开发运行服务和轻量级应用提供的物联网平台,旨在降低物联网应用开发的准入门槛,降低智能硬件的接入门槛,提供端到端的解决方案,服务于终端开发商、个人极客开发者、能力提供商、应用开发商以及集团内部各生态圈。
首先要使用最新版本的固件,地址:https://kendryte-download.canaan-creative.com/developer/releases/canmv_k230_micropython/daily_build/
,在这个地址里已经内置了simple.py了,所以无需我们从例程里拷贝出来
然后在ide内开发代码:
import network,time
from simple import MQTTClient #导入MQTT板块
from machine import Pin,Timer
#WIFI连接函数
def WIFI_Connect(ssid,pwd):
WIFI_LED=Pin(52, Pin.OUT) #初始化WIFI指示灯
wlan = network.WLAN(network.STA_IF) #STA模式
wlan.active(True) #激活接口
if not wlan.isconnected():
print('connecting to network...')
for i in range(3): #重复连接3次
#输入WIFI账号密码(仅支持2.4G信号), 连接超过5秒为超时
wlan.connect(ssid, pwd)
if wlan.isconnected(): #连接成功
break
if wlan.isconnected(): #连接成功
print('connect success')
#LED蓝灯点亮
WIFI_LED.value(1)
#等待获取IP地址
while wlan.ifconfig()[0] == '0.0.0.0':
pass
#串口打印信息
print('network information:', wlan.ifconfig())
else: #连接失败
#LED闪烁3次提示
for i in range(3):
WIFI_LED.value(1)
time.sleep_ms(300)
WIFI_LED.value(0)
time.sleep_ms(300)
HOST_ADDR= "mqtt.ctwing.cn"
CLIENT_ID= "16669084test01"
DEVICE_ID="cszzlsw"
MQTT_DEVICES_PWD="2Fh8tF-KNXJYZuVGXQYum67bhdogtJatBb8zjwU6x4k"
def main():
#将GPIO52、GPIO21配置为普通GPIO模式
# fpioa = machine.FPIOA()
# fpioa.set_function(52,FPIOA.GPIO52)
# fpioa.set_function(21,FPIOA.GPIO21)
LED=Pin(52,Pin.OUT) #构建LED对象,开始熄灭
KEY=Pin(21,Pin.IN,Pin.PULL_UP) #构建KEY对象
WIFI_Connect("MY_SW","12345678")
c = MQTTClient(client_id =CLIENT_ID, server = HOST_ADDR, port=1883,
user=DEVICE_ID, password=MQTT_DEVICES_PWD,keepalive=10)
c.connect()
print("Connected to s, waiting for button presses" )
while True:
while True:
if KEY.value() == 0:
break
time.sleep_ms(20)
print("Button pressed")
# c.publish(TOPIC, b"toggle")
time.sleep_ms(200)
c.disconnect()
main()
这样的话,我们就能够实现mqtt登陆了:
登录完成之后,我们就可以使用publish和subcrib来订阅主题来实现后面的内容.
在完成设备登录之后,我们就要准备上传数据以及接收远程发送的指令了,然后还可以通过建立一个大屏界面来实现数据的可视化以及指令的下发:
咱们拭目以待吧.
PS:关于物联网平台的选择:
最开始准备使用华为云IOT平台,结果调了三个晚上,华为云平台调试失败,然后阿里云平台也是一样,后面厂家调通了百度云,但是百度云没有免费的资源,导致无法实验,经过一番查找才最后找到了CTwing平台,正好ctwing自带了大屏页面,省得我这边去做界面了,简直是一举两得.
更多回帖