Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
products:laboratory_iot_c:exp56 [2024/12/04 20:27] – создано labuser30products:laboratory_iot_c:exp56 [2024/12/05 11:11] (текущий) – [Программный код эксперимента] labuser30
Строка 9: Строка 9:
 ==== Программный код эксперимента ==== ==== Программный код эксперимента ====
  
-<file python Exp56.py[enable_line_numbers="2", start_line_numbers_at="1"]> +<file arduino Exp56.ino[enable_line_numbers="2", start_line_numbers_at="1"]> 
-import network+#include <ESP8266WiFi.h>
  
-wlan = network.WLAN(network.STA_IF# create station interface +void setup() { 
-wlan.active(True      # activate the interface +  Serial.begin(9600); 
-wlans = wlan.scan()             # scan for access points+  Serial.println(); 
 +  WiFi.mode(WIFI_STA); 
 +  WiFi.disconnect()
 +  delay(500); 
 +}
  
-for i in wlans+void loop() { 
-    print(i)+  Serial.println("Scan start"); 
 +  int n = WiFi.scanNetworks(); 
 +  Serial.println("Scan done"); 
 +  if (n == 0) { 
 +      Serial.println("no networks found"); 
 +  } else { 
 +    Serial.print(n); 
 +    Serial.println(" networks found"); 
 +    for (int = 0; i < n; ++i) { 
 +      Serial.print(i + 1); 
 +      Serial.print(""); 
 +      Serial.print(WiFi.SSID(i)); 
 +      Serial.print(" ("); 
 +      Serial.print(WiFi.BSSIDstr(i)); 
 +      Serial.print(", "); 
 +      Serial.print(WiFi.channel(i)); 
 +      Serial.print(", "); 
 +      Serial.print(WiFi.RSSI(i)); 
 +      Serial.print(", "); 
 +       
 +      switch(WiFi.encryptionType(i)) { 
 +        case AUTH_OPEN: Serial.print("OPEN, "); 
 +        case AUTH_WEP: Serial.print("WEP, "); 
 +        case AUTH_WPA_PSK: Serial.print("WPA-PSK, "); 
 +        case AUTH_WPA2_PSK: Serial.print("WPA2-PSK, "); 
 +        case AUTH_WPA_WPA2_PSK: Serial.print("WPA/WPA2-PSK, "); 
 +        case AUTH_MAX: Serial.print("AUTH_MAX, "); 
 +      } 
 +       
 +      Serial.print(WiFi.isHidden(i)); 
 +      Serial.println(")"); 
 +    } 
 +  } 
 +  Serial.println(); 
 +  delay(30000); 
 +}
 </file> </file>
  
-Сначала мы подключаем стандартную библиотеку ''network''.  +Сначала мы подключаем стандартную библиотеку ''ESP8266WiFi''.  
-Создаем интерфейс в режиме клиента (наш микроконтроллер может работать и сам как точка доступа, работа в таком режиме будет рассмотрена позже). +Устанавливаем режим клиента (наш микроконтроллер может работать и сам как точка доступа, работа в таком режиме будет рассмотрена позже).  
-<code python[enable_line_numbers="2", start_line_numbers_at="3"]> +<code python[enable_line_numbers="2", start_line_numbers_at="6"]> 
-wlan = network.WLAN(network.STA_IF)+  WiFi.mode(WIFI_STA);
 </code> </code>
  
-Активируем интерфейс +Принудительно отключается от сети. 
-<code python[enable_line_numbers="2", start_line_numbers_at="4"]> +<code python[enable_line_numbers="2", start_line_numbers_at="7"]> 
-wlan.active(True +  WiFi.disconnect();
 </code> </code>
  
-Получаем список доступных сетей+В основном цикле получаем список доступных сетей
 <code python[enable_line_numbers="2", start_line_numbers_at="5"]> <code python[enable_line_numbers="2", start_line_numbers_at="5"]>
-wlans wlan.scan()+  int n WiFi.scanNetworks();
 </code> </code>
  
-Выводим список доступных сетей в терминал +Выводим список доступных сетей в терминал и ждем 30 секунд
-<code python[enable_line_numbers="2", start_line_numbers_at="5"]> +
-wlans = wlan.scan() +
-</code>+
  
 После этого в терминал будет выведен список сетей. В нашем случае это  После этого в терминал будет выведен список сетей. В нашем случае это 
 <code> <code>
-(b'SmartLife-8764', b'\x82}:{\x87d'1, -820, 0) +Scan start 
-(b'LakisAir'b'\xbc\xee{\x97\xb5\x1a', 1, -913, 0) +Scan done 
-(b'DIRECT-02-HP OfficeJet Pro 7740'b'\x1a`$gB\x02'6, -72, 3, 0) +7 networks found 
-(b'HP-Print-DF-Officejet 7610'b'\x10\xe7\xc6\xbb\x1a\xdf'6, -75, 3, 0) +1: TP-LINK_CF44_Ext (00:E0:20:68:5C:732, -78WPA/WPA2-PSK, 0) 
-(b'RTN16Log'b'\xbc\xee{\x97\xad\x10', 6, -843, 0) +2: TP-LINK_CF44 (C0:25:E9:38:CF:442, -85WPA/WPA2-PSK, 0) 
-(b'Calcifer'b'((]\x86\xf3\x98'6, -90, 3, 0) +3: 1125 (50:FF:20:0D:01:257-71WPA/WPA2-PSK, 0) 
-(b'HUAWEI Y6 2019'b'v`\xfap\\G', 11, -923, 0)+4: Freedom (18:31:BF:02:A2:008-47WPA/WPA2-PSK, 0) 
 +5: TP-Link_CFBB (B0:BE:76:88:CF:BB1, -90WPA/WPA2-PSK, 0) 
 +6: NEW_ASUS (04:D9:F5:ED:31:A013-80WPA/WPA2-PSK, 0) 
 +7: NEW_ASUS (54:A0:50:71:9E:B013, -90WPA/WPA2-PSK, 0)
 </code> </code>