增加服务器以运行任务

grown的Python项目详细描述


增长

基于传感器的平台,创建各种任务,除了收集数据。 基本的想法是获得一个固件,用于种植植物,将光照和水注入 微控制器的手。

要求

任何可用的micropython板或任何可以运行micropython的东西。

安装

更新和软件包安装都将通过UPIP提供。

import upip
upip.install('grown')

启用软件和配置是用户的选择。 就像python中的webrepl在boot或main.py nesserry中添加一个激活调用一样 例如:

from grown import setup, run_grown

router = setup()
# add more tasks or add site to the router

run_grown()

grown的设置将启动时间同步任务和WLAN配置。 运行后,将打开一个带有rest接口的web服务器,以更改每个任务的设置。

大摇大摆

你添加到路由器的每个操作和信息都是由grown提供的open api自动提供的。 我们使用swagger.ui作为描述,可以单独使用。 使用时只需在ui中浏览给定的链接 示例:

http:\\myiotdevice\swagger.json

这样在添加了所有控件之后,您就有了开发进一步视图或测试的良好基础 给定的参数。

数据控制

此模块用于记录来自传感器的超时数据。启用日志记录非常简单 函数返回一个dict,key作为名称和值。 这些函数称为超时,并将被记录。

示例:

from grown.data_control import add_data_control

async def mydata():
    return {
        "water": 0,
        "light": 0,
    }

add_data_control(router, mydata)

灯光控制

每个工厂都需要照明,所以我们需要按时间表来控制。 我们至少需要两个功能,一个激活,一个关闭灯光。

示例:

from grown.light_control import add_light_control

async def activate():
    print("activate")

async def deactivate():
    print("deactivate")

add_light_control(router, activate, deactivate)

日志记录

如果您想在日志中添加一些内容,因为您编写了自己的任务等等。 示例:

from grown.logging import grown_log

grown_log.info('new entry')

它是来自logger的一个ulogging实例,添加了一个add,它不仅将数据记录到控制台 也可以到文件run_information.log。 这在调试日志术语错误时可能很方便。

存储

另一个内部因素是商店。它是一个最小的redux,也存储 文件系统的每次更新。

示例:

from grown.store import storage

def _update_reducer(store_dict, data):
    return store_dict.update(data)

storage.register_leaf(
        'mydata',
        {
        },
        _update_reducer
    )


leaf = storeage.get_leaf('mydata')

leaf.update({'new_data': 3.0})

print(leaf.get())

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将HashMap<String,Object>从一个活动传递到另一个活动   java如何手动加密socket连接的流量?   java正则表达式生成一个不正确的结果   Java方法引用具有泛型参数的方法   java app setBackground()错误:不兼容的类型:int无法转换为Drawable   java是启动Spring引导而不是SpringApplication的其他方法。跑   无法打开java类路径资源[org/quartz/impl/jdbcjobstore/tables_h2.sql],因为它不存在   spring使用Java,如何确定来自tomcat Web服务器的出站服务调用?   java获取多个同名的XML元素JAXB   java使用Ant从同一代码库构建Swing和Android应用程序   JComponent的java重绘方法不起作用   java目标不可访问,标识符“beanName”解析为null   smtp是否有支持esmtp管道的java api?   java如何在Spring中自动连接业务对象   java在Hibernate中没有其他保存实体的方法吗?   针对两个客户机的SpringJavaWeb应用程序项目开发   使用split的java标记化输入