回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【Solar Power试用】掌控板物联网-测量2019元旦光照时间项目 简单

头像 rzegkly 2018.12.29 1482 2
project-image

       “元”, 凡数之始称为“元”,指开始,是第一的意思;“旦”,象形字,上面的“日”代表太阳,下面的“一”代表地平线,即太阳从地平线上冉冉升起,象征一日的开始。元旦又称“三元”,即岁之元、月之元、时之元。中国是世界上第12个开始新年的国家。距2019元旦还有3天的时间。通过DF创客社区的“太阳能电源管理模块”和掌控板制作一个“测量2019元旦光照时间项目”,和大家分享一下吧。

 一、测量时间思路框架

步骤1 通过微功率太阳能电源管理模块SPV105为掌控板提供电源;

步骤2 利用掌控板上光线传感器获取学校一天光线值,掌控板ESP32芯片的无线功能和MQTT协议,将信息上传物联网服务器上;

步骤3 通过移动OneNET平台实时转发、存储、被第三方设备(电脑、平板、手机)调用;

步骤4 在OneNETt平台以网站形式展示数据,通过掌控板上OLED显示屏显示光照值。

project-image

二、.在OneNET平台创建MQTT协议的产品并添加设备

1、建立中国移动物联网服务器,具体方法参看帖子:接入OneNET云平台

 2、OneNET平台官网地址:https://open.iot.10086.cn/,登录成功进入开发者中心,添加一个新产品。 

 3、记住设备ID、产品ID、产品APIKey

project-image

三、掌控板上光线传感器搜集信息 1.掌控板刷入最新固件MicroPython v1.0.1-dirty on 2018-11-23 

project-image

四、编写代码

代码
from umqtt.simple import MQTTClient
from mpython import *
import time,network, json
from machine import Timer
# MQTT服务器地址域名为:183.230.40.39,不变
SERVER = "XXXXXXX"
#设备ID
CLIENT_ID = "XXXXXXX"
#产品ID
username='XXXXXXX'
#产品APIKey:
password='XXXXXXX'
   
# wifi参数
SSID="XXXXXXX"            #wifi名称
PASSWORD="XXXXXXX"         #密码
wlan=None
message = {'datastreams':[
{
'id':'sound',
'datapoints':[{'value':0}]
},
{
'id':'light',
'datapoints':[{'value':0}]
}
]}
   
tim1 = Timer(1)       # 创建定时器
# 本函数实现wifi连接 规定动作,不要修改
def ConnectWifi(ssid=SSID,passwd=PASSWORD):
    global wlan
    wlan=network.WLAN(network.STA_IF)
    wlan.active(True)
    wlan.disconnect()
    wlan.connect(ssid,passwd)
   
    while(wlan.ifconfig()[0]=='0.0.0.0'):
                    time.sleep(1)
                    print('Connecting to network...')
    print('WiFi Connection Successful,Network Config:%s' %str(wlan.ifconfig()))
   
def pubdata(data):
    j_d = json.dumps(data)
    j_l = len(j_d)
    arr = bytearray(j_l + 3)
    arr[0] = 1 # publish数据类型为json
    arr[1] = int(j_l / 256) # json数据长度 高位字节
    arr[2] = j_l % 256      # json数据长度 低位字节
    arr[3:] = j_d.encode('ascii') # json数据
    return arr
   
def publishSenser():
    #message['datastreams'][0]['datapoints'][0]['value']=sound.read()
    message['datastreams'][1]['datapoints'][0]['value']=light.read()
    c.publish('$dp',pubdata(message))                   #publish报文上传数据点
    print('publish message:',message)
  
display.fill(0)
display.DispChar("物联网连接成功!", 20, 16)
display.DispChar("大美二高光线值:", 10, 32)    
display.DispChar(str(light.read()), 98, 32)
display.show()
#连接物联网IOT,上传Mython-light
ConnectWifi()
c = MQTTClient(CLIENT_ID, SERVER, 6002, username, password)
c.connect()
print("Connected to %s" % SERVER)
   
tim1.init(period=1000, mode=Timer.PERIODIC, callback=lambda _: publishSenser())     # 每隔一秒(可以改变)上传数据点

五、电路图

说明:掌控板电源分别有外置USB电源和有外置锂电池提供,

 1、太阳能充电:: 白天通过太阳能电池板对锂电池充电, A端太阳能板→ SPV105→B端锂电池;

 2、USB充电: 晚上通过USB外置电源对锂电池充电 D端外置电源→ SPV105→B端锂电池;

 3、锂电池供电: 锂电池为掌控板提供电池 B端锂电池→SPV105→C端掌控板

project-image

材料清单

  • 微功率太阳能电源管理模块 X1
  • 单晶硅太阳能板2V 160mA 50*50mm X1
  • 红色单芯导线15cm 24AWG X2
  • 黑色单芯导线15cm 24AWG X2
  • PH2.0-2P公头电源线15cm X1
  • XH2.54-2Pin排针 X2
  • 掌控板V1.0 X1
  • 1000mAh 3.7V锂电池 X1
  • PH2.0 JST 连接线 X1
  • Micro USB X1

评论

user-avatar
  • rzegkly

    rzegkly2019.01.02

    光线传感器显示数值必须重启才能更新,谢谢

    0
    • ASH腻

      ASH腻2019.01.02

      支持! 貌似步骤的内容显示还有bug,我反馈给技术人员。

      0