所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开
【Solar Power试用】掌控板物联网-测量2019元旦光照时间项目
rzegkly rzegkly 2019-04-23 15:40:41
2
2
简单
projectImage

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

 一、测量时间思路框架

步骤1 步骤1
通过微功率太阳能电源管理模块SPV105为掌控板提供电源;
步骤2 步骤2
利用掌控板上光线传感器获取学校一天光线值,掌控板ESP32芯片的无线功能和MQTT协议,将信息上传物联网服务器上;
步骤3 步骤3
通过移动OneNET平台实时转发、存储、被第三方设备(电脑、平板、手机)调用;
步骤4 步骤4
在OneNETt平台以网站形式展示数据,通过掌控板上OLED显示屏显示光照值。
projectImage

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

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

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

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

projectImage

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

projectImage

四、编写代码

代码 代码
	                    					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端掌控板

projectImage
材料清单 材料清单
1x
微功率太阳能电源管理模块
1x
单晶硅太阳能板2V 160mA 50*50mm
2x
红色单芯导线15cm 24AWG
2x
黑色单芯导线15cm 24AWG
1x
PH2.0-2P公头电源线15cm
2x
XH2.54-2Pin排针
1x
掌控板V1.0
1x
1000mAh 3.7V锂电池
1x
PH2.0 JST 连接线
1x
Micro USB
Makelog作者原创文章,未经授权禁止转载。
2
2
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
[[c.comment_content]]