0

我刚买了一个带有 Grove Starter Kit Plus 的Intel Edison Breakout Board Kit我想编写一个程序,为电路板提供一个 IP 地址,检查房间内的温度,如果超过该温度,它会打开 LED。我可以检查 RGB 显示器的情况。当我将 USB OTG 端口连接到我的笔记本电脑时,wifi 连接被完美检测到,IP 地址被完美接收,温度控制工作正常。该程序按我的要求工作。现在的问题。我想执行相同的程序来拔出 USB 连接,所以我想让这个板独立于 PC,就像它是一个独立的设备一样

1)如果我将这个工作程序上传到板上,拔掉USB,当然只通过分线板​​上的插孔提供电源,它就不再工作了,并停止在“准备网络连接......”的消息上。但是英特尔爱迪生有一个集成的 wifi 模块,我真的无法理解为什么如果没有与我的笔记本电脑的 USB 连接的帮助,它就无法建立互联网连接。它出什么问题了?如何仅使用电源启动和执行该程序?这是我程序的设置函数(),我们没有到达循环(),所以我不会发布它

void setup()
{  
// ------ LCD IN ACTION ------ //  
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);

// setting the color for the connection
lcd.setRGB(colorR, colorG, colorB);
lcd.print("preparing network connection...");

// scroll 40 positions (string length) to the left
// to move it offscreen left: 
for (int positionCounter = 0; positionCounter < 40; positionCounter++) 
{
    // scroll one position left:
    lcd.scrollDisplayLeft();
    // wait a bit:
    delay(350);
}


// ------ SERIAL CONNECTION ------ //

// opening the serial connection
//    Serial.begin(9600);      // initialize serial communication


// ------ SETTING I/O PINS ------ //

pinMode(potentiometer, INPUT);      // angle sensor's pin for input.

pinMode(12, OUTPUT);      // set the blue LED pin mode
pinMode(13, OUTPUT);      // set the red LED pin mode
pinMode(pinLed, OUTPUT);  // set the green LED pin mode


// ------ WIFI CONNECTION CONTROLS ------ //

// check for the presence of the wifi shield:
if (WiFi.status() == WL_NO_SHIELD) 
{
//        Serial.println("WiFi shield not present"); 
    while(true);        // don't continue
} 

// check firmware version
String fv = WiFi.firmwareVersion();
//    if( fv != "1.1.0" )
//        Serial.println("Please upgrade the firmware");


// ------ WIFI CONNECTION ------ //

// attempt to connect to Wifi network:
while (status != WL_CONNECTED) 
{ 
//        Serial.print("Attempting to connect to Network named: ");
//        Serial.println(ssid);                   // print the network name (SSID);

    // connect to WPA/WPA2 network. Change this line if using open or WEP network:    
    status = WiFi.begin(ssid, pass);
    // wait 3 seconds for connection:
    delay(3000);
}

server.begin();                           // start the web server on port 70
printWifiStatus();

在哪里

void printWifiStatus() {

  // print the SSID of the network you're attached to:
  //  Serial.print("SSID: ");
  //  Serial.println(WiFi.SSID());
  colorR = 255;
  colorG = 180;
  colorB = 0;
  lcd.clear();
  lcd.setRGB(colorR, colorG, colorB);
  lcd.print(WiFi.SSID());
  delay(3000);

  // print your WiFi shield's IP address:
  IPAddress ip = WiFi.localIP();
//  Serial.print("IP Address: ");
//  Serial.println(ip);
  colorR = 0;
  colorG = 255;
  colorB = 0;
  lcd.setCursor(0, 1);
  lcd.setRGB(colorR, colorG, colorB);
  lcd.print(ip);
  delay(3000);
  /*
  delay(5000);
  colorR = 180;
  colorG = 255;
  colorB = 255;
  lcd.setRGB(colorR, colorG, colorB);
  lcd.noDisplay();
  */

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  //  Serial.print("signal strength (RSSI):");
  //  Serial.print(rssi);
//  Serial.println(" dBm");
  // print where to go in a browser:
  //  Serial.print("To see this page in action, open a browser to http://");
  //  Serial.println(ip);
}


2)总是关于预加载程序的执行:如果我加载了ArduinoIDE的默认闪烁程序,拔下USB并给它供电它完美地工作[这个是正确自启动的,是的]但是如果我上传与 Serial.begin() 和 Serial.print("Arduino blinking") 相同的程序,如果没有 USB 连接到我的笔记本电脑,它就不再工作了[这就是我之前评论 Serial 东西的原因]。是不是因为板子很聪明,可以检测到在第一种情况下串行连接并没有真正发生?


3)关于程序存储的最后一个问题:当我使用 arduino IDE 编译程序时,它会给出与程序可用内存相关的内存使用百分比

Sketch is using 103.266 byte (1%) of program memory. The limit is 10.000.000 byte 

但是 Intel Edison 有一个 4GB eMMC 那么为什么只有 10MB 可供程序使用呢?程序上传到哪个内存?

提前感谢那些愿意提供帮助的人

4

3 回答 3

1

你知道我该怎么做才能检查它的存储位置吗?

您可以在串行通信终端上检查您的文件。如果您的文件可能位于其中的目录,则可以使用 linux 命令,例如:

cd directoryls

如果您知道名称,甚至可以“搜索”文件。你可能想检查这个网站

或者您可以使用 SCP、FTP 客户端程序(如WinSCP)来查看 Edison 上的文件。

于 2015-09-18T12:46:28.003 回答
0

如果我在板上上传这个工作程序

您确定您的程序已闪存到持久内存中吗?我不知道这个板子。在大多数情况下,当您的程序仅传输到 RAM 内存,而不是存储在 Flash 中时,就会出现此类问题。

Sketch 正在使用 103.266 字节 (1%) 的程序内存。限制为 10.000.000 字节

10MB RAM,还是闪存?

据我了解,您使用 Arduino + Edison 吗?

10MB限制对应哪个板子?Sketch 使用 103.266 字节:是 RAM 还是 Flash?

于 2015-04-23T05:52:08.300 回答
-1

尝试通过 putty 输入这些命令

ifconfig usb0 down
ifconfig wlan0 down
ifconfig usb0 up
ifconfig wlan0 up

那可能会

于 2015-08-11T01:34:56.443 回答