# 'display' does not name a type (error message)

#### Deleted member 750607

Joined Dec 31, 1969
0
I got some new hardware...esp8266 12 e. My sketch is meant to parse data from a web site that tracks the International space station and print it in my small OLED. I have it working but only doing one reading in the serial monitor, then disconnecting. Getting updates automatically is ideal, but first I am trying to print the coordinates to my OLED. I have made some code for this purpose...theres a header file too...listed after the main code excerpt.

Im getting 'display' does not name a type for an error. Ive fiddled a lot with semi colons and brackets, so I don't think that's the issue. Also I am confident I have all my libraries downloaded, because the sketch worked when I was just printing to serial monitor...and it also the same corresponding libraries worked when I was printing other stuff on my OLED in other sketches that had nothing to do with this project.

Here's my code: (the error is on the last line which is "display.display ();"

MAIN code:
#include "USE_ESP8266.h"
#include <TimeLib.h>
char server [] = "api.open-notify.org";
void digitalClockDisplay();

#include <splash.h>
#include <gfxfont.h>
#include <SPI.h>
#include <Wire.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

#define OLED_RESET -1

const int OLEDPin = D2;

void setup ()
{
display.begin(SSD1306_SWITCHCAPVCC, 0X3C);
display.clearDisplay ();

Serial.begin(115200);
if (!configureNetwork()) //start the network
{
Serial.println("Failed to configure the network");
while(1)
{
delay(0); //halt; ESP8266 does not like infinity loop without a delay
}
}
int ret = client.connect(server, 80);
if (ret == 1)
{
Serial.println("Connected");
client.println("GET /iss-now.json HTTP/1.0"); //the http request
client.print("Host: "); client.println(server);
client.println("Connection: close");
client.println();
}
else
{
Serial.println("Connection failed, error was: ");
Serial.print(ret, DEC);
while(1)
{
delay(0); //halt; esp8266 does not like infinite loop without a delay

}
}
}

char timestampMarker[] = "\"timestamp\":";
char posMarker[] = "\"iss_position\":";

void loop ()
{
if (client.available())
{
if (id.equals("timestamp")) //start of timestamp
{
if (client.find(':')) //a ":" follows each identifier
{
unsigned long timestamp = client.parseInt();
setTime(timestamp);
digitalClockDisplay();

}
else
{
Serial.println("failed to parse timestamp.");
}
}
if (id.equals("iss_position")) //start of position data
{
if (client.find(':'))
{
while(client.peek () != '}' && client.find('"'))
{
float val = client.parseFloat ();
client.find ('"');
Serial.print(id + ":"); Serial.println(val, 4);
}
}
else
{
Serial.print("Failed to parse position data.");
}
}
}
if (!client.connected())
{
Serial.println();
Serial.println("disconnecting.");
client.stop();
while(1)
{
delay (0); //halt, esp8266 does not like loop w/o delay
}
}
}
{
String str = String("0") + digit; //put a zero in front of digit
return str.substring(str.length() - 2);
}

void digitalClockDisplay ()
{
String datestr = String(year()) + "-" + padDigits(month()) +
String timestr = String(hour()) + ":" + padDigits(minute()) +
Serial.println(datestr + " " + timestr);
}

display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println(datestr + " " + timestr);
display.display();
}
}
}

#include <SPI.h>
#include <ESP8266WiFi.h>

#include <splash.h>
#include <gfxfont.h>
#include <SPI.h>
#include <Wire.h>

const char ssid[] = "Home25";
WiFiClient client;

bool configureNetwork()
{
WiFi.mode(WIFI_STA);
while (WiFi.status() != WL_CONNECTED)
{
delay (1000);
Serial.print("Waiting for connection to "); Serial.println(ssid);
}
return true;
}

Last edited by a moderator:

#### Deleted member 750607

Joined Dec 31, 1969
0
Also... I switched the problematic section to this

Code:
{
Adafruit_SSD1306 display.println(datestr + " " + timestr);
}

and when I do that, the error is "expected unqualified-id before '{' token" ...on the line of the top bracket

#### djsfantasi

Joined Apr 11, 2010
7,843
The object display must be declared before you can use its methods. In your first sketch, before you reference “display” as in “display.begin()”, you need to define display. Like this:

Then you can use the methods associated with “display”.

display.begin(SSD1306_SWITCHCAPVCC, 0X3C);​
display.clearDisplay ();​

#### Deleted member 750607

Joined Dec 31, 1969
0
The object display must be declared before you can use its methods. In your first sketch, before you reference “display” as in “display.begin()”, you need to define display. Like this:

Then you can use the methods associated with “display”.

display.begin(SSD1306_SWITCHCAPVCC, 0X3C);​
display.clearDisplay ();​
now it says "stray '\342' in program"

#### djsfantasi

Joined Apr 11, 2010
7,843
now it says "stray '\342' in program"
Sounds like another problem.

#### Deleted member 750607

Joined Dec 31, 1969
0
Sounds like another problem.
its highlighting this line with that error message

Code:
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

#### Deleted member 750607

Joined Dec 31, 1969
0
Sounds like another problem.
I got past that point, but its saying error compiling for NODE MCU....etc...so im assuming my code is somehow flawed probably in structure...I really just slapped together some different parts from other sketches and hoped for the best. I think something is really wrong with the whole thing...

#### djsfantasi

Joined Apr 11, 2010
7,843
I got past that point, but its saying error compiling for NODE MCU....etc...so im assuming my code is somehow flawed probably in structure...I really just slapped together some different parts from other sketches and hoped for the best. I think something is really wrong with the whole thing...
I agree. That line appears to be the object definition I was referring to. This, if you added the line from my post, you’re duplicating the definition.

Sorry, I can’t help much more today... it’s late and bedtime and I’m on vacation so can only respond in the evening (my time).

#### Deleted member 750607

Joined Dec 31, 1969
0
I agree. That line appears to be the object definition I was referring to. This, if you added the line from my post, you’re duplicating the definition.

Sorry, I can’t help much more today... it’s late and bedtime and I’m on vacation so can only respond in the evening (my time).
thanks for the help. im also retiring for the night, until tomorrow. surprisingly difficult to find the help im looking for online.

#### geekoftheweek

Joined Oct 6, 2013
692
How about the whole code? The stray '\342' in program pretty much means somewhere there is the combination '\342' in the program and the compiler doesn't know what to make of it.

'expected unqualified-id before '{' token' is usually due to either a function declaration missing, or a missing if, else, for, etc...

More or less your formatting is off somewhere and until you get that right it's going to show more errors than there really are.

xox

#### BobaMosfet

Joined Jul 1, 2009
1,854
@hbasile91 Welcome to learning how to understand your compiler/interpreter error codes. Just remember- they are very literal.