干货 | DIY 一个 micropython 的多功能无线电子钟

EEWORLD电子资讯 犀利解读技术干货 每日更新

一直想用micropython做点好玩的东西,但是因为时间问题,一直没有开始做。前一段时间用ESP8266做了一个多功能的电子钟,它具有时间显示、温湿度采集、气压采集、网络校时、网络查看等多种功能。数据记录在ESP8266内部的flash中,定时采集并保存,即使断电也可以通过锂电池继续采集数据。使用到的元件有:DHT11温湿度传感器,约3元DS1307时钟 + EEPROM模块,约3元BMP280气压传感器,6元水银开关,0.1元ESP8266开发板,15元TM1637数码管模块,20元,TP4056锂电池充电,0.5元5x7cm万用板,1元CH2插座、导线、排针、排母若干,1元BMP280可以换成的BMP180(BMP180已经停产),因为可能大家还有以前剩下的BMP180模块,接口都是I2C,换个库就可以。数码管使用了大号数码管模块,上面有4个1.8寸的数码管,这样远处也可以看的比较清晰。数码管需要4.5V以上才能点亮。水银开关是用来作为数码管方向检测,可以自动识别正反,如果不需要这个功能就可以不用。总成本约50元。大家可以根据自己的需要,增加其它传感器和功能,比如声音(噪声)、光线、太阳能供电等。元件一览

因为元件不多,所以没有单独做板,所有元件都焊接到一个万用板上,传感器使用排母连接,可以随时取下。焊接好的效果图如下:

全部传感器插上后的效果:

连接数码管模块、电池后的效果

运行效果

电源系统通过ESP8266模块的USB供电,它也是编程调试接口,系统可以使用手机的USB充电器供电。工作原理连接USB后,还可以给锂电池充电。USB断电后,由锂电池继续供电。但是锂电池电压较低,不足以点亮数码管,因此关闭数码管显示,但是可以继续采集传感器数据。通过ADC采集系统电压,当USB输入是5V,锂电池供电最高4.2V,通过电压就可以判断是USB供电还是锂电池供电。需要注意ESP8266的ADC最高输入电压是1V,因此需要进行合适的分压。ESP8266模块上已经有两个100K和220K电阻进行了分压,可以满足最高3V输入电压,考虑到USB是5V电压,还需要外加一个电阻。在USB供电时,可以通过Wifi连接到网络,并通过网络进行校准时间。ESP8266还可以作为主机,通过计算机、手机浏览器打开就可以查看当前传感器参数。更进一步,还可以通过浏览器设置系统参数,比如设置传感器采集时间间隔、控制传感器的开关、设置传感器校准参数等。GPIO分配ESP8266的GPIO比较少,需要合理分配:ADC电池电压采集GPIO14DHT11GPIO2LEDGPIO5SDAGPIO4SCLGPIO12CLK/TM1637GPIO13DIO/TM1637GPIO12水银开关检测此外,为了让ESP8266可以通过RTC唤醒,GPIO16需要连接到RST上。简单的测试程序网络部分还没有加上from machine import Pin, I2C, RTC, ADCled = Pin(2, Pin.OUT, value=1)import machineimport timeimport bmp280import dhtimport TM1637import DS1307i2c=I2C(sda=Pin(5), scl=Pin(4))ds=DS1307.DS1307(i2c)adc = ADC(0)rtc = RTC()b = bmp280.BMP280(i2c)dht11 = dht.DHT11(Pin(14))dir_pin=Pin(4, Pin.IN, Pin.PULL_UP)def getDir():dir_pin=Pin(4, Pin.IN, Pin.PULL_UP)dir = dir_pin()return dirtm=TM1637.TM1637(dio=Pin(13), clk=Pin(12))def init():rtc.irq(trigger=rtc.ALARM0, wake=machine.DEEPSLEEP)t = (adc.read() + adc.read()) // 2if t > 450:for i in range(4):tm.showDP(i)time.sleep_ms(500)tm.showDP(i, 0)init()old = 99while 1:sec=ds.Second()t = (adc.read() + adc.read()) // 2if t < 450:rtc.alarm(rtc.ALARM0, 2000)machine.deepsleep()else:if sec!=old:old=secmin=ds.Minute()hour=ds.Hour()if (sec%10) > 3:   # Timetm.shownum(hour*100+min)tm.showDP(1,sec%2)tm.showDP(2,sec%2)elif (sec%10) > 1: # Temperaturet = round(b.getTemp())tm.clear()if t < 0:tm._dat(0, 0x40)t = -tif t > 85:t = 85tm.showbit(t//10, 1)tm.showbit(t%10, 2)tm._dat(3, 0x39)else:              # Humiditytry:dht11.measure()time.sleep_ms(100)h = dht11.humidity()if h > 100:h = 100tm.clear()if h==100:tm.showbit(1, 0)tm.showbit(h//10, 1)tm.showbit(h%10, 2)tm._dat(3, 0x76)except:passtime.sleep_ms(50)

(0)

