以编程方式查找Arduino草图的名称?

以编程方式查找Arduino草图的名称?,arduino,eeprom,Arduino,Eeprom,我想确定在我的Arduino Leonardo上运行的Arduino草图的名称。因此,当我设置Arduino时,我可以更改文件名,并让草图自动更改脚本中的数字 这可能吗 为了了解我们为什么要这样做,我们必须提供50个Arduinos,而不是手工编辑一堆脚本,我宁愿更改文件名 我不知道如何做我想做的事情,但为了向旁观者表示诚意,我在Arduino上设置EEPROM的代码如下: #include <EEPROM.h> #include "EEPROMAnything.h" // beg

我想确定在我的Arduino Leonardo上运行的Arduino草图的名称。因此,当我设置Arduino时,我可以更改文件名,并让草图自动更改脚本中的数字

这可能吗

为了了解我们为什么要这样做,我们必须提供50个Arduinos,而不是手工编辑一堆脚本,我宁愿更改文件名

我不知道如何做我想做的事情,但为了向旁观者表示诚意,我在Arduino上设置EEPROM的代码如下:

#include <EEPROM.h>
#include "EEPROMAnything.h"

// begin EDIT ME

char CONFIG_NUMBER[]="##"; // Config Number goes here

// end EDIT ME

char IPADDRESS[]="XX.XX.XX.XXX";
char APN[]="myapn";

const int buflen = 32;

struct config_t {
  char model[buflen];
  char serial_num[buflen];
  char ipaddress[buflen];
  char apn[buflen];
}configuration;

int ee_addr=0;


boolean registrationDone = false;

void setup(){
    Serial.begin(115200);
    Serial.println(F("Starting Up"));

}

void loop()
{
  config_t configuration;
  strcpy(configuration.model, MODEL);
  strcpy(configuration.serial_num, SERIAL_NUM);
  strcpy(configuration.ipaddress, IPADDRESS);
  strcpy(configuration.apn, APN);
   if (!registrationDone){
    EEPROM_writeAnything(ee_addr,configuration);
  registrationDone = true;
  }
  EEPROM_readAnything(ee_addr, configuration);
  Serial.println(F("Settings"));
  Serial.println(String(configuration.model));
  Serial.println(String(configuration.serial_num));
  Serial.println(String(configuration.ipaddress));
  Serial.println(String(configuration.apn));
  delay(5000);
}
#包括
#包括“EEPROMAnything.h”
//开始编辑我
字符配置号[]=“##”;//配置号在这里
//结束编辑我
字符IP地址[]=“XX.XX.XX.XXX”;
char APN[]=“myapn”;
常数int buflen=32;
结构配置{
煤焦模型[buflen];
字符序列号[buflen];
字符地址[buflen];
char-apn[buflen];
}配置;
int ee_addr=0;
布尔注册完成=假;
无效设置(){
序列号开始(115200);
Serial.println(F(“启动”);
}
void循环()
{
配置配置;
strcpy(配置、模型、模型);
strcpy(configuration.serial\u num,serial\u num);
strcpy(configuration.ipaddress,ipaddress);
strcpy(configuration.apn,apn);
如果(!注册完成){
EEPROM_写入内容(ee_地址、配置);
注册完成=真;
}
EEPROM_readAnything(ee_地址、配置);
Serial.println(F(“设置”);
Serial.println(String(configuration.model));
Serial.println(字符串(configuration.Serial_num));
Serial.println(字符串(configuration.ipaddress));
Serial.println(String(configuration.apn));
延迟(5000);
}
提前感谢您的任何想法! Sara

我还没有测试过这个,但它似乎做了你想做的事情


在我看来,一个更容易维护的解决方案是使用一个外部的.h文件,该文件定义了一个ID号,然后将其包含在草图中。然后,您可以编写一个桌面宏,在设置每个电路板之前增加.h文件中定义的数字。

那么您要做的是让50个Arduinos都运行相同的脚本,但上载一些识别号以区分它们?您是否必须通过更改文件名来实现这一点(是否需要一个不同的解决方案—不涉及更改脚本—就足够了)?是的—我喜欢skinnyTOD的解决方案,因为它可以做到这一点。谢谢令人惊叹的!我目前正在供应Arduinos,所以这听起来像是我的答案。非常感谢!