数码之家

 找回密码
 立即注册
搜索
查看: 1076|回复: 2

[Arduino] [esp8266_micropython] 光敏电阻传感器模块+看门狗

[复制链接]
发表于 2024-4-22 21:56:59 | 显示全部楼层 |阅读模式
# 接线

AO->A0
DO-D1
# 代码

  1. import  machine
  2. import time
  3. import network
  4. from machine import WDT,Pin
  5. import time
  6. import network
  7. from umqtt.simple import MQTTClient
  8. import json
  9. import gc

  10. device_id = "esp0007"
  11. wifi_ssid='FAST_20CC'
  12. wifi_password='409409409'
  13. mqtt_serverip='192.168.1.113'
  14. mqtt_serverport=1883
  15. mqtt_clientid=device_id
  16. mqtt_publishtopic=b'espiot'

  17. digital_pin = machine.Pin(5)
  18. adc_pin = machine.ADC(0)

  19. led=Pin(2,Pin.OUT)
  20. led.on()

  21. def connectionWifi(ssid, password):
  22.   wlan = network.WLAN(network.STA_IF)
  23.   wlan.active(True)
  24.   wlan.connect(ssid, password)
  25.   while True:
  26.     if not wlan.isconnected():
  27.       led.on()
  28.       time.sleep_ms(1000)
  29.       led.off()
  30.       time.sleep_ms(1000)
  31.     else:
  32.       print('connected to network')
  33.       led.on()
  34.       break

  35.   
  36. if __name__=='__main__':
  37.   print ("start")
  38.   
  39.   message_template = {}
  40.   message_template['source_device'] = mqtt_clientid
  41.   message_template['target_device'] = 'server'
  42.   message_template['msg_type'] = 'ReportLuminance'
  43.   
  44.   connectionWifi(wifi_ssid,wifi_password)
  45.   
  46.   client = MQTTClient(mqtt_clientid,mqtt_serverip,mqtt_serverport)
  47.   client.connect()
  48.   
  49.   wdt = WDT()
  50.   wdt.feed()
  51.   
  52.   count = 0
  53.   
  54.   while True:
  55.     digital_value = digital_pin.value()
  56.     adc_value = adc_pin.read()
  57.     wdt.feed()
  58.     print (digital_value)
  59.     print (adc_value)
  60.     message_template['digital'] = str(digital_value)
  61.     message_template['adc'] = str(adc_value)
  62.     wdt.feed()
  63.     wdt.feed()
  64.     client.publish(mqtt_publishtopic,json.dumps(message_template))
  65.     wdt.feed()
  66.     count = 0
  67.     while count < 50:
  68.       time.sleep_ms(100)
  69.       wdt.feed()
  70.       count = count + 1
  71.     gc.collect()

复制代码


# 结果


本帖子中包含更多资源

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

x
发表于 2024-4-23 19:49:55 来自手机浏览器 | 显示全部楼层
这里用到看门狗的目的是…?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-29 23:07:51 | 显示全部楼层
sufe08 发表于 2024-4-23 19:49
这里用到看门狗的目的是…?

重启路由器导致网络中断时,esp自动重启,阻塞在网络连接逻辑直到网络恢复。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-2 05:01 , Processed in 0.171601 second(s), 9 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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