相关推荐

  • “物联网开发实战”学习笔记-(五)根据土壤湿度、环境温湿度和光照强度自动浇花

    研究场景需求 自动浇花这个场景,很明显是为了自动控制水泵,及时给植物补充水分.同时用户的目的并不只是浇水而已,他们真正想要的,是看到自己养的植物健康地生长. 植物生长需要的条件 环境温湿度条件 热带的 ...

  • 手把手带你制作WIFI智能开关.走进物联网-ESP8266学习日记(三)

    手把手带你制作WIFI智能开关.走进物联网-ESP8266学习日记(三) 2020-05-11 19:43:10 16点赞 152收藏 12评论 上一次我们初步认识了SDK编程和透传,给模组更新FW. ...

  • RoboMaster TT 无人机microPython编程.3

    只是积木的功能少而已,事实上,代码编写是少不了的. 这里我们用vscode来编写 设备快速连接(串口.网络.USB) 支持基于 MicroPython 的代码智能补全与语法检查 支持 MicroPyt ...

  • GD32E230 ADC注入通道

    外部触发输入的上升沿可以触发规则组或注入组的转换. 用于 ADC 规则通道的 规则通道的 外部触发 ,很多场景上我们可以使用外部触发读取ADC,比如控制无刷电机要采样电机每相的电流时就需要用到注入通道 ...

  • 市场上热门的六款RK3399系列板卡大PK,你更支持谁?

    大家好,我是人见人爱.花见花开的小月月.今天来给大家推荐市场上六款"性能超凡"的RK3399板子,哪一款实力最强?你最喜爱哪一款?欢迎留言! 1.NanoPC-T4 NanoPC- ...

  • ESP32-30引脚与36引脚对照版

    这个是36脚 这个是30的引脚 我做了一个简单的对比,就是绝大部分的引脚是可以用的, 就是有些引脚虽然36的引出来了,但是接了存储芯片,不建议使用. 而且30的引脚有两个GND的口 30 36 这是E ...

  • ESP32芯片IO解读

    我们使用一个开发板最重要得就是知道引脚得定义.所以我们有必要查到精确的资料,这篇文章很有用.也是我日后要查找得文章. 首先我们要明确一点,其实板子那么大,有用的就是这个核心的芯片这个芯片上面的引脚引出 ...

  • 【精品博文】stm32F4----DHT22(AM2302)数字温湿度传感器读取(六)

    经过了自己用FPGA来驱动DHT22,http://blog.chinaaet.com/xzy610030/p/5100051014 下面开始用STM32F4来读取温湿度了. 首先非常感谢他人的原创, ...

  • 干货 | DIY 一个 ARM 学习机

    我对底层的东西特别感兴趣.十多年前有了自己的电脑,一直保留DOS用了好些年.喜欢汇编,讨厌Java.接触的第一个单片机是AT89S52,下程序是用串口CTS/RTS以及DSR/DTR控制线来模拟SPI ...

  • 下一代PPT?尝试利用谷歌的bodyPix,DIY一个fastmask功能

    hi,大家好~我是shadow,一枚设计师/全栈工程师/算法研究员,目前主要研究方向是人工智能写作和人工智能设计,当然偶尔也会跨界到人工智能艺术,其他各种AI产品. 欢迎有兴趣的朋友添加我微信(文末) ...

  • 干货 | 自己动手 DIY 一个搭棚焊

    EEWORLD 电子资讯 犀利解读 技术干货 每日更新 找了个AM收音机中周(中频变压器),做个振荡器练练手.上一次做LC振荡器好象是八年前了.翻了翻书,决定用基极调谐的电路.三极管的偏置也简化了,振 ...

  • 纯干货!一个狠招,教你快速找到城市必买版块!

    很多粉丝朋友在后台留言,询问某个城市怎么样?哪里能买? 授人以鱼不如授人以渔,今天就教给大家一套我们日常调研的板块筛选方法, 学会了,你们自己看城市的时候也可以很快找到城市中有投资价值的板块. 我们G ...

  • 华为手机相册一个超好玩的功能,花粉都应该学习下

    前不久数码日记君介绍了华为手机的相册玩法得到许多花粉响应.而近期,数码日记君发现华为手机相册新增了一个功能.可以让拍摄的照片动起来,且我们还可以通过设置让照片自带音乐.对此,下面数码日记君就教花粉们如 ...

  • 【新提醒】DIY一个DTMB四菱天线,实战接收数字电视地面广播,终于可以免费看电视了!

     本帖最后由 ljlun 于 2020-10-19 09:39  翻箱倒柜,终于找到一条4.5m长的闭路电缆,还是以前撸东西卖家送的                       给天线焊上个母端接头( ...

  • 用电脑鼠标diy 一个发报机自动键

    用电脑鼠标diy一个发报机自动键 CW 所用的电键有 手键和自动键之分.简单说,手键就是一个常开的开关,发信时,短按发出"嘀"声,用"."表示,长按发出&quo ...

  • 干货!一个月就过中级经济师大神给你的备考建议!

    在初中级经济师职称考试的报考人群中,有一些考生学习时间比较自由,有充足的时间进行备考:一些考生因为工作.生活等琐事比较繁忙,学习时间较少:还有一部分考生因为基础比较薄弱或者学习能力差等原因,在报考时就 ...

  • DIY一个数控开关电源,你需要掌握这些知识

    想要成为一名合格的硬件工程师,熟练掌握电源知识至关重要-- 凡是在工作着的系统都必须要有电源,而电源是否可靠稳定的运行,则影响着整个系统的工作情况.那么,如何产生"干净"的电源?假 ...