AQI LED - Zdalny diodowy sygnalizator

#21

No i pierwsza dioda będzie świecić słabiej bo robi też za konwerter poziomów logicznych dla reszty. 5V bym podłączył bezpośrednio pod zasilacz 5V żeby nie upalić diody w Wemosie. Ale to tylko jak łańcuch będzie długi. Więc na potrzeby przykładu możemy podpinać pod 5V Wemosa.

#22

A może ktoś wrzucić BINa z tym firmware dla ringa z 16 diod?
Mój komp już ledwo zipię i nie chce go dobijać przez kolejne oprogramowanie.

#23

Jutro się tym zajmę. I tak planowałem wrzucenie firmware do AQI LCD do uploadera firmware (tego od NAMF). Docelowo marzy mi się wykorzystanie Serial API które jest w Google Chrome i większości nowych przeglądarek i zrobienie webowego flashera do różnych firmware. Tylko nigdy nie ma czasu do tego usiąść. A rozwiązało by to sporo problemów.

Jakby się znalazł ktoś znający dobrze javascript i nie bojący się Serial API to jestem pewien, że znajdziemy w Nettigo na to środki.Oczywiście taki flasher musiałby być Open Source, bo my z natury nie produkujemy nic zamknięto-źródłowego.

1 Like
#24

Nie chce popędzać :stuck_out_tongue:
Ale jak sprawa stoi? Coś się udało?

#25

Sciagajac aktualny soft bedzie mozliwosc wybrania sygnaliztora tak jak, wyswietlacza, bmp280, ds18b20 i innych, czy musze osobnego wemosa miec dla sygnalizatora?

#26

Sygnalizator potrzebuje oddzielnego Wemosa bo to niezależne urządzenie. Ale w fazie projektowej jest LED BAR RGB na I2C do NAM’a. I tu będzie wsparcie w firmware.

LED BAR będzie dedykowany do NAM 0.3. Wpinany do portu I2C 5V. Na pokładzie Attiny84 robiący za I2C slave i sterujący ledami. Po prostu NAM raz na jakiś czas wyśle informację o tym jaki jest stan powietrza, a LED BAR na podstawie tego wysteruje diodami. Będzie to niezależne urządzenie sterowane po I2C. Plus jest taki, że nie potrzebuje dodatkowych bibliotek - to po prostu wartość wysłana pod adres I2C. W ten sposób firmware nie zgrubieje za bardzo. :slight_smile:

#27

Super. Wiec wemosa podpinam do diod i wifi, jakiś login by dane z aqi sciagnac?

#28

Nie trzeba loginu. Używa publicznego pliku data.json. może być z aqi przez internet lub po LAN bezpośrednio z czujnika jeżeli jest w tej samej sieci.

#29

No to super, mam 25 m diod zaczynam zabawę, czyli co tam wgrać ? Mozna tego dokonac przez jakis konfigurator?

#30

Fajna konstrukcja :stuck_out_tongue:
https://camo.githubusercontent.com/bba8e39e1d7deb3ca1dcc64e3f1956919578890e/687474703a2f2f77696b692e70726f746f6e6565722e636f2e6e7a2f696d616765732f632f63362f57696669506978656c735f546f702e4a5047

Źródło: https://github.com/Protoneer/WifiPixels

1 Like
#31

Bardzo fajna. Poszukam takich w Chinach. Wygralibyśmy na dzień dobry firmware i było by gotowe

#32

Dałbyś radę skompilować mi BIN dla ringa?

#33

Staram się samemu wgrać, ale…

          pio run -t upload -e led

Processing led (platform: espressif8266@2.2.3; board: d1_mini; framework: arduino)

Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/d1_mini.html
PLATFORM: Espressif 8266 2.2.3 > WeMos D1 R2 and mini
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES: toolchain-xtensa 2.40802.191122 (4.8.2), framework-arduinoespressif8266 2.20502.0 (2.5.2), tool-esptool 1.413.0 (4.13), tool-esptoolpy 1.20600.0 (2.6.0), tool-mkspiffs 1.200.0 (2.0)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Unicode decode error has occurred, please remove invalid (non-ASCII or non-UTF8) characters from C:\Users\Lector.platformio\packages\framework-arduinoespressif8266\libraries\ESP8266HTTPUpdateServer\library.properties file
Unicode decode error has occurred, please remove invalid (non-ASCII or non-UTF8) characters from C:\Users\Lector.platformio\packages\framework-arduinoespressif8266\libraries\ESP8266HTTPUpdateServer\library.properties file
Looking for ArduinoJson library in registry

Sam poszuka czy co?

#34

No to małych przebojach się udało :slight_smile:
Obudowa się jeszcze drukuje, ale działa.

Mam pytanie - lokalny czujnik adres mogę podać typu: nam-numer.local/data.json ?

Działa mi z AQI, ale nie mogę uruchomić tego lokalnie.

Czy pierwsza dioda ma jakieś dodatkowe znacznie? Raz mam na zielono, a raz na żółto.

EDIT:
Takie małe spostrzeżenia:
Przy ringu 16 diod nie ma gradientu, z tego co widzę to jest 5 zielonych, 6 żółtych i pewnie 5 czerwonych (jak dotychczas miałem jedną zapaloną).
Pierwsza dioda mogła by robić jako dioda sygnalizacyjna. Czyli przy braku połączenia z WiFi mogła by się świecić na niebiesko, przy problemie z pobieraniem danych na fioletowo. Przy aktualizacji mrugnięcie, a domyślnie wygaszona…
Może zamiast gradientu zrobić podział według kolorów z AQI. Według skali z której korzystają jest 5 kolorów, czyli wychodzi po 3 diody na kolor plus pierwsza sygnalizacyjna.

