从英特尔Edison开发板启动程序

时间:2015-04-23 02:20:43

标签: arduino embedded intel-edison

我刚用Grove Starter Kit Plus购买了Intel Edison Breakout Board Kit我想写一个程序,给电路板一个IP地址,检查一个房间的温度,如果超过该温度,它会打开一个LED 。我可以查看RGB显示器的用途。当我将USB OTG端口连接到我的笔记本电脑时,可以很好地检测到wifi连接,完美接收IP地址并且温度控制正常。该计划按我要求的方式运作。现在的问题。我想执行相同的程序拔掉USB连接,所以我想让这个板独立于PC,就像它是一个独立的设备一样 1)如果我在电路板上上传这个工作程序,拔掉USB,当然只需通过分线板​​上的插孔提供电源,它就不再工作了,并停在消息上并准备网络连接...... &#34 ;.但英特尔爱迪生有一个集成的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(&#34; Arduino闪烁&#34;)的相同程序,如果没有USB连接到我的笔记本电脑,它就不再工作了[这就是为什么我之前评论了串口的原因]。是因为电路板是如此智能,以至于在第一种情况下检测到串行连接并没有真正发生?


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

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

但英特尔爱迪生拥有4GB的eMMC,为什么程序只有10MB?上传程序的内存是什么?

提前感谢那些试图提供帮助的人

3 个答案:

答案 0 :(得分:1)

  

您知道我该如何检查存储位置?

您可以在串行通讯终端上查看文件。如果你的文件可能有目录,你可以使用linux命令:

cd directoryls

如果您知道名字,甚至可以“搜索”该文件。您可以查看this site

或者您可以使用SCP,FTP客户端程序(如WinSCP)查看爱迪生的文件。

答案 1 :(得分:0)

  

如果我在董事会上传这个工作程序

你确定你的程序闪存到持久性内存中吗?我不知道这个板子。在大多数情况下,当您的程序仅传输到RAM存储器但未存储在Flash中时会出现这种问题。

  

Sketch使用103.266字节(1%)的程序存储器。限制是   10.000.000字节

10MB RAM,还是闪存?

据我了解你使用Arduino + Edison?

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

答案 2 :(得分:-1)

尝试通过putty

输入这些命令
ifconfig usb0 down
ifconfig wlan0 down
ifconfig usb0 up
ifconfig wlan0 up

可能会这样做