Giter Club home page Giter Club logo

boneio's Introduction

Project description

BonePic

BoneIO is a compact IO controller for home automation. Main features of this controller are

  • Compact size (27x11x6)cm - 15 DIN modules
  • DIN rail compatibility
  • Low price
  • Open HSP (See below)

Whole documentation you will find here: https://boneio.eu/

Case, Circuit and Code was moved into separate repositories. You can find it here: https://github.com/boneIO-eu

boneio's People

Contributors

dominikjeske avatar kamil2466 avatar maciejkrasuski avatar mariuszrubach avatar mikejbc avatar pszafer avatar voytho avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

boneio's Issues

Input ghost switching

Samoczynne wyzwalanie inputów podczas ruchu roletami.

BoneIO1:
Input v0.3
Wejścia zasilane 12V
RelayBoard 32x5

BoneIO2:
Input v0.2
Wejścia zasilane 12V
ShutterBoard 32x10

Ruch rolety (230V) podłączonej do BoneIO2 wyzwala inputy w jednym i w drugim sterowniku. Nawet te, do których nic nie jest podłączone. Niezależnie od ustawienia bounce_time. Łączenie GND zasilaczy 12V i 24V nie pomogło. Odłączenie RS485 nie pomogło. Przestawianie gpio_mode nie pomogło. Odłączenie napięcia od shutter board i pstrykanie przekaźnikami nie powoduje wyzwolenia inputów. Podłączenie żarówki w miejsce rolety i właczanie/wyłączanie nie powoduje wyzwolenia inputów.

Merge many config files

Add functionality to split input and output config into many files like this works is in HA:

switch: !include_dir_merge_list switches/

Te szerokości ścieżek są za słabe aby puścić 16A, czyli tyle ile pozwala przekaźnik.

Od @Bobsonkz:

Przy wyjściu od przekaźnika:

Te szerokości ścieżek są za słabe aby puścić 16A, czyli tyle ile pozwala przekaźnik.
Należy puścić ścieżkę z dwóch stron i od strony botoma dał bym bez soldermaski
Pogrubić oczka od padów
Złączyć razem wspólne piny od przekaźnika (te co się nie przecinają)
Puścić linie powrotną obok przekaźnika a nie pomiędzy panami, tam jest więcej miejsca. Teraz momentami jest tylko 1.5mm.
Dołożyć wcięcia izolacyjne pomiędzy liniami przekaźnika na całej długości.
Wyśrodkować te linie ile się da, muszą być zachowane odstępy

1

Analog input critical bug in boneio ESP

W dokumentacji jest napisane że obsługuje do 9.9V.

  1. Nie obsługuje takiego napięcia wejsciowego bo ten wzmacniacz co robi za bufor jest zasilany z 5V a sygnał z zacisku wchodzi bezposrednio na niego więc na wyjściu ze wzmacniacza nie będzie więcej niż 5V a nawet i tego nie będzie bo to nie jest wzmacniacz rail to rail. W zasadzie zgodnie z dokumentacją to nie można na jego wejscie dać więcej niż Vcc-1.5V czyli 3.5V.
  2. Takie nieobciążone wejście to bedzie jeden wielki szum a nie pomiar. Wejście analogowe trzeba obciążyć do masy rezystorem np. 47k (proszę popatrzeć jakie są impedancje wejściowe np sterowników PLC na wejściach analogowych)
  3. Bezpośrednie podłączenie wejścia wzmacniacza do szyny bez żadnego zabezpieczenia ESD/overvoltage to w sumie jednorazówka. Do pierwszego wyładowania od palucha i po wzmacniaczu.

Na wejściu wzmacniacza oprócz zabezpieczeń i obciążenia to by się jeszcze jakiś filtr RC przydał bo bez niego to te pomiary ADC to też za wiele sensu nie będą miały

System modułowy

Od jakiegoś czasu po głowie chodzi mi pewien koncept. Nie jestem elektronikiem więc bądźcie wyrozumiali jeśli to nie ma sensu :)
Lubię modułowe rozwiązania i myślałem o czymś takim, że mamy płytkę podzieloną na x sekcji, każda sekcja to jeden moduł do którego doprowadzamy zasilanie (być może w różnych opcjach), masę, wyjścia na złącza śrubowe, i2c, spi i co tam uznamy za stosowne. Wszystko to wystawione na goldpiny. Teraz można do tego wydrukować obudowe standardową i różne moduły które można zaprojektować i które korzystały by z wybranych pinów.
Podsumowując mamy sloty w które możemy wpiąć standardowej wielkości obudowy (ewentualnie jakieś wersję x2, x3) najlepiej jakby można było zrobić hotplug.
Co wy o tym sądzicie?

