Wifi setup improved.

This commit is contained in:
Martin Brodbeck 2022-12-27 17:55:37 +01:00
parent 95d84a69a3
commit f764f7d612

View file

@ -1,42 +1,71 @@
#include <stdio.h>
#include <string>
#include "pico/stdlib.h"
#include "pico/cyw43_arch.h"
#define WIFI_SSID "Apis cerana"
#define WIFI_PASSWORD "2JkJEh2vptVT"
using std::string;
bool wifi_connect()
int wifi_setup(uint32_t country, const string &ssid, const string &pw)
{
if (cyw43_arch_init_with_country(country))
{
return 1;
}
cyw43_arch_enable_sta_mode();
printf("Connecting to WiFi...\n");
if (cyw43_arch_wifi_connect_timeout_ms(WIFI_SSID, WIFI_PASSWORD, CYW43_AUTH_WPA2_AES_PSK, 30000))
if (cyw43_arch_wifi_connect_async(ssid.c_str(), pw.c_str(), CYW43_AUTH_WPA2_MIXED_PSK))
{
printf("Failed to connect.\n");
return false;
return 2;
}
int flashrate = 1000;
int status = CYW43_LINK_UP + 1;
while (status >= 0 && status != CYW43_LINK_UP)
{
int status_new = cyw43_tcpip_link_status(&cyw43_state, CYW43_ITF_STA);
if (status_new != status)
{
status = status_new;
flashrate = flashrate / (status + 1);
printf("Connect status: %d %d\n", status, flashrate);
}
cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, 1);
sleep_ms(flashrate);
cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, 0);
sleep_ms(flashrate);
}
if (status < 0)
{
cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, 0);
}
else
{
printf("Connected.\n");
cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, 1);
}
return true;
return 0;
}
int main()
{
const string ssid{"Apis cerana"};
const string pw{"2JkJEh2vptVT"};
const uint32_t country{CYW43_COUNTRY_GERMANY};
stdio_init_all();
if (cyw43_arch_init())
wifi_setup(country, ssid, pw);
while (true)
{
printf("Failed to initialize\n");
return 1;
sleep_ms(1);
}
if (wifi_connect() == false)
{
return 1;
}
cyw43_arch_deinit();
}