Отправка кода для обнаружения ошибок, сталкивающихся с проблемой, при которой ошибка не может скомпилировать код
КОД МОЕГО ПРОЕКТА:
#include ESP8266WiFi.h
#include LiquidCrystal.h
#include FirebaseArduino.h>
#include HX711.h>
#define FIREBASE_HOST "iot-based-smart-dustbin.firebaseio.com"
#define FIREBASE_AUTH "ljIbV03K07rLwoHRKSaAxWzJNCb3Lh6buc76dkvb"
#define WIFI_SSID "AndroidAP"
#define WIFI_PASSWORD "ashu1234"
char c; //ESP
String data = ""; //ESP
#define DOUT 15
#define CLK 13
#define IR1 14
#define IR2 12
HX711 scale(DOUT, CLK); // Инициализация библиотеки
float calibration_factor = -96650; //-106600 работало для максимальной настройки весов 3-40 кг
const int rs = 16, en = 5, d4 = 4, d5 = 0, d6 = 2, d7 = 10;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup()
{
Serial.begin(9600);
pinMode(IR1,INPUT);
pinMode(IR2, INPUT);
pinMode(DOUT, INPUT);
pinMode(CLK, OUTPUT);
lcd.begin(16, 2); // Вывести сообщение на ЖК-дисплей.
lcd.print("WELCOME");
delay(2000);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
// Serial.print("подключение");
while (WiFi.status() != WL_CONNECTED)
{
// Серийный.print(".");
delay(500);
}
// Serial.println();
// Serial.print("подключено: ");
// Serial.println(WiFi.localIP());
scale.set_scale();
scale.tare(); // Сбросить масштаб до
}
void loop()
{
scale.set_scale(calibration_factor); //Настроить на этот коэффициент калибровки
float a=scale.get_units(); // Переменная для получения значений веса на входе
lcd.clear();
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.setFloat("Weight", a); // установить значение в firebase // значение для переменной, отправленной в вес
if (digitalRead(IR1)==HIGH)
{
Firebase.setFloat("IR1", HIGH);
lcd.setCursor(0, 0);
lcd.print("Location 1:High");
}
if (digitalRead(IR1)==LOW)
{
Firebase.setFloat("IR1", LOW);
lcd.setCursor(0, 0); //колонка ряд
lcd.print("Location 1: Low");
}
if (digitalRead(IR2)==HIGH)
{
Firebase.setFloat("IR2", HIGH);
lcd.setCursor(0, 1);
lcd.print("Location 2:High");
}
if (digitalRead(IR2)==LOW)
{
Firebase.setFloat("IR2", LOW);
lcd.setCursor(0, 1);
lcd.print("Location 2: Low");
}
delay(2000);
lcd.clear();
if (a>=4)
{
lcd.setCursor(0, 0);
lcd.print("Weight: High");
}
if (a<4)
{
lcd.setCursor(0, 0);
lcd.print("Weight: Low");
}
delay(2000);
}
void send_msg_1()
{
Serial.println("AT+CMGF=1");// для модуля GSM в режиме TEXT
delay(1000);
Serial.println("AT+CMGS=\"+9921526975\"\r");// Номер телефона (изменить)
delay(1000);
Serial.println("Dustbin at Location 1 is full");// Тело сообщения (изменить в соответствии с требованиями)
delay(1000);
Serial.println((char)26);// отправить сообщение
delay(1000);
}
ОШИБКИ, которые я получаю при компиляции:
sketch_jul18a:34:22: error: no matching function for call to 'HX711::HX711(int, int)'
HX711 scale(DOUT, CLK); // Init of library
^
C:\Users\Admin\Desktop\Neha\sketch_jul18a\sketch_jul18a.ino:34:22: note: candidates are:
In file included from C:\Users\Admin\Desktop\Neha\sketch_jul18a\sketch_jul18a.ino:23:0:
C:\Users\Admin\Documents\Arduino\libraries\HX711_Arduino_Library\src/HX711.h:30:3: note: HX711::HX711()
HX711();
^
C:\Users\Admin\Documents\Arduino\libraries\HX711_Arduino_Library\src/HX711.h:30:3: note: candidate expects 0 arguments, 2 provided
C:\Users\Admin\Documents\Arduino\libraries\HX711_Arduino_Library\src/HX711.h:19:7: note: constexpr HX711::HX711(const HX711&)
class HX711
^
C:\Users\Admin\Documents\Arduino\libraries\HX711_Arduino_Library\src/HX711.h:19:7: note: candidate expects 1 argument, 2 provided
exit status 1
no matching function for call to 'HX711::HX711(int, int)'
Пожалуйста, помогите мне решить эту проблему. Слишком много борьбы...
@user55815, 👍0
1 ответ
Лучший ответ:
▲ 2
Наверное, основная проблема уже в первых строчках:
#include ESP8266WiFi.h
#include LiquidCrystal.h
#include FirebaseArduino.h>
#include HX711.h>
Вы должны использовать правильное форматирование:
#include "ESP8266WiFi.h"
#include "LiquidCrystal.h"
#include "FirebaseArduino.h"
#include "HX711.h"
Кроме того, в HX711 нет конструктора с аргументами, поэтому вместо
HX711 scale(DOUT, CLK);
использовать
HX711 scale;
и в настройках:
scale.begin(DOUT, CLK);
Возможно, код предназначен для другой библиотеки.
См. HX711_full_example. Или используйте код, принадлежащий вашей используемой библиотеке HX711.
,
@Michel Keijzers
Смотрите также:
- Как читать и записывать EEPROM в ESP8266
- Как сделать выводы Tx и Rx на ESP-8266-01 в выводах GPIO?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Как заставить 5-вольтовое реле работать с NodeMCU
- Печать string and integer LCD
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
- ESP8266 не подключается к Wi-Fi
- AT-команда не отвечает на последовательный монитор
Большое спасибо за вашу драгоценную помощь, сэр. из последних много дней борется с ошибками. Не очень знаком с Arduino IDE. Большое спасибо за помощь. Очень благодарен., @user55815
Добро пожаловать, успехов вашему проекту. Если ответ решает вашу проблему, пожалуйста, примите ответ (нажав кнопку рядом с ответом)., @Michel Keijzers