Ви не увійшли.
Вот пример конфига
server: passive /dev/ttyUSB0 server: port localhost:4304 server: pid_file /home/ow/run/owserver.pid http: server localhost:4304 http: port localhost:2121 http: pid_file /home/ow/run/owhttpd.pid
Здесть указывается, что owserver будет слушать на порту 4304 и работать с 1-wire через пассивный адаптер, а owhttpd будет слушать на порту 2121 и запросы перенаправлять на owserver на его порт 4304.
Можно сделать и так, что owhttpd будет работать сам, и http-запросы обслуживать и работать через адаптер с шиной 1-wire.
Удобнее когда есть и owserver и owhttpd, можно делать запросы из командной строки:
owget /uncached
owget /uncached/1d.71420f484e59/counter.ALL ;echo
owserver.pid - через поиск найти где лежит?
PS: его не нашел нет его
Kirill2022 пише:- установилось в /opt/
Я обычно делаю configure с такими опциями
./configure --prefix=/home/ow --disable-owpython --disable-owperl --disable-owphp --disable-owtcl
Замените /home/ow на /usr
В общем все сервисы запущены, но теперь не появляется счетчик рустартовал их уже, перезагружался, не появляется, может с настройками не то что-то. Создана точка монтирования /mnt/1wire
Что должно быть точно в конфиге?
Kirill2022 пише:И с тем адаптером, который на сайте Вашем продается - с ним не работает. У меня был другой.
С этим? Давайте разберемся.
Нет с USB-TTL на синей плате в термоусадке прозрачной
Попробуйте owhttpd с версии v3.2p4, я им отправлял фикс, он какраз касается пассивного адаптера.
В общем фигня какая-то.
Скачал, сделал
./configure
make
make install
- установилось в /opt/
хотя когда я из под систем делал sudo apt-get install -y owfs ow-shell
установка была не в /opt/ !
В общем сейчас пишет что версия owhttpd и owserver 3.2p4, а owfs 3.2p3
Качал с гитхаба tar и из него делал установку по их мануалу,но как я увидел, там нет owfs
И в локалхосте не появляется устройство
Попробуйте owhttpd с версии v3.2p4, я им отправлял фикс, он какраз касается пассивного адаптера.
попробую, но пока не понятно как это сделать.
И Вы не написали - какие параметры устанавливать в вэб !!
И как правильно все это записать в счетчик!
Уточните, как именно Вы подключили?
1) Ноутбук <-> USB-UART <-> схема с диодом и резистором <-> счетчик
Так как у Вас на фото.
И с тем адаптером, который на сайте Вашем продается - с ним не работает. У меня был другой.
Я же фото уже подключенного прислал Зачем не опять про это писать?
и в файле конф прописал так: server: passive = /dev/ttyUSB0
В общем работает подключение.
1. почему красным ошибка? Как убрать?
2. Какие настройки сделать для подсчета импульсов диода на счетчике (у меня - 6400 имп кВт/час)
3. Вы дали код на батарейку - так батарейка же 3В а не 5??
Подлючился через ноут И почему-то показывает не полный адрес (было такой 1d71420f484e5988)!
только выдает ошибку - Following data is not valid, Error 200 OK
Что дальше настроить?
И Вы писали, что можно передавать уровень батарейки, что и где настроить?
Если бы Вы на ESP реализовали программный адаптер, то работало бы. Сделайте на таком адаптере:
https://arduino.ua/products_pictures/large_AOC741-7.jpg
Я реализовал - все работает - в логах порта передавало показания счетчика,
видимо не стартует автоматически owserver и owhttpd
Поставил owfs ow-shell еа линукс на ноуте.
Прописал с конфиге w1 сервер.
Подключил ESP по USB.
Захожу по ссылке http://honey.com.ua/counter/setup.htm
нажмаю ОКб но получаю только такое:
/ 127.0.0.1:2121
continuous
bus.0
settings
system
statistics
structure
owdir /uncached
/uncached/bus.0
/uncached/settings
/uncached/system
/uncached/statistics
/uncached/structure
Но при среднем освещении и небольшом изменении яркости счетный вход (который находится в логическом режиме) только при каком-то одному ему известном значении освещенности будет менять состояние между high/low, что приведет к прибавлению импульса. Чтобы точно задать этот уровень освещенности нужно перевести счетный вход в аналоговый режим и установить пороговое значение аналогового сигнала, при переходе через которое счетчик будет понимать, что поменялась освещенность и нужно прибавить импульс.
- нужно перевести счетный вход в аналоговый режим - это как?
В общем совсем не понятно, как реально настроить на эл.счетчик с 6400 испульсами на кВт/час
Без опроса, по явно заданному адресу счетчика:
Изменять настройки счетчика из ардуино можно, есть небольшой пример в examples/DS2423_Counter.ino
// example how to change sampling interval to 19ms cnt.write(addr, buf, (word)32 * 8 + 13, 1); // page 8, offset 13
Описание памяти здесь
Но это сложный путь) лучше под линуксом поднимите owhttpd и через веб-страничку
Спасибо, я попробую на ноуте поднять owhttpd, я так понимаю к нему же и подключить ESP, а при подключении писать localhost? И какой порт - стандартный?
И какие настройки тим нужно будет выставить для моего счетчика? Как их узнать?
И еще, я пробовал использовать другой проект для подсчета электроэнергии с TEMT6000 подключенному по аналоговому входу в ESP и передача данных через MQTT(прикрепил во вложении архив в вордовский файлом), так как там описание и код (с сайта удалилась публикация sprut.ai), но там что-то не так, не создается топик config и ничего не работает, да и с автоматизацией подсчета расхода ЭЭ для HA до конца не понятно.
И еще у меня счетчик делает импульсов: 6400 кВт/час.
Kirill2022 пише:Пока не могу поймать (на настольной лампе
увеличение импульсов, сейчас подключу к счетчику и посмотрю на COM
По-умолчанию счетные входы работают в "логическом" режиме, если подключаете аналоговый датчик, например фототранзистор, нужно установить threshold-ы.
Подробнее описано в статье
https://habr.com/ru/post/568314/
Я не понимаю как это сделать.
В код добавить можно?
Во допустим рабочий код:
#include <DS2423_ho.h>
OneWire ow(2); // DQ on pin 10, You also need 1k resistor between DQ and VCC
DS2423 cnt(&ow);
void setup(void) {
Serial.begin(9600);
}
void loop(void) {
byte i;
byte addr[8];
uint32_t a, b;
if (!ow.search(addr)) {
Serial.println("No more addresses.");
ow.reset_search();
delay(5000);
return;
}
Serial.print("ROM =");
for (i = 0; i < 8; i++) {
Serial.write(' ');
Serial.print(addr[i], HEX);
}
Serial.println();
if (addr[0] == 0x1d &&
cnt.counter(addr, 0, &a) && cnt.counter(addr, 1, &b)) {
Serial.print(" Counter.A = ");
Serial.println(a);
Serial.print(" Counter.B = ");
Serial.println(b);
}
}
который я сейчас заюзал.
После прикрепления к счетчику на мониторе компорта вижу очень маленькие прибавления к счетчику.
Практически совсем не считает.
И для начала, как убрать все лишнее из кода (оставить только необходимый минимум) и оставить только вывод А (это я пробовал, убрал В и НЕХ, только не могу удалить поиск еще адресов счетчика, если удаляю, то ничего не выводится).
А еще лучше оформить в виде функции которая отдает значение счетчика
Моеже на ту же шину прицепить еще какое-то устройство, тот же DS18B20 ?
В общем разобралсы получилось.
Во вложении архив с 2-мя наборами включая библиотеки, все рабочее, прописан везде (где явно указан адрес моего DS2423 счетчика) и пин 2 для Wemos D1 mini pro (D4 - GPIO2)DS2423_arduino.zip
Пока не могу поймать (на настольной лампе увеличение импульсов, сейчас подключу к счетчику и посмотрю на COM
Пример скетча на сайте и библиотека на гитхабе написаны на C++ для среды разработки ардуино.
Реализацию 1-wire для ESP8266 поиском в гугле я нашел на сайте https://www.espruino.com/OneWire, библиотеки под него написаны на js, именно на нем я написал реализацию работы со счетчиком, которую выложил здесь.
Код, естественно, нужно компилировать компилятором того языка, для которого он написан.
Давайте, чтобы я не гадал, скидывайте сюда ссылку на библиотеку OneWire (или на библиотеку для DS18B20), которая есть именно для Вашей среды разработки/компилятора, а я буду выкладывать для нее библиотеку работы со счетчиком.
Прошиваю через Arduino IDE
в Ваше скетче изменил:
uint32_t a, b; (было unsigned long)
if (cnt.counter(addr, 0, &a) && cnt.counter(addr, 1, &b))
ошибки ушли.
Библиотеку OneWire подключил через менеджер библиотек - https://github.com/PaulStoffregen/OneWire
То что я писал выше, с помощью wi-fi.iot по шине 1-wire определилось с таким номером:
0x1d, 0x71, 0x42, 0x0f, 0x48, 0x4e, 0x59, 0x88
как понял 0x1d - это DS2423 (0x1D) 4kbit RAM with Counter (здесь нашел https://github.com/orgua/OneWireHub)
К wemos D1 mini подключено к D4 (GPIO2)
Т.е. приведенный текст библиотеки не подходит в Arduino ISE.
Я поставил ту на которую дали ссылку: https://github.com/honechko/DS2423/. (я так понял это Ваш гитхаб)
В ком порт выдает: No more addresses.
Для Вашего ESP8266
https://www.espruino.com/OneWire
и библиотека для счетчика:
DS2423.js/* Module for the DS2423 dual channel counter -----
Не тестировал - не на чем, отпишитесь о результатах.
Пытаюсь запустить Ваш скетч (z слабо в этом понимаю, делаю только с готовыми примерами),
и какую все таки библиотеку использовать???
может эту: https://github.com/honechko/DS2423
планирую подключить к Home assistant (тоже начинающий), как понимаю, чо нужно будет
поставить в HA 1-wire add-on, но он просит или подключения к серверу или к железяке 1-wire (видимо USB).
Хотелось бы сделать на ESP8266 (есть разные в наличии ESP 01, Wemos D1 mini pro, ESP32 и другие).
Получилось по быстрому сделать прошивку через https://wifi-iot.com/p/esp8266/
используя набор:
1-wire DS18B20 и GPIO
в вэбморде показало наличие 1-wire датчика его идентификатор.
Скетч (Ваш из примера):
#include <DS2423.h>
#include <OneWire.h>
OneWire ow(4); // DQ на пине 10, также необходим резистор 1кОм между DQ и VCC
DS2423 cnt(&ow);
void setup(void) {
Serial.begin(9600);
}
void loop(void) {
byte i;
byte addr[8];
unsigned long a, b;
if (!ow.search(addr)) {
Serial.println("No more addresses.");
ow.reset_search();
delay(5000);
return;
}
Serial.print("ROM =");
for (i = 0; i < 8; i++) {
Serial.write(' ');
Serial.print(addr[i], HEX);
}
Serial.println();
if (addr[0] == 0x1d &&
cnt.counter(addr, 0, &a) && cnt.counter(addr, 1, &b)) {
Serial.print(" Counter.A = ");
Serial.println(a);
Serial.print(" Counter.B = ");
Serial.println(b);
}
}
В скетче при компиляции выдает кучу ошибок начиная с кодом библиотеки, который Вы запостили.
Помогите пожалуйста.