如何通过ESP8266 / NodeMCU通过Internet和HTTPS将数据写入InfluxDB?

时间:2019-06-07 17:41:57

标签: https esp8266 influxdb arduino-esp8266

我想使用NodeMCU MCU和自签名证书通过Internet安全地将数据发送到InfluxDB。

我发现这个库似乎可以完成此任务,但是会出现编译错误,更多内容请参见-> https://medium.com/@teebr/iot-with-an-esp32-influxdb-and-grafana-54abc9575fb2

该库似乎仅使用HTTP->我误会了吗? https://www.arduinolibraries.info/libraries/esp8266-influxdb

使用上述TEEBR的第一个库中的示例,我得到此错误编译-关于如何修复的任何建议?这可以在我的NodeMCU上运行吗?

谢谢

C:\ Users \ Jason \ Documents \ Arduino \ libraries \ Influx-Arduino-master \ InfluxArduino.cpp:1:24:致命错误:HTTPClient.h:没有这样的文件或目录

#include                         ^ 编译终止。

退出状态1 主板NodeMCU 1.0(ESP-12E模块)的编译错误。

我的代码

//https://medium.com/@teebr/iot-with-an-esp32-influxdb-and-grafana-54abc9575fb2
#include <WiFi.h>
#include "InfluxArduino.hpp"
#include "InfluxCert.hpp"

InfluxArduino influx;


//connection/ database stuff that needs configuring
char WIFI_NAME[] = "ssid";
const char WIFI_PASS[] = "password!";
const char INFLUX_DATABASE[] = "db_name";
const char INFLUX_IP[] = "10.10.101.101";
const char INFLUX_USER[] = "db_name"; //username if authorization is enabled.
const char INFLUX_PASS[] = "Password"; //password for if authorization is enabled.
const char INFLUX_MEASUREMENT[] = "FromESP8266"; //measurement name for the database. (in practice, you can use several, this example just uses the one)


unsigned long DELAY_TIME_US = 5 * 1000 * 1000; //how frequently to send data, in microseconds
unsigned long count = 0; //a variable that we gradually increase in the loop

void setup()
{   
    Serial.begin(115200);

    WiFi.begin(WIFI_NAME, WIFI_PASS);
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }

    Serial.println("WiFi connected!");
    influx.configure(INFLUX_DATABASE,INFLUX_IP); //third argument (port number) defaults to 8086
    influx.authorize(INFLUX_USER,INFLUX_PASS); //if you have set the Influxdb .conf variable auth-enabled to true, uncomment this
    influx.addCertificate(ROOT_CERT); //uncomment if you have generated a CA cert and copied it into InfluxCert.hpp
    Serial.print("Using HTTPS: ");
    Serial.println(influx.isSecure()); //will be true if you've added the InfluxCert.hpp file.
} 

void loop()
{   
    unsigned long startTime = micros(); //used for timing when to send data next.

    //update our field variables
    float dummy = ((float)random(0, 1000)) / 1000.0;
    count++;

    //write our variables.
    char tags[32];
    char fields[32];

    sprintf(tags,"new_tag=Yes"); //write a tag called new_tag
    sprintf(fields,"count=%d,random_var=%0.3f",count,dummy); //write two fields: count and random_var
    bool writeSuccessful = influx.write(INFLUX_MEASUREMENT,tags,fields);
    if(!writeSuccessful)
    {
        Serial.print("error: ");
        Serial.println(influx.getResponse());
    }

    while ((micros() - startTime) < DELAY_TIME_US)
    {
      //wait until it's time for next reading. Consider using a low power mode if this will be a while.
    }
}

老读者,第一次张贴-感谢您过去的所有帮助!

0 个答案:

没有答案