【问题标题】:Why i get Generator object at xxxxxx?为什么我在 xxxxxx 得到 Generator 对象?
【发布时间】:2022-11-11 11:33:22
【问题描述】:

嘿,我从为 micropython 编写的库 CT 传感器中编写了这段代码,这是库的链接:

https://github.com/alisonsalmeida/emonlib-micropython

from machine import Pin, ADC
import utime
from emonlib import Emonlib
from time import sleep
adc = ADC(0)
ct = Emonlib
ct.current(object, adc, 10)
cd=  ct.calc_current_rms(10,2)
while True:
  
  print(cd)
  sleep(0.5)

我不知道如何获得当前 RMS 的值,我对 python 很陌生,

你能帮我学习如何在那个库上工作吗? 我还没有在网上找到任何东西,我几周以来一直在尝试:(

【问题讨论】:

  • 明显的错误是 ct = Emonlib 设置 ct 等于班级Emonlib,当你想做的是创建一个实例班级:ct = Emonlib()
  • 嘿@nekomatic,非常感谢您的回答和建议,我相应地更改了代码:from machine import Pin, ADC import utime from emonlib import Emonlib from time import sleep import machine import time from math import pow, sqrt adc = ADC(0) # Initialization ADC ct = Emonlib() # Initialization Library ct.current(adc, 10) #Pin, calibration Irms = ct.calc_current_rms(1000) # Sample while True: print(Irms) sleep(0.5) 但我仍然有同样的问题,输出是:<generatot object 'calc_current_rms' at 3fff0870>

标签: sensors esp8266 transformer-model micropython


【解决方案1】:

我很幸运有一个帮助我的朋友。 这应该足以作为一个起点

from Emonlib import Emonlib
import uasyncio
from machine import Pin

async def main():
    emon = Emonlib() 
    p1 = Pin(1)
    await emon.current(p1,30)
    amps = await emon.calc_current_rms(1480)
    watt = amps * 220
    print(watt)

uasyncio.run(main())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多