Страница 1 из 1

Билиотеки не подгружаются

Добавлено: 11 мар 2024, 05:51
Gribon
Здравствуйте, уважаемые разработчики устройств!
Наткнулся в интернете на ультразвуковой датчик измерения расстояния JSN-SR04T-3.0 работающий на библиотеке от HC-SR04. Преимущество в том что датчик водонепроницаемый и его можно использовать для измерения уровня жидкости в септике. Идея – подружить датчик с wemos mini и получать данные на смартфон через MQTT брокера. В вашей программе сочинил простенький алгоритм, но при компиляции arduino ide ругается на отсутствие библиотек. Помогите пожалуйста люди добрые?
Septik.flp

Билиотеки не подгружаются

Добавлено: 11 мар 2024, 09:07
Phazz
Gribon писал(а): 11 мар 2024, 05:51 ide ругается на отсутствие библиотек
А что IDE пишет?

Билиотеки не подгружаются

Добавлено: 11 мар 2024, 09:31
montirovka
Как у автора не знаю. У меня ругается на ABS. Стоит убрать с платы блок ультразвукового датчика - ошибки нет.
нашел похожий проект 9_Проба
та же ошибка - abs.

Билиотеки не подгружаются

Добавлено: 11 мар 2024, 11:09
tolika
Попробуйте

Билиотеки не подгружаются