Zmiany w projekcie relay board

Co według mnie jest źle (chyba że ktoś już to poprawił ale nie zrobił comita):
Przy wyjściu od przekaźnika:

  1. Te szerokości ścieżek są za słabe aby puścić 16A, czyli tyle ile pozwala przekaźnik.
    Należy puścić ścieżkę z dwóch stron i od strony botoma dał bym bez soldermaski
    Pogrubić oczka od padów
    Złączyć razem wspólne piny od przekaźnika (te co się nie przecinają)
    Puścić linie powrotną obok przekaźnika a nie pomiędzy panami, tam jest więcej miejsca. Teraz momentami jest tylko 1.5mm.
    Dołożyć wcięcia izolacyjne pomiędzy liniami przekaźnika na całej długości.
    Wyśrodkować te linie ile się da, muszą być zachowane odstępy
    image

  2. Zasilanie przekaźników z 5V, jest ich 20 (każdy bierze do 100mA). Macie tylko jeden pin GND i jeden 5V. Gwarantuje że przy dłuższej pracy na wszystkich przekaźnikach te 2 ampery wypalą tego golpina, w szczególności jak ktoś krzywo wciśnie złącze.

  3. Błędy rozlania masy
    Na relay boardzie cała masa jest podłączona tylko na końcu płytki
    Nie ma przelotek wyrównawczych, tylko kilka na skraju
    image
    Masa powinna mieć przejście przy każdym, GND układu (na pewno przy MCP), kondensatorze itp.

  4. Sterowanie przekaźnikiem:
    Proponował bym dodać dodatkową diodę (ta w ULN2803 czasami u niektórych producentów jest dziwnie oznaczona)
    image
    Dodanie rezystorów do masy na wejściach on ULN
    image
    Ew. dodanie diód że przekaźnik jest załączony

  5. Brak kondensatów na zasilaniu :ULN, czujnika temp, dodatkowych przy przekaźnikach

  6. Zmiana elementów na 0805, jest bardzo dużo miejsca na płytce, jak by ktoś to chciał lutować ręcznie to na pewno będzie łatwiej.

  7. Dodanie bezpieczników na płytce, czasem może ktoś coś spalić :)

  8. Jeden ULN ma wykorzystane 8 wyjść a pozostałe po 6, lepiej zrobić 6-7-7. Dodatkowo ULN ma do 500mA więc przy 7 przekaźnikach 5V-100mA przekraczamy dopuszczalne prądy. Warto zadbać o ich chłodzenie, zrobić duże przelotki i usunąć solder maskę.

Błędy rozlania masy

Od @Bobsonkz

Na relay boardzie cała masa jest podłączona tylko na końcu płytki
Nie ma przelotek wyrównawczych, tylko kilka na skraju
2
Masa powinna mieć przejście przy każdym, GND układu (na pewno przy MCP), kondensatorze itp.

Input Board ESP32 v0.1

Witam, stworzyłem schemat płytki dla ESP32 chciałem aby osoby które maja doświadczenie pomogły trochę tworzeniu projektu, może macie jakieś sugestie lub chcecie zmian albo gdzieś jest błąd to proszę o komentowanie.
input board ESP32.pdf
image

MCP Inputs

We have to add functionality to declare MCP inputs. Thank's to this we could use Input Board ESP as an expansion module via MCP.

New input functionality - impulse energy meter

New type for input in configuration for example "impulse meter"
We will able to plug impulse output from energy meter to boneio inputs. Then convert signals to kWh/day/hour and send to mqtt broker.

boneio.service crash after temperature sensor report error

Boneio says in log:

