我一天的大部分时间都在工作,让电容式土壤传感器通过我的ESP32 DEVKITV1与我的Pi服务器上的IMOXDB设置进行通信。我已经成功地让我的设置读取传感器并连接到我家的WIFI,但我还没能让它与我的IMOXDB对话。
我正在使用库来处理由davidgs分叉的https://github.com/davidgs/ESP8266_Influx_DB_V2.这是我的第一个ESP32项目,自从15年前大学以来,我还没有接触过C......
我的设置:
我的ESP32代码:
#include "WiFi.h" #include "InfluxDbV2.h" //Setup variables and definitions //definitions for WIFI #define WIFI_SSID "redacted" #define WIFI_PASS "redacted" int status = WL_IDLE_STATUS;//initial status for setup start #define INFLUXDB_HOST "192.168.1.220"//pi_server static ip #define INFLUXDB_PORT 8086//port for influxdb on pi_server InfluxdbV2 influx(INFLUXDB_HOST, INFLUXDB_PORT); float asoilmoist=analogRead(34);//variable holding moisture reading for sensor 1 #define uS_TO_S_FACTOR 1000000ULL /* Conversion factor for micro seconds to seconds */ #define TIME_TO_SLEEP 600 /* Time ESP32 will go to sleep (in seconds) */ void setup() { Serial.begin(115200); //Serial Print Deactivated if not needed delay(10); //Connect to WIFI Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(WIFI_SSID); status = WiFi.begin(WIFI_SSID, WIFI_PASS); WiFi.setSleep(false);//to protect from it going to sleep //While it's connecting, print a . while (status != WL_CONNECTED) { Serial.print("."); delay(100); status = WiFi.begin(WIFI_SSID, WIFI_PASS); } //Success message once connected to wifi Serial.println("WiFi Connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); //influxdb setups influx.setOrg("default"); influx.setBucket("db_soil_moisture"); influx.setToken(); //Success message Serial.println("Setup complete"); } void loop() { Serial.println((String)"Sensor 1 Soil Mosture:="+asoilmoist); //Debug Only //Setup data to be written to db InfluxDataV2 measurement ("Soil_Moisture"); measurement.addTag("Sensor", "1"); measurement.addValue("Value", asoilmoist); //Write the data to table influx.write(measurement); delay(5000); //wait for it to write if slow esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR); //Go to Sleep for Time X Serial.println((String)"Going to sleep "+TIME_TO_SLEEP); //for debugging esp_deep_sleep_start(); }
我目前所犯的错误是:
Arduino: 1.8.13 (Linux), Board: "DOIT ESP32 DEVKIT V1, 80MHz, 921600, None"
/home/nathan/Arduino/test_soil_moisture_V2/test_soil_moisture_V2.ino: In function 'void setup()':
test_soil_moisture_V2:50:19: error: no matching function for call to 'InfluxdbV2::setToken()'
influx.setToken();
^
In file included from /home/nathan/Arduino/test_soil_moisture_V2/test_soil_moisture_V2.ino:3:0:
/home/nathan/Arduino/libraries/ESP8266_Influx_DB_V2/InfluxDbV2.h:28:8: note: candidate: void InfluxdbV2::setToken(String)
void setToken(String token);
^
/home/nathan/Arduino/libraries/ESP8266_Influx_DB_V2/InfluxDbV2.h:28:8: note: candidate expects 1 argument, 0 provided
exit status 1
no matching function for call to 'InfluxdbV2::setToken()'
我试图用NULL、()、“”和假字符串设置令牌。似乎什么都不管用。我已经潜入了第二次世界大战。cpp,XDBV2。h、 和InfluxDataV2。h文件试图解决这个问题,但我没有成功。
我希望有人能帮我指引正确的方向。
@谢谢你的回复。我将行设置为inflow。setToken(“SomeFakeToken”)
并删除了错误candidate expects 1参数,0提供了
,但它仍然无法正确编译。
然后我注意到行'null'没有声明在这个范围
if(_token==null||_token.length()
这是我整个周末都在处理的同一个错误。然后我想起了阅读C如何要求NULL和js如何使用null。我更新了IMOXDbV2.cpp并将
null
更改为NULL
,它终于编译了!
谢谢你的帮助!
我正在尝试从我创建的一个简单的联系人表单中插入数据。我正在使用phpMyAdmin 下面是PHP(出于安全考虑,我删除了define语句,但我可以毫无问题地建立到数据库的链接。) 当有人点击论坛上的submit按钮后,代码就会运行,据我所知,这是正常工作的。 该错误发生在php代码的末尾。正在输出“SLQ Insert Statement FAILD”,但未发布mysql错误。 我的数据库/表的设
我正在尝试使用Databricks的spark-csv2.10依赖关系将一个数据帧写入到HDFS的*.csv文件。依赖关系似乎可以正常工作,因为我可以将.csv文件读入数据帧。但是当我执行写操作时,我会得到以下错误。将头写入文件后会出现异常。 当我将查询更改为时,write工作很好。 有谁能帮我一下吗? 编辑:根据Chandan的请求,这里是的结果
问题内容: 这段代码曾经很好(在某种意义上,编译器没有抱怨): 从Swift 5.0开始,这会产生警告: 警告:不建议使用“ withUnsafeBytes”:请改用 我试着用所提出的方法,但我似乎无法缠斗到这最终需要。 如何以不推荐的方式编写此函数? 问题答案: 诀窍是使用函数: 尽管此功能适用于Swift 5.0,但显然存在一些问题。参见相关论坛讨论。
显然它无法解码数据。有什么想法吗?
我有一个名为df的数据库数据帧。我想将它作为csv文件写入S3存储桶。我有S3存储桶名称和其他凭据。我检查了这里给出的在线留档https://docs.databricks.com/spark/latest/data-sources/aws/amazon-s3.html#mount-aws-s3它说使用以下命令 但我有的是数据帧,而不是文件。怎么才能实现?