002-ESP32 WiFi 網路連接

回覆文章
cajhbb
系統管理員
文章: 903
註冊時間: 2018年 6月 30日, 02:16

002-ESP32 WiFi 網路連接

文章 cajhbb »

002-ESP32 WiFi 網路連接
STA 模式 (Station) : ESP32 可連線至一路由器 (AP)
AP 模式 (Access Point) : 作為熱點讓其他設備連線至 ESP32
STA+AP模式 : 混和模式 (同時開啟 STA 與 AP 功能)
2021-11-21_144050.png
2021-11-21_144050.png (67.95 KiB) 已瀏覽 689 次
cajhbb
系統管理員
文章: 903
註冊時間: 2018年 6月 30日, 02:16

AP 模式 (Access Point)

文章 cajhbb »

AP 模式 (Access Point)
2021-11-21_144553.png
2021-11-21_144553.png (86.08 KiB) 已瀏覽 688 次
cajhbb
系統管理員
文章: 903
註冊時間: 2018年 6月 30日, 02:16

STA 模式 (Station)

文章 cajhbb »

STA 模式 (Station)
2021-11-21_144609.png
2021-11-21_144609.png (125.68 KiB) 已瀏覽 687 次
cajhbb
系統管理員
文章: 903
註冊時間: 2018年 6月 30日, 02:16

Hello World!!

文章 cajhbb »

import usocket as socket
import network
ssid = 'ESP01'
password = '12345678'
ap = network.WLAN(network.AP_IF)
ap.active(True)
ap.config(essid=ssid, password=password)
while ap.active() == False:
pass
print('Connection successful')
print(ap.ifconfig())
#---呼叫函式web_page()要用"""來包裹起來
def web_page():
html = """<html><head><meta name="viewport" content="width=device-width, initial-scale=1"></head>
<body><h1>Hello, World!</h1></body></html>"""
return html
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#''表示任何IP均可
s.bind(('', 80))
#限制5個連線
s.listen(5)
#隨時監控連線
while True:
conn, addr = s.accept()
print('Got a connection from %s' % str(addr))
request = conn.recv(1024)
print('Content = %s' % str(request))
#---回應函式web_page()
response = web_page()
conn.send(response)
conn.close()
2021-11-21_212413.png
2021-11-21_212413.png (4.72 KiB) 已瀏覽 685 次
2021-11-21_212532.png
2021-11-21_212532.png (6.26 KiB) 已瀏覽 685 次
cajhbb
系統管理員
文章: 903
註冊時間: 2018年 6月 30日, 02:16

WiFi sta模式-網路連接

文章 cajhbb »

WiFi sta模式-網路連接
1.先執行02_wifi_sta.py--->再到shell打 connect_wifi("ssid", "key")
2021-11-21_213012.png
2021-11-21_213012.png (53.28 KiB) 已瀏覽 684 次
cajhbb
系統管理員
文章: 903
註冊時間: 2018年 6月 30日, 02:16

ESP32 溫度感測(雲端)

文章 cajhbb »

ESP32 溫度感測(雲端)
2021-11-21_214743.png
2021-11-21_214743.png (145.33 KiB) 已瀏覽 679 次
03_dht_sample.py
三支腳的---溫溼度感測器(直接接不用接電阻)
from machine import Pin
from dht import DHT11
from time import sleep

dht11 = DHT11(Pin(14))

while True:
dht11.measure()
temp = dht11.temperature()
humid = dht11.humidity()
print("溫度: %.2f°C ; 濕度: %.2f%s" % (temp, humid,"%"))
sleep(1)
2021-11-23_155609.png
2021-11-23_155609.png (19.51 KiB) 已瀏覽 669 次
04_DHT_WebServer.py

代碼: 選擇全部

from machine import Pin
import dht
import usocket as socket
#連線至所在的基地台
connect_wifi("LAB-TP", "lablablablablab")
sensor = dht.DHT11(Pin(14))

def read_sensor():
  global temp, hum
  temp = hum = 0
  try:
    sensor.measure()
    temp = sensor.temperature()
    hum = sensor.humidity()
    if (isinstance(temp, float) and isinstance(hum, float)) or (isinstance(temp, int) and isinstance(hum, int)):
      msg = (b'{0:3.1f},{1:3.1f}'.format(temp, hum))

      # uncomment for Fahrenheit
      #temp = temp * (9/5) + 32.0

      hum = round(hum, 2)
      return(msg)
    else:
      return('Invalid sensor readings.')
  except OSError as e:
    return('Failed to read sensor.')

def web_page():
  html = """<!DOCTYPE HTML><html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
  <style>
    html {
     font-family: Arial;
     display: inline-block;
     margin: 0px auto;
     text-align: center;
    }
    h2 { font-size: 3.0rem; }
    p { font-size: 3.0rem; }
    .units { font-size: 1.2rem; }
    .dht-labels{
      font-size: 1.5rem;
      vertical-align:middle;
      padding-bottom: 15px;
    }
  </style>
</head>
<body>
  <h2>ESP DHT Server</h2>
  <p>
    <i class="fas fa-thermometer-half" style="color:#059e8a;"></i> 
    <span class="dht-labels">Temperature</span> 
    <span>"""+str(temp)+"""</span>
    <sup class="units">&deg;C</sup>
  </p>
  <p>
    <i class="fas fa-tint" style="color:#00add6;"></i> 
    <span class="dht-labels">Humidity</span>
    <span>"""+str(hum)+"""</span>
    <sup class="units">%</sup>
  </p>
</body>
</html>"""
  return html

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', 80))
s.listen(5)

while True:
  conn, addr = s.accept()
  print('Got a connection from %s' % str(addr))
  request = conn.recv(1024)
  print('Content = %s' % str(request))
  sensor_readings = read_sensor()
  print(sensor_readings)
  response = web_page()
  conn.send('HTTP/1.1 200 OK\n')
  conn.send('Content-Type: text/html\n')
  conn.send('Connection: close\n\n')
  conn.sendall(response)
  conn.close()

2021-11-23_160247.png
2021-11-23_160247.png (17.68 KiB) 已瀏覽 667 次
05_webserver.py

代碼: 選擇全部

from machine import Pin
import ESPWebServer as W3S

connect_wifi("LAB-TP", "lablablablablab")

W3S.begin(80)

while True:
    W3S.handleClient()
2021-11-23_163548.png
2021-11-23_163548.png (40.31 KiB) 已瀏覽 666 次
回覆文章