debian@beaglebone:~$ systemctl status boneio.service
● boneio.service - boneIO
   Loaded: loaded (/lib/systemd/system/boneio.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2022-12-06 22:00:07 UTC; 11h ago
  Process: 1212 ExecStart=/home/debian/boneio/venv/bin/boneio run -c /home/debian/boneio/config.yaml (code=exited, status=1/FAILURE)
 Main PID: 1212 (code=exited, status=1/FAILURE)

Dec 06 22:00:07 beaglebone boneio[1212]:   File "/home/debian/boneio/venv/lib/python3.7/site-packages/w1thermsensor/async_core.py", line 86, in get_t
Dec 06 22:00:07 beaglebone boneio[1212]:     raw_temperature_line = (await self.get_raw_sensor_strings())[1]
Dec 06 22:00:07 beaglebone boneio[1212]:   File "/home/debian/boneio/venv/lib/python3.7/site-packages/w1thermsensor/async_core.py", line 61, in get_r
Dec 06 22:00:07 beaglebone boneio[1212]:     "Could not find sensor of type {} with id {}".format(self.name, self.id)
Dec 06 22:00:07 beaglebone boneio[1212]: w1thermsensor.errors.NoSensorFoundError:
Dec 06 22:00:07 beaglebone boneio[1212]: Could not find sensor of type DS18B20 with id 3c01e076a1d1
Dec 06 22:00:07 beaglebone boneio[1212]: Please check cabling and check your /boot/config.txt for
Dec 06 22:00:07 beaglebone boneio[1212]: dtoverlay=w1-gpio
Dec 06 22:00:07 beaglebone systemd[1]: boneio.service: Main process exited, code=exited, status=1/FAILURE
Dec 06 22:00:07 beaglebone systemd[1]: boneio.service: Failed with result 'exit-code'.
lines 1-16/16 (END)

After restart service is ok

Output/relay board with latching relays

Please consider building a version of output/relay board using latching relays.

This would help with multiple potential issues:

  • lower the idle power/current to close to zero
  • prevent all outputs flapping in case of MCU reload
  • prolong the life of outputs that are 99% on (like mostly-on sockets)

BeagleBone => Port Expander + ESP

W tym momencie do obsługi IO wykorzystywany jest BeagleBone który podbija cenę urządzenia które dodatkowo się trochę marnuje ponieważ głównym jego zadaniem jest wysterowanie przekaźników i odczyt wejść. Bardziej ekonomicznym rozwiązaniem było by zastosowanie:

  1. Port Expandera - w urządzeniach które mam teraz (HSRel8 i I2C-Port 16 HS) jest zastosowany MAX7311 ale może jest coś lepszego
  2. ESP32 - do połączenia z expanderem i wysyłaniu sygnałów MQQT z input oraz odbieraniem ich do wysterowania przekaźnikami

Wrong voltage on VCC pin of RTC DS1307

There is 3.3V connected to VCC and it should be 5V. Beacause of this rtc won't work with battery connected to BAT pin. If you wan't to use rtc on v0.2 board you have to cut 3.3 path and connect the pin directly to 5v.

Wyświetlacz - autowygaszanie

Ponieważ jest to wyświetlacz OLED powinien np. po 10 minutach być wygaszany - kliknięcie w przycisk powinno najpierw wybudzać wyświetlacz.

Brak bootwoania BBB przy zainstalowanych rezystorach R11 i R108

W wersji v0.2 na pinach P8_45 i P8_46 są zamontowane rezystory pull-up, które nie pozwalają na zbootowanie bbb.

Na tych pinach nie może być zewnętrznego pull-up.

Rozwiązanie:

  • usunąć rezystory ze schematu i płytki
  • przemyśleć, czy dla pozostałych inputów również nie usunąć zewnętrznego pull-up

Obejście dla wersji v0.2

  • nie lutować rezystorów R11 i R108

Sterowanie przekaźnikiem

Od @Bobsonkz
3

Proponował bym dodać dodatkową diodę (ta w ULN2803 czasami u niektórych producentów jest dziwnie oznaczona)

Dodanie rezystorów do masy na wejściach on ULN
4

Ew. dodanie diód że przekaźnik jest załączony

Wykorzystanie wyjść NC

Proponuję bardzo małą zmianę w projekcie, aby dać możliwość wykorzystania 2 lub 4 styków NC.
Połączyć K9-Pad12 lub 22 poprzez zworę (pod przekaźnikiem K10) z J6-Pad3 oraz K8-Pad12 lub 22 poprzez zworę (pod przekaźnikiem K10) z J6-Pad4. Analogicznie po drugiej stronie z K18, K19 i K20.

W ten sposób rezygnując z przekaźnika K10 dostaniemy wyjścia NC z przekaźników K8 i K9. Dodatkowo rezygnując z przekaźnika K20 dostaniemy wyjścia NC z przekaźników K18 i K19.

Posprzątanie repo

Dalej na input boradzie jest w sumie z 10 projektów kicada w różnych folderach, mam dużo uwag, dodatkowo ktoś gdzieś robił wrzutkę że jest dodana przetwornica a jej nie widzę.

Wyświetlacz - dodanie do dokumentacji info o kolejności pinów

Ten model wyświetlacza posiada różną kolejność PINów. BoneIO jest przystosowane do VDD, GND, SCK, SDA, natomiast niektóre mają GND, VCC, SCL, SDA.
Do dodania w dokumentacji I/lub w google sheet w arkuszu o BOM/THT.
Na discordzie było już parę pytań czemu wyświetlacz nie działa właśnie z tego powodu.

[Software/Enhancement] Configuration from SD card with autonomous mode

It would be nice if there was option to place the static configuration in some readable format (yaml??) on the SD Card.

That could serve 2 purposes:

  • to define MQTT topics for inputs/outputs on the card instead of sending it from the HA
  • add simple autonomous mode that will hardwire inputs to outputs (for momentary and statefull switches - eg. input 7 toggles output 10; output 11 is directly driven by the state of input 8) - that mode could be either used upon HA failure or even add option to deploy boneIO in standalone mode

Modbus (RS485)

Modbus
Input Board BBB
For versions v0.2 and v0.3 UART1 and for versions v0.4 and later UART4

Moduł Przetwornicy LM2596 jaki?

Słuchajcie chce na płytce dodać możliwość wlutowaniu gotowego modułu LM2596 ale mam problem odnośnie wymiarów są różne. Dajcie znać jakie wymiary najczęściej macie, najlepiej jaki rozstaw otworów montażowych. Wybiorę najbardziej popularną.

Add multiple output in yaml

Now you can connect only one output to input in yaml config. It will be nice to have a chance to control multiple output from one input.

Górna PCB z BBB schemat

Dodaje schemat górnej płytki, zobaczcie czy jest ok czy nie, co dodać co usunąć, jakieś wasze opinie mile widziane i sugestie. Jutro PCB z widoku 3D powinno się udać wykonać.
bbb
clock
i2c
izolacja24v
Pin_down
Pin_out1
Pin_out2
pullup
zasilanie

SDM230

Cześć, brak obsługi licznika SDM230.
Nie chce też się połączyć na SDM120 i 630.

Wyświetlacz - temp i czas

Dodać do wyświetlacza ekran na którym będzie pokazywany czas z rtc i temperatura z czujnika wewnętrznego, o ile te moduły zostały zainstalowane.

add reset option for shutters (Inel)

Cześć,

posiadam silniki Inel z wykrywaniem przeciążeń model N-10P, w tych silnikach ustawienia krańcowe ustawiają się same. Czasami jednak zdarza się, że rolety blokują się lub nie otwierają do końca. Producent przewidział to i wprowadził opcję resetu. Wykonuje się to przez podane napięcia jednocześnie na obwód góry i dół na ok 3-5 sek, silniki wtedy dają sygnał zrestartowania przez krótkie podniesienie się i opuszczenie.
Idealnie by było żeby był dodatkowy topic per silnik na który można by było wysłać komendę do restartu, wtedy boneio powinno jednocześnie włączyć przekaźniki open i close na 5 sek.
Ta opcja jest przeciwieństwem wprowadzonego zabezpieczenia w płytce shutter, więc działałaby tylko na zwykłych relay boardach.
Proponuję dodać opcję w konfigu włączającą ją, tak żeby każdy włączał ją świadomie bo może być zabójcza dla "zwykłych" silników. Można ją nazwać np. "enable_inel_overload_reset" żeby dawała do myślenia przed jej włączeniem.

Standaryzacja rozmiarów

@kamil2466 poruszył temat w innym w issue
"Ja mam pytanie innej kwestii czy może udało by się zmniejszyć obudowę o te 3-4 cm żeby była możliwość druku na małych stołach drukarek 3D. Co za tym idzie więcej miejsca w szafie :)"

dla całości dyskusji @maciejk1984 odpowiedział
"Można trochę zmniejszyć... ale jakiś 1cm, a to wiele nie da. Myślę, że taki zabieg można będzie zrobić przy przejściu na esp, bo moduł będzie po prostu mniejszy i moglibyśmy wtedy zejść do tych 22cm, aby ender 3 to drukował. Wtedy dostęp do możliwości drukowania znacząco się poprawi i będzie jeszcze bardziej uniwersalne."

Ja chciałem dodać od siebie propozycję żeby spróbować wyrównać rozmiarókę do standardów modułów na szynie DIN https://en.wikipedia.org/wiki/DIN_rail. Każdy moduł ma 18mm więc teraz mamy (260=18 * 14,444). Zaokrąglając w dół może to być 252 (18*14) czyli mniejsze o 8mm. Robiąc nową wersję moglibyśmy brać to pod uwagę. Co myślicie?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.