#35

Mam pytanie - lokalny czujnik adres mogę podać typu: nam-numer.local/data.json ?

Opcja z adresem IP i ustawieniem Sensor type: local device powinna zadziałać:

10

Czy pierwsza dioda ma jakieś dodatkowe znacznie? Raz mam na zielono, a raz na żółto.

  • Żółta: pobieranie danych,
  • Zielona: dane pobrano OK,
  • Czerwona: nie można pobrać danych

Przy ringu 16 diod nie ma gradientu, z tego co widzę to jest 5 zielonych, 6 żółtych i pewnie 5 czerwonych (jak dotychczas miałem jedną zapaloną).
Może zamiast gradientu zrobić podział według kolorów z AQI. Według skali z której korzystają jest 5 kolorów, czyli wychodzi po 5 diod na kolor plus pierwsza sygnalizacyjna.

Dosyć trudno zrobić gradient przy niskim poziomie jasności. Z moich doświadczeń wynika, że diody mogą przyjąć wtedy tylko kilka kolorów. Skoro gradient i tak nie działa, wprowadziłem 5 kolorów z aqi.eco - choć kilka z nich (lekko zielony i żółty) i tak wyglądają tak samo na LEDach:

Ta wersja umożliwia konfigurację liczby diodek i jasności przy użyciu panelu WWW, ale wiąże się to z utratą ustawień wifi dla już skonfigurowanych czujników (znowu trzeba się połączyć z siecią “AQI LCD” i wpisać hasło wifi). W przyszłości postaram się ograniczyć podobnych takich zmian do minimum.

1 Like
#36

A nie lepiej zamiast IP, które może być zmienne (mam ruter Huawei B315s-22 i nie moge ustawić stałego IP) korzystać z nazwy modułu.
W tej chwili po wpisaniu nazwy http://nam-14696265.local/data.json skrypt nadaje sieć, ale nie można się dostać do konfiguracji.

A i czy moduły (NAM i AQI LED) muszą być na tej samej sieci WiFI, czy wystraszy ze są na tym samym routerze?

#37

A nie lepiej zamiast IP, które może być zmienne (mam ruter Huawei B315s-22 i nie moge ustawić stałego IP) korzystać z nazwy modułu.

Nazwa nam-14696265.local jest nadawana przez mDNS. AQI-LED nie ma w tej chwili wsparcia dla tej usługi od strony klienckiej. Sprawdzę, czy da się to łatwo dodać.

W tej chwili po wpisaniu nazwy http://nam-14696265.local/data.json skrypt nadaje sieć, ale nie można się dostać do konfiguracji.

No tak, z tym coś zrobię.

A i czy moduły (NAM i AQI LED) muszą być na tej samej sieci WiFI, czy wystraszy ze są na tym samym routerze?

Do łączenia przez IP-ka, musi być możliwość przeroute’owania się z jednego urządzenia do drugiego. Co do mDNS i jego potencjalnej obsługi w przyszłości, nie jestem pewien jak to działa.

#38

Jaką jasność ustawić aby jak najlepiej oddać barwy?

Staram się sprawdzić czy ilość pokazywanych kolorów (5) jest poprawny dla ringa 16 diod.
Na jasności 1 widać zielone i żółte, ale w
uint32_t colors[] = {0x57b108, 0xb0dd10, 0xffd911, 0xe58100, 0x990000};
są dwa zielone ciemny i jasny, żółty, pomarańczowy i bordowy (czerwony).

Na jasności 75 pierwsza dioda jest wyraźnie zielona i mruga na żółto (aktualizacja), później jakby jasny zielony i przechodzi w żółty.

PS
W poprzednim poście zrobiłem byka :stuck_out_tongue: bo jak mamy 5 kolorów to na każdy przypada 3 diody, a wklepałem 5.

Tak u mnie wygląda AQI:
Screenshot_2019-12-22%20Jako%C5%9B%C4%87%20powietrza%20-%20Czarna%20Rola%2024

A tak palą się diody na jasności 1:

EDIT
Pozmieniałem na inne kolory aby był kontrast i jest OK, po 3 diody na kolor.
Tylko diody źle przedstawiają barwy.

#39

A zobacz takie kolory:
uint32_t colors[] = {0x008000, 0x3FFF15, 0xFFFF00, 0xFF4500, 0x800000};
i jasność na 16 lub 50 lub 255.
Ogólnie to na każdej chyba są różnice miedzy poszczególnymi etapami.

Takie małe spostrzeżenia, spadło mi zanieczyszczenie do niskiego a dalej 1 dioda żółta.
Czy w aqi-lcd-master\src\pollution-levels.cpp
nie powinno być:
return ((v - prevLevel) / (currentLevel - prevLevel) + i - 1) / 5;
zamiast
return ((v - prevLevel) / (currentLevel - prevLevel) + i - 1) / 4;
czyli dzielimy przez 5 zamiast przez 4?

AQI LED - obudowa 3D Print
#40

Takie pytanie bo nie mogę poszukać gdzie jest obliczane numPixels?