查看: 608|回复: 5

[入门教程] 【物联网】掌控板SIOT测光线值

[复制链接]
本帖最后由 rzegkly 于 2019-6-16 19:29 编辑

32359606_1395532760752_mthumb_副本.jpg
“万物互联”的时代正渐行渐近,物联网技术也越来越受到创客教育、STEAM教育领域的重视。
最近,读了谢作如老师的文章《做一个通用的物联网数据采集工具》,
文章中提到:“运用物联网技术不仅可以远程控制灯的开关,还可以实现数据自动采集的功能,
这样方便老师、学生使用“数据探究”的方式去研究科学问题,为科学探究提供了有力支撑,
今天分享一篇借助掌控板物联网测光线值文章分享给大家!
360截图20190615122021586.jpg
一、思 路

1、掌控板板载光线传感器负责收集光线值(0-4095),将光线值发布主题hq/001。
2、转发MQTT 通信的服务器(192.168.0.6)接受掌控板光线值得信息,
3. 在服务器MQTT 的设备列表查看消息,打开网页http://127.0.0.1:8080/html/messages.html?topic=hq/001,导出数据
截图201906151322561966.png
二、环境
1、硬件:掌控板 编程板
2、软件:mPythonX0.3.2
3、SIoT下载地址:  SIOT1.0
30717f3c18428311967035766162d763_副本.jpg

三、编程流程:
1、连接串口,通过mini数据线连接掌控板和计算机
2、烧录固件,将掌控板固件升级为2019-05-09,文件系统:2019-05-14
3、编写代码,通过物联网、wifi、显示等模块编写代码
4、刷入运行,刷入掌控板前,对代码进行调试代码,功能实现后刷入 掌控板

四、编写程序

1、在功能模块找到“物联网”,选取MOIT对应模块

7.jpg

2、连接无线网络,设置服务器地址、登陆账号密码

3.jpg
截图201906161929503160.png

3、当A键按下,每隔2s定时采集光线值;当B键按下,取消采集光线值

5.jpg

6.jpg
[Python] 纯文本查看 复制代码
from mpython import *
import network
from umqtt.simple import MQTTClient
from machine import Timer
import ubinascii

my_wifi = wifi()
my_wifi.connectWiFi("*****************, "*****************")

mqtt = MQTTClient("hq", "192.168.1.6", 1883, "siot", "dfrobot", keepalive=30)

try:
    mqtt.connect()
    print('Connected')
except:
    print('Disconnected')

def mqtt_topic_68712f303031(_msg):
    oled.DispChar("", 0, 48, 1)
    oled.DispChar(_msg, 0, 48, 1)
    oled.show()

def timer1_tick(_):
    mqtt.publish("hq/001", (str(light.read())))

tim1 = Timer(1)

def on_button_a_down(_):
    oled.DispChar("定时采集光线值", 0, 32, 1)
    oled.show()
    tim1.init(period=5000, mode=Timer.PERIODIC, callback=timer1_tick)

def on_button_b_down(_):
    oled.DispChar("取消采集光线值", 0, 32, 1)
    oled.show()
    tim1.deinit()

def mqtt_callback(topic, msg):
    try:
        topic = topic.decode('utf-8', 'ignore')
        _msg = msg.decode('utf-8', 'ignore')
        eval('mqtt_topic_' + bytes.decode(ubinascii.hexlify(topic)) + '("' + _msg + '")')
    except: print((topic, msg))

mqtt.set_callback(mqtt_callback)

mqtt.subscribe("hq/001")

def timer14_tick(_):
    mqtt.ping()

tim14 = Timer(14)
tim14.init(period=20000, mode=Timer.PERIODIC, callback=timer14_tick)

button_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)

button_b.irq(trigger=Pin.IRQ_FALLING, handler=on_button_b_down)


oled.fill(0)
oled.DispChar(my_wifi.sta.ifconfig()[0], 0, 0, 1)
oled.DispChar("连接成功", 0, 16, 1)
oled.show()
# 设置物联网服务器地址
while True:
    mqtt.wait_msg()


五、运行服务器,采集数据:
1、解压SIoT1.0,双击SIoT文件,服务器开始运行

1.jpg

2、在浏览器输入网址127.0.0.1:8080,登陆 账号siot,密码:dfrobot,

说明:账号密码可以通过config.json文件进行修改。


2.jpg

3、项目,设备id在编写程序时系统根据主题自动建立

截图201906151301019887.png

六、打开网页,导出数据

截图201906151302358124.png


2、在网页中找到hq项目的001主题,就可以看到一个图表,直观显示数据。

[hq_001]消息监控_副本.jpg



七、知识拓展:
1、MQTT
   概念:MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的”轻量级”通讯协议。
   特点:可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务,使其在物联网、小型设备、移动应用等方面有较广泛的应用
2、SIoT
   为一个为教育定制的跨平台的开源MQTT服务器程序,S指科学(Science)、简单(simple)的意思。
  SIoT支持Win10、Win7、Mac、Linux等操作系统,一键启动,无需用户注册或者系统设置即可使用。

日落光线值统计表.rar

734 Bytes, 下载次数: 0, 下载积分: 创造力 -1

日落光线值

ancenli  见习技师

发表于 2019-6-30 08:38:15

好文不断啊
回复 支持 反对

使用道具 举报

gada888  版主

发表于 2019-7-13 14:47:04

MQTT搞的人头大。但这个看着简单的多
回复 支持 反对

使用道具 举报

rzegkly  版主
 楼主|

发表于 2019-7-14 07:14:39

gada888 发表于 2019-7-13 14:47
MQTT搞的人头大。但这个看着简单的多

谢谢,请多多指导!
回复 支持 反对

使用道具 举报

韦应  初级技师

发表于 2019-7-14 10:05:03

每天来学习点新东西
回复 支持 反对

使用道具 举报

rzegkly  版主
 楼主|

发表于 2019-7-15 06:51:18

韦应 发表于 2019-7-14 10:05
每天来学习点新东西

相互学习,相互交流
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail