Skocz do zawartości

Dejwuch

Użytkownicy
  • Zawartość

    14
  • Rejestracja

  • Ostatnio

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

Dejwuch's Achievements

2/10

2/10 (2/10)

2

Reputacja

  1. @caporeira Cześć, Tak próbowałem tą metodę opisaną przez ZeroTier w linku powyżej i działa nawet spoko (choć konfiguracja zajęła mi trochę czasu..). Ale stwierdziłem, że w moim przypadku lepiej sprawdzi się komunikacja przez moją domenę www (i tak ją miałem, więc specjalnie nie kupowałem). Po prostu z ESP wysyłam po https dane na domenę (do bazy MySql) co ok. 2 sekundy i kiedy mam potrzebę to pobieram te dane np. z telefonu. Jest to na pewno tańsze niż kupowanie RPi dla kilku lokalizacji (oddalonych od siebie o kilka km). Jedynie trochę martwi mnie tak częste wysyłanie danych z ESP na serwer, ale nie wiem czy to jakoś szkodzi..
  2. Cześć, @Marcin648 bardzo fajny artykuł - szczególnie na początek zabawy z RP i VPN. I z tego też powodu mam (może nieco zielone) pytanie: mam postawiony ZeroTier na RP, ja z telefonu komunikuje się z RP po konkretnym adresie, a RP w ramach tego zapytania odpytuje urządzenia w tej samej sieci WIFI i odsyła mi odpowiedź z tych urządzeń. Czy jest ktoś w stanie naprowadzić jak to ugryźć ? Przypuszczam, że trochę podobna sytuacja co opisał @caporeira, ale bez przekierowania portów.
  3. Cześć, Bardzo fajna sprawa z tym Felgo jednakże mam pewien problem - może spotkałeś się z tym.. Aplikacja w QML, którą napisałem działa bez problemu na Android i Windows, ale jak zainstalowałem Felgo i chciałem sprawdzić jak to wygląda na tym Felgo Live to wyskakuje taki oto błąd i nie wyświetla aplikacji. QZXing mam zaimportowane w main.qml jako: import QZXing 2.3 natomiast w .pro jako: CONFIG += qzxing_qml include(QZXing/QZXing.pri) Nie wiem co muszę zrobić, aby Felgo też to "zaczytał"..
  4. @Matthew11, dokładnie o to chodziło, teraz śmiga. Dziękuję
  5. Witajcie, Mam nieco powiedzmy błahy problem z C++ i zastosowaniem funkcji QiODevice::Write(). Mianowicie dane (wartości liczbowe 0-255), które chcę wysłać do Xmega są pod zmienną typu unsigned char, a funkcja przyjmuje const char * lub QByteArray. Korzystam z napisanego przez siebie protokołu (bazującego na DBus, xmodem). Problem pojawia się w drugą stronę - kiedy odbieram dane char i potrzebuję przekonwertować na unsigned char. Próbowałem na różne sposoby (reinterpret_cast<const char*>, QByteArray::setNum(zmienna, 10)), ale żadna z tych metod nie pozwoliła mi osiągnąć tego co chcę - czyli wysyłam z uC np 0x10 0x15.., a po stronie PC otrzymuję również 0x10 0x15... Kodu nie zamieszczam, ponieważ nie ma nic nadzwyczajnego, różniącego się od tego co w artykule. Korzystam z QIODevice::write(const char *) oraz z QIODevice::read(cons char*). Czy jest ktoś w stanie mi wyjaśnić jak powinienem to zrobić ? Prawdopodobnie problem jest błahy i wynika z mojej niepełnej wiedzy C++. Edit: Dodam tylko, że po stronie uC raczej nie ma problemu, ponieważ gdy wysyłam dane na zwykły terminal (np RealTerm) dane są przesyłane prawidłowo.
  6. Dejwuch

    Co w Arduino piszczy? cz.1

    Dzięki za rady Załóżmy, że chciałbym wykorzystać FT232RL, a co z bootloaderem ? Rozumiem, że poprzez ten konwerter nie będę mógł go wypalić, więc musiałbym jednorazowo wykorzystać np. USB ASP / ISP poprzez MISO MOSI SCK ? Załączyłem schemat podłączenia dla FT232RL i tutaj pojawia się to samo pytanie. Jeżeli odetnę zasilanie z USB ("VCC5V") i podłącze zasilanie zewnętrzne to czy układ będzie prawidłowo działał ? I wracając jeszcze do tego dodatkowego mikrokontrolera Atmega16.. Co miałeś na myśli "utrudni zadanie" ? Czy chodzi tu tylko o jego montaż itp ? Czy odcinając USBVCC będzie wiązało się to z jakimiś kłopotami w komunikacji z komputerem ?
  7. Dejwuch

    Co w Arduino piszczy? cz.1

    Nie wspomniałem o tym, ale cały układ będzie działał cały czas z komputerem, przesyłając dane w jedną i w drugą stronę. Więc myślę, że z tego względu jest on niezbędny. Co sądzisz ? Czy może wystarczyłoby podłączenie USB z komputera pod pin Tx i Rx (D+ i D-)?
  8. Dejwuch

    Co w Arduino piszczy? cz.1

    @Treker, powiedzmy ,ze reszta układu pozostałaby bez zmian. Tak chciałbym dodać również mikrokontroler (Atmega16), który działałby jako programator/konwerter. W takim razie co powinienem jeszcze uwzględnić lub zmodyfikować ?
  9. Dzięki za zdjęcie Kurcz jednak dalej nie jestem pewny jak dokładnie sterować przekaźnikiem poprzez włączniki i ESP jednocześnie.. Czy taki schemat podłączenia jest słuszny (oczywiście pomijając diody przy cewce itp) ? Rozumiem to tak, że np z ESP nadajemy sygnał, że włączamy światło. Następnie nadajemy sygnał włącznikiem, że chcemy zmienić światło na przeciwny stan (czyli wyłączyć), wówczas ESP rozłącza nam przekaźnik. Czy tak ?
  10. Ciekawy projekt, jednak zastanawiam się czy jeżeli włączę światło przyciskiem od światła to czy będę mógł go wyłączyć ESP ? I na odwrót - jak włączę światło poprzez ESP to czy będę mógł wyłączyć przyciskiem od światła ? Nie za bardzo rozumiem jak to działa w opisanym przez Ciebie projekcie. Czy mógłbyś narysować np połączenie takiego układu lub w jakiś sposób opisać ?
  11. Dejwuch

    Co w Arduino piszczy? cz.1

    Część, Trochę odkopuję, ale chcę "zrekonstruować" Arduino Uno (i Mega) pomijając niektóre elementy. Chciałbym rozwiać moje wątpliwości zanim przystąpię do montażu. Zastanawiam się czy jeżeli "odetnę" ścieżkę zasilania Arduino z USB ("USBVCC") to czy układ będzie prawidłowo działać ? Tzn czy będzie możliwe połączenie z komputerem itp. Po prostu nie chcę w żadnym wypadku, żeby Arduino było zasilane z USB. Ma się załączać tylko w momencie podłączenia zewnętrznego zasilania. Wówczas rozumiem, że mógłbym pominąć tranzystor T1, który steruje zasilaniem (czy z USB czy z zew. VIN) oraz cały układ z komparatorem U5A i dzielnikiem RN1A i RN1B ? Z góry dziękuję za odpowiedź.
  12. Nie wpadłem na to za pierwszym razem, że może to być "naturalne" zjawisko. Tak jak wspomniałem na początku - Arduino UNO R3 @Treker, dziękuję za wskazówki. Poprawiłem kod zmieniając pin7, tzn: pinMode(7,INPUT_PULLUP); Poprawiłem również połączenie z przekaźnikiem. Jednakże mam problem z zabezpieczeniami. Zamieszczam uzupełniony schemat o pozostałe przekaźniki - w takiej konfiguracji ma pracować ten układ. Przycisk SW1 został dodany symbolicznie jako badane urządzenie (sygnalizując czy przewodzi napięcie 220-240 VAC czy też nie ). Cewka przekaźnik K2 będzie sterowana napięciem zmiennym z sieci (przyłącza L i N). 1. Zastanawiam się nad wykorzystaniem optoizolatorów, aby zabezpieczyć kontroler przed przebiciem 220-240 V. Czy zastosowanie optoizolatora U1, spełni swoje zadanie ? Tzn np. w przypadku przebicia 220-240V, ulegnie uszkodzeniu U1 zanim uszkodzi się mikrokontroler ? Napięcie 5V byłby dostarczane bezpośrednio z układu Arduino. 2. Mam wątpliwości co do zastosowania optoizolatorów U2 i U3 oraz diod D2 i D3, ponieważ sam to nakreśliłem. Czy jest ktoś w stanie ocenić czy taki układ, szczególnie za przekaźnikiem K2 ma prawo bytu ? Czy ochroni mikrokontroler przed niechcianym uszkodzeniem ? Zastanawiam się również czy zastosowanie U2 w takim połączeniu pozwoli mikrokontrolerowi odczytania tylko 0 w momencie gdy przekaźnik K2 nie płynie prąd (jest w stanie NC). 3. Nie jestem pewny, które rozwiązanie wybrać w celu ochrony przeciwprzepięciowej w przypadku cewki przekaźnika K2 na prąd zmienny. Czym się będzie różnić w tym zastosowaniu wykorzystanie warystora wpiętego równolegle do cewki, a czym rezystora i kondensatora (RC) ? (nie wykorzystano jeszcze na schemacie) Przypuszczam, że powinno zadziałać, ale proszę o opinie. Z góry dziękuję za każdą podpowiedź, poradę.
  13. Dziękuję Niestety próbowałem również z input_pullup na różne sposoby. Ale już dokładnie opisuje w czym problem, a poniżej uproszczony schemat. Na pinie 10 cały czas powinienem odbierać sygnał 1, a na pinie 7 zależności czy używam case a lub b. W momencie case a powinienem otrzymywać informacje 11 (pierwsza jedynka to sygnał z 7, a druga to z 10) - i faktycznie tak się dzieje. Problem jest w momencie używania case b. Losowo prawie na przemian dostaje 01, 11, 11, 01, 11, 01 itp. Tak jakby pozostawienie pinu 7 bez sygnału (0 lub 1) powoduje jego losowość. Czy teraz problem jest bardziej zrozumiały ? Czy możliwe, że specyfikacja kontrolera generuje taką losowość ? Czy zastosowanie dodatkowego jakiegoś układu (np z tranzystorem) rozwiązałby ten problem ? Chcę, żeby w momencie wybrania case a, na pinie 7 zawsze wystąpiło 0 (czyli, że przekaźnik jest otwarty). EDIT (rozwiązanie): Doszedłem do wniosku (nie wiem czy słusznego), że Arduino, kiedy nie ma jasno nadanego sygnału 0 lub 1 to będzie losowo wskazywał tą wartość po wywołaniu odczytu. Rozwiązanie dość proste.. zastosować przekaźnik z 2 stanami (NO i NC). Do NC podłączyć GND (aby wskazywał 0 na pinie7 czyli, że przez cewkę nie płynie prąd), a na NO podłączyć 5V i w momencie płynięcia prądu przez przekaźnik dostaniemy informację 1 na pinie7, że prąd płynie,.
  14. Cześć, Dopiero zacząłem przygodę z Arduino UNO R3 i chciałbym zbudować pewne urządzenie - niestety zatrzymałem się na samym początku.. Czy mógłby mi ktoś pomóc i powiedzieć w czym leży problem i jak go rozwiązać ? Urządzenie ma służyć do uruchomienia przekaźnika sygnałem z pinu 3, sprawdzeniu na pinie 7 czy przez badane urządzenie/przedmiot (póki co bez tego przedmiotu) przepływa prąd. Jednocześnie ma sprawdzać czy w tym samym czasie przepływa prąd w połączeniu z + na pin 10, docelowo tutaj też będzie przekaźnik ale póki co mam tylko 1. Odbywa się to tak: -wysyłam informacje z PC, że chcę sprawdzić pin z przekaźnikiem (case b) - kontroler odpowiada mi np. 01 - czyli na pierwszym pinie (pin 7) jest stan niski, na drugim (pin 10) wysoki. Dla odpowiedzi 11, to na obydwu pinach są stany wysokie. Problem jest w tym, że gdy np sprawdzam case a (bez zwierania przekaźnika) to dla pinu 7 (od przekaźnika) losowo wysyła mi informacje o stanie niskim i wysokim.. Mam wrażenie, że gdy nie ma żadnego sygnału nadanego przez arduino na tym 7 pinie to dobiera sobie dowoli. Próbowałem na wszelkie znane mi sposoby i niestety nie znalazłem rozwiązania. Czy ktoś jest w stanie mi pomóc, albo naprowadzić ? Może kod jest źle napisany ? Załączam krótki program, który ma symulować takie urządzenie. Pozdrawiam Dawid char komenda = 0; // komenda z PC dla case a lub b int odczyt7 = 0; // odczyt stanu z pinu 7 int odczyt10 = 0; // odczyt stanu z pinu 10 void setup() { Serial.begin(9600); pinMode(7,INPUT); // pin do odczytu stanu 0/1 z przekaźnika pinMode(10,INPUT); // pin do odczytu stanu 0/1 ze stałego połączenia pinMode(3,OUTPUT); // pin wyjściowy dla przekaźnika 1 digitalWrite(3, LOW); } void loop() { if (Serial.available()>0) // sprawdzenie czy odebrano komunikat { komenda = Serial.read(); // przypisanie komunikatu do zmiennej switch (komenda) // wybranie casu w zaleznosci od zmiennej - czy uruchomic przekaznik i sprawdzic stan (b), czy sprawdzic stan ze stalego polaczenia (a) { case 'a': odczyt7 = digitalRead(7); // odczyt (0 lub 1) z pinu 7 (przekaźnika) i przypisanie do zmiennej odczyt10 = digitalRead(10); //odczyt (0 lub 1) z pinu 10 (stałego łącza) i przypisanie do zmiennej delay(300); Serial.print(odczyt7); Serial.println(odczyt10); // wysłanie informacji do PC o stanach pinów delay(300); digitalWrite(3, LOW); break; case 'b': digitalWrite(3, HIGH); // po wybraniu b, zalacza się przekaznik i sprawdza jak uprzednio delay(300); odczyt7 = digitalRead(7); odczyt10 = digitalRead(10); delay(300); Serial.print(odczyt7); Serial.println(odczyt10); delay(300); digitalWrite(3, LOW); break; } } }
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.