import machine
import time

led = machine.Pin(14, machine.Pin.OUT) #D5 pin14
button1 = machine.Pin(5, machine.Pin.IN, machine.Pin.PULL_UP)  #D1 pin5 

pm = machine.Pin(2, machine.Pin.OUT) #D4
pwm = machine.PWM(pm)
pwm.freq(50)
pwm.duty(0)
def map(x, in_min, in_max, out_min, out_max):
    return int((x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min)
def servo(pin, angle):
    pin.duty(map(angle, 0, 180, 20, 120))
servo(pwm, 0)

while True:
    if button1.value()==0:  #jika pin aktif
        led.value(not button1.value())
        servo(pwm, 15)
        
        time.sleep(5) #wait for seconds
        
    if (button1.value()==1):
        led.value(not button1.value())
        print(button1.value())
        servo(pwm, 90) #D8
        #time.sleep(1)


-------------------------------------
using ADC

from machine import I2C,SoftI2C, PWM, Pin, ADC

p0 = Pin(0, Pin.IN)#D3
p2 = Pin(2, Pin.OUT)#D4
import time

analog = ADC(0)

pm = machine.Pin(15, machine.Pin.OUT) #D8
pwm = machine.PWM(pm)
pwm.freq(50)
pwm.duty(0)
def map(x, in_min, in_max, out_min, out_max):
    return int((x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min)
def servo(pin, angle):
    pin.duty(map(angle, 0, 180, 20, 120))
servo(pwm, 0)


while True:
  analog_value = analog.read()   #reading analog pin
  print(analog_value)                   #printing the ADC value
  #analog_voltage = analog.read() * 3.3 / 4095

  button_state = p0.value()
  print(button_state)
  
  if analog_value>1000:
    p2.value(1)
    servo(pwm, 15)
    print("Alert...")
    time.sleep(2)
  else:
    p2.value(0)
    servo(pwm, 90)

#  if button_state == 0:
#    p2.value(1)
#  else:
#    p2.value(0)
    
  time.sleep(0.4)

-------------------------

import machine
import urequests 
from machine import Pin, SoftI2C
import network, time
import random
import json

HTTP_HEADERS = {'Content-Type': 'application/json'} 
THINGSPEAK_WRITE_API_KEY = 'WHP1EM2R4BMZQ81K'
THINGSPEAK_READ_API_KEY = 'RK96DJ6HYHC4L8KD'
ssid='AFFAN'
password='66666666'

# Configure ESP32 as Station
sta_if=network.WLAN(network.STA_IF)
sta_if.active(True)
if not sta_if.isconnected():
    print('connecting to network...')
    sta_if.connect(ssid, password)
    while not sta_if.isconnected():
     pass
print('network config:', sta_if.ifconfig()) 


reading1 = random.getrandbits(4)
var_readings = {'field1':reading1, 'field2':reading2, 'field3':reading3} 
request = urequests.post( 'http://api.thingspeak.com/update?api_key=' + THINGSPEAK_WRITE_API_KEY, json = var_readings, headers = HTTP_HEADERS )  
request.close() 
print(var_readings)