import time
import micropython
import machine
from machine import Pin
from time import sleep
LED1 = Pin(3,Pin.OUT)
pin = Pin(4, Pin.IN, Pin.PULL_UP)
# Wenn der ESP32 aufwacht
#if machine.reset_cause() == machine.DEEPSLEEP_RESET:
# # Hier können Sie Code platzieren, der nach dem Aufwachen ausgeführt wird.
# print("Aus dem Deep Sleep aufgewacht.")
# Define globals for Timers -> max 4 Timer on ESP32 possible
timer1 = machine.Timer(0)
timer2 = machine.Timer(1)
timer3 = machine.Timer(2)
# Timer Call
def _Init_Task(timer1):
# Final print to finish initialization
print("")
print("Initialisierung = Done")
print("")
# Timer Call
def OS_Task_1(timer2):
# +++++++++++++++++++ Diagnose +++++++++++++++++++++++++++++++++++++++++++
# Check connection status: NETWORK
print("1 sec")
# Timer Call
def OS_Task_2(timer3):
# +++++++++++++++++++ Main Function +++++++++++++++++++++++++++++++++++++++++++
# Read battery Voltage = 18650 LI
# Read soil humity Sensor = v1.2
# Send Battery Voltage = ioBroker MQTT
# Send soil humidty value = ioBroker MQTT
print("5 sec")
# Toggle LED
if LED1.value == 0:
LED1.value(1)
else:
LED1.value(0)
# Deep Sleep einstellen (in Mikrosekunden umrechnen)
sleep_time = 10 # 30 sec
print("Gehe in Deep Sleep für 30 sec...")
time.sleep(5) # Geben Sie dem Ausgabe-Stream Zeit, die Meldung zu zeigen
# In den Deep Sleep-Modus versetzen
# disable pull-up and put the device to sleep for 10 seconds
pin.init(pull=None)
# In den Deep Sleep-Modus versetzen
machine.deepsleep(sleep_time)
timer1.init(period=1000, mode=machine.Timer.ONE_SHOT, callback=_Init_Task)
timer2.init(period=1000, mode=machine.Timer.PERIODIC, callback=OS_Task_1)
timer3.init(period=5000, mode=machine.Timer.PERIODIC, callback=OS_Task_2)