ESP8266 Non-OS SDK开发应用之一 — 控制水泵定时浇花(带源码)

esp8266做到现在,该应用一下了,就做了个定时浇花的。

原理上不外乎该系列前面的文章,多加了一个闹铃设置程序。并且在tcp server和MQTT配置里加上了设置方式。

硬件上除了自己打板的esp8266-01继电器控制板,另外需要一个小板子用来插接控制板和水泵,水泵的两极需要电容和续流二极管,否则继电器工作会受影响。供电部分因为是四套控制装置,总电流峰值会达到近4A,所以用了个5V6A的电源。

总的来说,硬件上集合了浪涌防护,反接保护,短路保护,继电器续流保护,手动复位按键,复位电容泄放二极管,多IO口引出,多取电接口,软件上有flash参数读写保护,参数序列化掉电恢复,内存允许范围内可定义多组闹铃(一个闹铃占12字节空间,上百组没问题),ntp时间同步,自动域名解析,web配置,tcp server配置服务,tcp client状态上报,MQTT客户端状态发布和控制命令订阅等等。这里只重点说下闹铃功能编码。

闹铃设置支持MQTT推送设置,支持TCP server命令控制,可以按时、分、秒、日、星期重复。闹铃结构体,包含成员:ID,重复模式,开始时间,结束时间,重复间隔(在某些重复模式下有效):

1

2

3

4

5

6

7

typedef struct STAlarm{

uint8 ID;

EPepeatMode RptMode;

uint32 Start;

uint32 Stop;

uint32 RptIntvl; //<0 error, =0 for no repeat, >0 for seconds wait to realarm

}STAlarm;

用一个重复的系统定时任务进行闹铃响应检测,在定时任务回调函数里进行闹铃判断、ntp同步等,该定时任务可以根据所需要的定时精度进行宏设定,比如要实现秒级的闹铃,可将定时任务的间隔设置小于1000,但是不能太小,否则系统频繁触发定时任务,而且注意该定时任务并不精确,因而不能指望闹铃的时间准确,包括ntp时间同步也不精确,只是期望获得日期信息。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

void ICACHE_FLASH_ATTR

AlarmTimerCB(){

LOCAL uint32 sntpQueryCtn = 0;

if(sntpQueryCtn == 0 || timeStamp==0){ </

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本项目实现从上位机软件选择湿度传感器(湿度传感器或碳棒)和水形式(潜水泵或电池阀), 同时返回土壤湿度、室内温度、湿度到上位机上显示。 主要部件: 自动系统控制器 1个 Micro USB线 1根 DHT11(DHT11数据手册)温湿度传感器 1个 土壤湿度传感器 1个 模拟接口转数字接口传感器连接线 2根 潜水泵 1个(注意:潜水泵必须在水中使用,不能露出水面!) 潜水泵连接线 1根 主板电连接线 1根 橡胶水管 1米 安装步骤: 1、先将水泵的连接头接到控制器的Solenoid Valve端子上,蓝色接负极(-)棕色接正极(+),然后将电连接头接到PWRIN端子上,黑色接负极(-)红色接正极(+)。 2、将控制板安装到外壳底板上,然后将Moisture Sensor(土壤湿度传感器)插到传感器接口上,这里使用橙色传感器连接线,注意方向,传感器在控制器上的默认端口为模拟口2。 3.将DHT11温湿度传感器插到传感器接口上,传感器在控制器上的默认端口为数字口9。 4、使用Micro USB线连接电脑,初次使用需要安装USB驱动程序,先去下载Arduino最新的IDE: https://arduino.googlecode.com/files/arduino-1.0.1-windows.zip 5、使用Micro USB线将程序下载到主板上 7、将水装到水桶或水盆里,放在离盆较近的位置,把配的水管插到潜水泵上然后置于水中,必须保证蓄水充足,以供水(注意潜水泵必须在水中使用,在空气中使用会导致损坏)。 8、将水泵和电池盒(或者电适配器)连接到水泵接口和电接口上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值