Pico Wireless: WiFi Network scan example

pull/328/head
Phil Howard 2022-03-29 10:03:23 +01:00
rodzic 732e59b314
commit 30faa0966d
3 zmienionych plików z 75 dodań i 0 usunięć

Wyświetl plik

@ -2,3 +2,4 @@ include("${CMAKE_CURRENT_LIST_DIR}/demo.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/rgb_http.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/cheerlights.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/sdcard_http.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/wifi_networks.cmake")

Wyświetl plik

@ -0,0 +1,14 @@
add_executable(
wireless_networks
wifi_networks.cpp
)
# enable usb output, disable uart output
pico_enable_stdio_usb(wireless_networks 1)
pico_enable_stdio_uart(wireless_networks 1)
# Pull in pico libraries that we need
target_link_libraries(wireless_networks pico_stdlib pico_wireless)
# create map/bin/hex file etc.
pico_add_extra_outputs(wireless_networks)

Wyświetl plik

@ -0,0 +1,60 @@
#include <stdio.h>
#include <string.h>
#include <math.h>
#include "pico/stdlib.h"
#include "hardware/uart.h"
#include "hardware/gpio.h"
#include "hardware/spi.h"
#include "pico_wireless.hpp"
#include <chrono>
#include <sstream>
#include <iomanip>
using namespace pimoroni;
PicoWireless wireless;
int main() {
stdio_init_all();
wireless.init();
sleep_ms(500);
printf("firmware version Nina %s\n", wireless.get_fw_version());
uint8_t* mac = wireless.get_mac_address();
printf("mac address ");
for(uint i = 0; i < WL_MAC_ADDR_LENGTH; i++) {
printf("%d:", mac[i]);
}
printf("\n");
while (true) {
int networks = wireless.get_scan_networks();
printf("Found %d network(s)\n", networks);
for(auto network = 0; network < networks; network++) {
std::string ssid = wireless.get_ssid_networks(network);
wl_enc_type enc_type = wireless.get_enc_type_networks(network);
switch(enc_type) {
case ENC_TYPE_WEP:
printf("%s (WEP)\n", ssid.c_str());
break;
case ENC_TYPE_TKIP:
printf("%s (TKIP)\n", ssid.c_str());
break;
case ENC_TYPE_CCMP:
printf("%s (CCMP)\n", ssid.c_str());
break;
case ENC_TYPE_UNKNOWN:
printf("%s (UNKNOWN)\n", ssid.c_str());
break;
default:
printf("%s\n", ssid.c_str());
break;
}
}
sleep_ms(5000);
}
return 0;
}