import machine
import time
from wifiesp import ESP
debug = False
device_id = 8266 # Device ID
poll_rate = 10 # Polling cloud with new data
# See "private" area from https://standards-oui.ieee.org/oui/oui.txt
mac = "00:00:6C:00:00:01" # ESP MAC
hostname = "beginner" # ESP hostname
target = "ponet.fi" # IP or FQDN of the backend (in the cloud)(ip?20.188.34.245)
ssid="Wokwi-GUEST" # WiFi network name
password = "" # WiFi password
potentiometer = machine.ADC(26)
conversion_factor = 3.3/65535
led = machine.Pin(17, machine.Pin.OUT)
LED_ON = True
time.sleep(1)
# UART is required to communicate with the ESP8266
# UART related Pico hardware settings, see Pico pinout.
# baudrate = 115200 => see ESP8266 documentation
# packet 8N1 => 8 data bits, No parity bit, 1 stop bit => ESP8266 documentation
# rxbuf size of receiving buffer
# Routine starts
wifi_conn = ESP(uart=0, baud=115200, txPin=0, rxPin=1, debug=debug)
# wifi_conn.testESP() # test Pico to ESP connection
# wifi_conn.checkESPVersion() # check ESP Version
# wifi_conn.listCmds() # list all available commands
# wifi_conn.availableRAM() # get available RAM
# wifi_conn.querySysRAM() # query sysRAM status
# wifi_conn.querySysFLASH() # query sysFLASH
# wifi_conn.listFiles() # list files in root directory, does not work
# wifi_conn.queryWiFiMode()
# wifi_conn.setWiFiMode(mode=0)
# wifi_conn.queryWiFiMode()
# wifi_conn.queryWiFiStatus()
# wifi_conn.queryMAC() # query the ESP mac
wifi_conn.setMAC(mac) # set the ESP mac
wifi_conn.setHostname(hostname) # set the ESP hostname
# wifi_conn.queryHostname() # query EPS hostname
# wifi_conn.queryMAC() # query the ESP mac
# wifi_conn.queryAPList(ssid)
wifi_conn.connectAP(ssid=ssid, pwd=password)
# wifi_conn.queryNetworkDetails()
# wifi_conn.queryWiFiStatus()
wifi_conn.httpGET(host=target, path="/projects/health/")
# wifi_conn.httpPOST(host=target, path="/projects/health/data", data='id=13&pot=32')
while True:
  raw = potentiometer.read_u16()
  volts = raw * conversion_factor
  print('Raw: {}'.format(raw), 'Voltage: {:.1f}V'.format(volts))
  # 'id=13&pot=32'
  msg = 'id=' + str(device_id) + '&' + 'pot=' + str(raw) 
  wifi_conn.httpPOST(host=target, path="/projects/health/data", data=msg)
  led.on()
  time.sleep_ms(200)
  led.off()
  time.sleep(poll_rate)