Wpis z mikrobloga

#raspberrypi #nodejs #firebase #adc #ajax #javascript

Pytanie do ogarniętych mirasów. Chiałbym stworzyć stronę na której wyświetlać się będzie wartość z czujnika analogowego. Mam przetwornik ADC, skrypt w Pythonie zbierajacy dane z czujnika do zmiennej. Mam zahostowany jakiś serwer oparty o node.js w serwisie firebase.

Problem polega na tym że moja wiedza z JavaScript jest praktycznie zerowa. W pythonie biblioteka json pozwala mi wyrzucić aktualną wartość do pliku .json, stamtąd już podobno można ją jakoś pobrać, żeby odświeżała się asynchronicznie bez odświeżania strony XmlHttpRequest?

Problem polega na tym że wartość w .json odświeża mi sie dopiero jak zrobie 'firebase deploy'

Wiem że zostanę zjedzony przez chłopaków co mają AJAX'a w małym paluszku, ja jestem po Elektrotechnice i mam spore braki w programowaniu, ale chciałbym się tego nauczyć.
  • 21
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Piasek32: najprostszy sposób żeby to zrobić to wykorzystać xmlhttprequest żeby pobrać zawartość jsona, a następnie dom, żeby zawartość jsona wpisać do odpowiedniego diva w htmlu. I robić to w pętli - w ten sposób nie da się tego zrobić w pełni asynchronicznie. Jeśli chcesz asynchronicznie to poczytaj sobie o websockets - wtedy Twoja aplikacja w node.js może wpychać aktualizacje do przeglądarki, ale to wymaga napisania większej ilości kodu albo użycia
  • Odpowiedz
@Piasek32: Nigdy nic nie robiłem w firebase, ale normalnie w raspberrypi robisz endpoint np
ip_raspberry/adc/temperature który przy wykonaniu GET zwraca aktualnego jsona z wartością z przetwornika. Teraz na stronie wystarczy że zrobisz asynchroniczny XMLHttpRequest po tego jsona i po sparsowaniu ustawisz dane w odpowiednim miejscu, chyba że zależy ci na niemal zerowym czasie reakcji na zmiany to wtedy jak wyżej, lepsze będą websockety
  • Odpowiedz
@Piasek32: jeśli używasz firabase możesz przechowywać dane w firestore a następnie użyć metody onSnaphot na kolekcji która chcesz obserwować co wywoła funkcje przy każdej zmianie danych, możesz uplaodaowac dane do firestore bezpośrednio z pythona
  • Odpowiedz
@IndieDevArt: stary jeżeli byłbyś w stanie podesłać źródła do czegoś takiego byłbym Ci niezmiernie wdzięczny, próbuje coś sam sklecić właśnie. Jak mogę Ci się odwdzięczyć?
  • Odpowiedz
Próbowałem tak jak mówisz według przykładu który wyrzuca do konsoli. Niestety mam jakieś błędy że mam chyba zdublowane Initialize'y bo miałem już jakąś przykładową stronę z tego firebase'a. Dobra spróbuję skorzystać z tych odnośników. Może dzisiaj mi się uda to zmajstrować to pokaże efekty :) Jeszcze raz dzięki za poświęcony czas i za ten content. A tak z ciekawości, czym kolega zajmuje się zawodowo? ;p
  • Odpowiedz