Wifi Issue

gregstewart90
Posts: 59
Joined: Thu Jan 19, 2017 5:17 pm

Wifi Issue

Postby gregstewart90 » Mon Feb 06, 2017 11:28 pm

I am able to connect to a router with SSID "Test-Net" and passcode "passpass" with the Arduino code below.

Code: Select all

/*
 *  This sketch sends data via HTTP GET requests to data.sparkfun.com service.
 *
 *  You need to get streamId and privateKey at data.sparkfun.com and paste them
 *  below. Or just customize this script to talk to other HTTP servers.
 *
 */

#include <WiFi.h>

const char* ssid     = "Test-Net";
const char* password = "passpass";

const char* host = "data.sparkfun.com";
const char* streamId   = "....................";
const char* privateKey = "....................";

void setup()
{
    Serial.begin(115200);
    delay(10);

    // We start by connecting to a WiFi network

    Serial.println();
    Serial.println();
    Serial.print("Connecting to ");
    Serial.println(ssid);

    WiFi.begin(ssid, password);

    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }

    Serial.println("");
    Serial.println("WiFi connected");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());
}

int value = 0;

void loop()
{
    delay(5000);
    ++value;

    Serial.print("connecting to ");
    Serial.println(host);

    // Use WiFiClient class to create TCP connections
    WiFiClient client;
    const int httpPort = 80;
    if (!client.connect(host, httpPort)) {
        Serial.println("connection failed");
        return;
    }

    // We now create a URI for the request
    String url = "/input/";
    url += streamId;
    url += "?private_key=";
    url += privateKey;
    url += "&value=";
    url += value;

    Serial.print("Requesting URL: ");
    Serial.println(url);

    // This will send the request to the server
    client.print(String("GET ") + url + " HTTP/1.1\r\n" +
                 "Host: " + host + "\r\n" +
                 "Connection: close\r\n\r\n");
    unsigned long timeout = millis();
    while (client.available() == 0) {
        if (millis() - timeout > 5000) {
            Serial.println(">>> Client Timeout !");
            client.stop();
            return;
        }
    }

    // Read all the lines of the reply from server and print them to Serial
    while(client.available()) {
        String line = client.readStringUntil('\r');
        Serial.print(line);
    }

    Serial.println();
    Serial.println("closing connection");
}

I am unable to connect to the same router using the following c code.

Code: Select all

#include "freertos/FreeRTOS.h"
#include "esp_wifi.h"
#include "esp_system.h"
#include "esp_event.h"
#include "esp_event_loop.h"
#include "nvs_flash.h"
#include "driver/gpio.h"

esp_err_t event_handler(void *ctx, system_event_t *event)
{
    return ESP_OK;
}

void app_main(void)
{
    nvs_flash_init();
    tcpip_adapter_init();
    printf("hello world!!!");
    ESP_ERROR_CHECK( esp_event_loop_init(event_handler, NULL) );
    wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
    ESP_ERROR_CHECK( esp_wifi_init(&cfg) );
    ESP_ERROR_CHECK( esp_wifi_set_storage(WIFI_STORAGE_RAM) );
    ESP_ERROR_CHECK( esp_wifi_set_mode(WIFI_MODE_STA) );
    wifi_config_t sta_config = {
        .sta = {
            .ssid = "Test-Net",
            .password = "passpass",
            .bssid_set = 0
        }
    };
    ESP_ERROR_CHECK( esp_wifi_set_config(WIFI_IF_STA, &sta_config) );
    ESP_ERROR_CHECK( esp_wifi_start() );
    ESP_ERROR_CHECK( esp_wifi_connect() );

    gpio_set_direction(GPIO_NUM_4, GPIO_MODE_OUTPUT);
    int level = 0;
    while (1) {
        gpio_set_level(GPIO_NUM_4, level);
        level = !level;
        vTaskDelay(300 / portTICK_PERIOD_MS);
    }
}
I get the following output...

Code: Select all

ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0008,len:8
load:0x3fff0010,len:2388
load:0x40078000,len:6788
load:0x40080000,len:252
entry 0x40080034
[0;32mI (822) heap_alloc_caps: Initializing. RAM available for dynamic allocation:[0m
[0;32mI (822) heap_alloc_caps: At 3FFB6C40 len 000293C0 (164 KiB): DRAM[0m
[0;32mI (832) heap_alloc_caps: At 3FFE8000 len 00018000 (96 KiB): D/IRAM[0m
[0;32mI (853) heap_alloc_caps: At 4009C0DC len 00003F24 (15 KiB): IRAM[0m
[0;32mI (873) cpu_start: Pro cpu up.[0m
[0;32mI (885) cpu_start: Single core mode[0m
[0;32mI (898) cpu_start: Pro cpu start user code[0m
[0;32mI (1157) phy: phy_version: 258, Nov 29 2016, 15:51:07, 0, 0[0m
[0;32mI (2229) cpu_start: Starting scheduler on PRO CPU.[0m
tcpip_task_hdlxxx : 3ffba704, prio:18,stack:2048
hello world!!!I (2242) wifi: frc2_timer_task_hdl:3ffbc634, prio:22, stack:2048
I (2251) wifi: Init lldesc rx mblock:25
I (2251) wifi: Init lldesc rx ampdu len mblock:7
I (2255) wifi: Init lldesc rx ampdu entry mblock:4
I (2260) wifi: pp_task_hdl : 3ffc943c, prio:23, stack:8192
I (2265) wifi: rx_ba=1 tx_ba=1

I (2268) wifi: mode : sta (24:0a:c4:04:07:78)
I can connect to a different network with the above c code, but I need to connect to Test-Net. I have tried make erase_flash, but it yielded the same results after I reflashed it.

User avatar
kolban
Posts: 1683
Joined: Mon Nov 16, 2015 4:43 pm
Location: Texas, USA

Re: Wifi Issue

Postby kolban » Tue Feb 07, 2017 1:35 am

I'm just thinking out-loud ... but if your ESP32 and the same application (just changing the SSID and password) can connect to a different access point but when you try to connect to the access point associated with "Test-Net" it fails, then it might be worth rebooting the "Test-Net" access point. On occasion, especially after a LOT of connects and disconnects, I have managed to confuse my access point such that it works "oddly" until rebooted.

Also, what version of the ESP-IDF are you compiling with? I personally use the latest downloaded from Github master branch.
Free book on ESP32 available here: https://leanpub.com/kolban-ESP32

gregstewart90
Posts: 59
Joined: Thu Jan 19, 2017 5:17 pm

Re: Wifi Issue

Postby gregstewart90 » Tue Feb 07, 2017 3:48 am

Thanks for the reply. I did a git pull on the esp-idf, and it solved my problem.

Who is online

Users browsing this forum: Bing [Bot] and 134 guests