Добавлено: 11 мар 2024, 11:12
Gribon
Phazz писал(а): 11 мар 2024, 09:07
Gribon писал(а): 11 мар 2024, 05:51 ide ругается на отсутствие библиотек
А что IDE пишет?
C:\Users\klien\AppData\Local\Temp\flprog\pr1\pr1.ino: In function 'void loop()':
pr1:98:35: error: call of overloaded 'abs(long unsigned int)' is ambiguous
98 | if (abs((millis() - _ultrasonic1P))>100) {
| ^
In file included from c:\program files (x86)\flprog\idev8\portable\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec\xtensa-lx106-elf\include\c++\10.3.0\cstdlib:75,
from c:\program files (x86)\flprog\idev8\portable\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec\xtensa-lx106-elf\include\c++\10.3.0\stdlib.h:36,
from C:\Program Files (x86)\FLProg\ideV8\portable\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/Arduino.h:27,
from sketch\pr1.ino.cpp:1:
c:\program files (x86)\flprog\idev8\portable\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec\xtensa-lx106-elf\include\stdlib.h:74:5: note: candidate: 'int abs(int)'
74 | int abs (int);
| ^~~
In file included from c:\program files (x86)\flprog\idev8\portable\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec\xtensa-lx106-elf\include\c++\10.3.0\cstdlib:77,
from c:\program files (x86)\flprog\idev8\portable\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec\xtensa-lx106-elf\include\c++\10.3.0\stdlib.h:36,
from C:\Program Files (x86)\FLProg\ideV8\portable\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/Arduino.h:27,
from sketch\pr1.ino.cpp:1:
c:\program files (x86)\flprog\idev8\portable\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec\xtensa-lx106-elf\include\c++\10.3.0\bits\std_abs.h:79:3: note: candidate: 'constexpr long double std::abs(long double)'
79 | abs(long double __x)
| ^~~
c:\program files (x86)\flprog\idev8\portable\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec\xtensa-lx106-elf\include\c++\10.3.0\bits\std_abs.h:75:3: note: candidate: 'constexpr float std::abs(float)'
75 | abs(float __x)
| ^~~
c:\program files (x86)\flprog\idev8\portable\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec\xtensa-lx106-elf\include\c++\10.3.0\bits\std_abs.h:71:3: note: candidate: 'constexpr double std::abs(double)'
71 | abs(double __x)
| ^~~
c:\program files (x86)\flprog\idev8\portable\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec\xtensa-lx106-elf\include\c++\10.3.0\bits\std_abs.h:61:3: note: candidate: 'long long int std::abs(long long int)'
61 | abs(long long __x) { return __builtin_llabs (__x); }
| ^~~
c:\program files (x86)\flprog\idev8\portable\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec\xtensa-lx106-elf\include\c++\10.3.0\bits\std_abs.h:56:3: note: candidate: 'long int std::abs(long int)'
56 | abs(long __i) { return __builtin_labs(__i); }
| ^~~
Несколько библиотек найдено для "Wire.h"
Используется: C:\Program Files (x86)\FLProg\ideV8\portable\packages\esp8266\hardware\esp8266\3.1.2\libraries\Wire
Не используется: c:\Program Files (x86)\FLProg\ideV8\portable\sketchbook\libraries\Wire
Несколько библиотек найдено для "SPI.h"
Используется: C:\Program Files (x86)\FLProg\ideV8\portable\packages\esp8266\hardware\esp8266\3.1.2\libraries\SPI
Не используется: c:\Program Files (x86)\FLProg\ideV8\portable\sketchbook\libraries\SPI
Несколько библиотек найдено для "SoftwareSerial.h"
Используется: C:\Program Files (x86)\FLProg\ideV8\portable\packages\esp8266\hardware\esp8266\3.1.2\libraries\SoftwareSerial
Не используется: c:\Program Files (x86)\FLProg\ideV8\portable\sketchbook\libraries\SoftwareSerial
Не используется: c:\Program Files (x86)\FLProg\ideV8\portable\sketchbook\libraries\Esp32-SoftwareSerial
exit status 1
call of overloaded 'abs(long unsigned int)' is ambiguous

Если честно не знаю, что такое ABS :smile427:

Билиотеки не подгружаются

Добавлено: 11 мар 2024, 11:16
tolika
Библа.

Билиотеки не подгружаются

Добавлено: 12 мар 2024, 04:24
Gribon
Всем огромное спасибо за помощь и участие в решении проблемы! Компиляция прошла успешно - просто заменил блок датчика и IDE перестал ругаться. Правда данные не доходят до брокера, но с этим постараюсь разобраться сам. Видимо надо с настройками поиграть на Бебботте.

Билиотеки не подгружаются

Добавлено: 12 мар 2024, 11:08
montirovka
tolika писал(а): 11 мар 2024, 11:16Библа.
Проблема не в библиотеке. Интернет говорит что функция абсолютного значения abs () не знает к чему приводить значение.
Если по подсказке интернета поменять строку с ошибкой, то у меня в ардуино иде скетч компилируется. Но правильный ли результат будет не знаю.
//Плата:1
if (abs(int(millis() - _ultrasonic1P))>100) {
Почему происходит ошибка со стандартным блоком вопрос остался открытым.
Еще вопрос. Что означают двойные скобки?
септик_abs.jpg

Билиотеки не подгружаются

Добавлено: 12 мар 2024, 16:20
Naladchik
montirovka писал(а): 12 мар 2024, 11:08 Почему происходит ошибка со стандартным блоком вопрос остался открытым.
Потому что оператору abs() не нравятся данные типа long unsigned int, о чем компилятор собственно и пишет.
Gribon писал(а): 11 мар 2024, 11:12 exit status 1
call of overloaded 'abs(long unsigned int)' is ambiguous
ну а таким образом if (abs(int(millis() - _ultrasonic1P))>100)
вычисление в скобках (millis() - _ultrasonic1P) преобразуется к типу int, с которым abs() уже дружит.
Вероятно раньше, на предыдущих версиях ArduinoIDE, было иначе и там эта конструкция работала.
Двойные скобки - это, в основном, приколы FLProg, по принципу "пусть лучше будут лишние, чем где то их не хватит", ни на что влияния не оказывают (а может как раз что то типа int там когда то и было и все работало).

Билиотеки не подгружаются

Добавлено: 12 мар 2024, 19:03
montirovka
Спасибо [ref]Naladchik[/ref],