Здравствуйте.
В арсенале Nodemcu + HX711 + тензодатчик. Через Wifi подключаюсь к базе данных с помощью библиотеки MySQL_Connection и передаю данные каждую минуту. Через абсолютно разные периоды контроллер "повисает". Может через час, через 12, через сутки. Рекорд 3 дня беспрерывной работы.
Питание: USB 5в. от блок питания 2А.(зарядка от Самсунг), пробовал от Powerbank.
"Повисает" странно - данные не передаются, а в сети wifi продолжает отображаться.
Что делать, чтобы не зависало?)
В арсенале Nodemcu + HX711 + тензодатчик. Через Wifi подключаюсь к базе данных с помощью библиотеки MySQL_Connection и передаю данные каждую минуту. Через абсолютно разные периоды контроллер "повисает". Может через час, через 12, через сутки. Рекорд 3 дня беспрерывной работы.
Питание: USB 5в. от блок питания 2А.(зарядка от Самсунг), пробовал от Powerbank.
"Повисает" странно - данные не передаются, а в сети wifi продолжает отображаться.
Что делать, чтобы не зависало?)
Код:
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <HX711_ADC.h>
float calibration_factor = -3.79;
float tare;
float weight;
float h;
long lastMsg = 0;
const char* id_tbl = "value";
//WiFi setting
const char* ssid = "wifi";
const char* password_wifi = "012345678";
//MySQL database
char user[] = "user"; // MySQL user login username
char password[] = "password"; // MySQL user login password
char hostname[] = "hostname"; // change to your server's hostname/URL
// SQL запрос
char INSERT_SQL[] = "INSERT INTO database.%s (scale, drain) VALUES (%05.3f, %05.3f)";
char query[128];
WiFiClient client;
MySQL_Connection conn((Client *)&client);
HX711_ADC scale(5, 4);
void setup_wifi() {
delay(10);
Serial.println();
Serial.print("Подключение к ");
Serial.println(ssid);
WiFi.begin(ssid, password_wifi);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
randomSeed(micros());
Serial.println("");
Serial.println("WiFi подключен");
Serial.println("IP адрес: ");
Serial.println(WiFi.localIP());
setup_db();
}
void setup_db() {
IPAddress server_ip;
WiFi.hostByName(hostname, server_ip);
Serial.println(server_ip);
Serial.println("Подключение к базе данных");
while (conn.connect(server_ip, 3306, user, password) != true) {
delay(500);
WiFi.hostByName(hostname, server_ip);
Serial.print ( "." );
}
Serial.println("");
Serial.println("Соединение с SQL сервером установлено!");
}
void setup() {
Serial.begin(115200);
setup_wifi();
scale.begin();
long stabilisingtime = 2000; // tare preciscion can be improved by adding a few seconds of stabilising time
scale.start(stabilisingtime);
scale.setCalFactor(-696.9);
}
void loop() {
if (!client.connected()) {
setup_wifi();
}
scale.update();
long now = millis();
if (now - lastMsg > 60000) {
weight = scale.getData();
weight = (weight / 154.56);
h = (weight + 1);// random(1, 401) / 100.0;
sprintf(query, INSERT_SQL, id_tbl, weight, h);
Serial.println("Запись данных в базу.");
Serial.println(query);
MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
cur_mem->execute(query);
delete cur_mem;
lastMsg = now;
n++;
}
}
Вложения
-
442.7 KB Просмотры: 36