数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1176|回复: 0

[Arduino] [esp8266_micropython] HC-SR501人体红外传感器数据读取与mqtt上报

[复制链接]
发表于 2023-7-23 11:08:27 | 显示全部楼层 |阅读模式

综述
供电电压最低为4.5v,请不要使用esp8266 3.3v引脚供电,否则传感器out引脚输出会不稳定。
工作原理请看文档截图。

代码

  1. import time
  2. from machine import Pin
  3. import network
  4. from umqtt.simple import MQTTClient
  5. import json
  6. import gc

  7. device_id = "esp0003"
  8. wifi_ssid='FAST_20CC'
  9. wifi_password='409409409'
  10. mqtt_serverip='192.168.1.113'
  11. mqtt_serverport=1883
  12. mqtt_clientid=device_id
  13. mqtt_publishtopic=b'espiot'

  14. message_template = {}
  15. message_template['source_device'] = mqtt_clientid
  16. message_template['target_device'] = 'server'
  17. message_template['msg_type'] = 'ReportHumanExists'

  18. # gpio-D1
  19. human=Pin(5,Pin.IN,Pin.PULL_UP)


  20. def connectionWifi(ssid, password):
  21.   wlan = network.WLAN(network.STA_IF)
  22.   wlan.active(True)
  23.   wlan.connect(ssid, password)
  24.   while True:
  25.     if not wlan.isconnected():
  26.             print ("connecting...")
  27.     else:
  28.       print('connected to network')
  29.       break
  30.     time.sleep(1)

  31. if __name__=='__main__':
  32.   print ("start")
  33.   
  34.   connectionWifi(wifi_ssid,wifi_password)
  35.   
  36.   client = MQTTClient(mqtt_clientid,mqtt_serverip,mqtt_serverport)
  37.   client.connect()
  38.   
  39.   while True:
  40.     time.sleep(3)
  41.     try:
  42.       humExists = human.value()
  43.       print (humExists)
  44.       message_template['humanExists'] = str(humExists)
  45.     except:
  46.       None
  47.    
  48.     client.publish(mqtt_publishtopic,json.dumps(message_template))
  49.    
  50.     gc.collect()
复制代码


文档

截图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-12-23 15:37 , Processed in 0.202801 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表