• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino + Blynk
#1
To mój pierwszy post na forum, więc dzień dobry wszystkimSmile.
Teraz do rzeczy. Uprzedzam, że w programowaniu jestem zielony, więc proszę o wyrozumiałość. Próbuję sobie pokombinować ze standardowym kodem Blynk Ethernet, ponieważ do prób posiadam Arduino Uno i shield W5100. Efekt jaki chciałbym uzyskać na początek, to włączanie powiedzmy wyjścia digital 9 aplikacją, ale równolegle przyciskiem fizycznym. 
Wcześniej sam sobie pokleiłem jakiś kod na Arduino bez schielda W5100, który włącza trzy wyjścia trzema niezależnymi przyciskami i to działa, ale jak próbuję wycinek tego kodu dokleić do szkicu w Blynk, to wywala mi różne błędy. Da się dołożyć te fizyczne przyciski do szkiców Blynk?
 
Odpowiedź
#2
Pokaż kod programu i schemat. Jak przeniosłeś proste demo z delay to nie będzie działać prawidłowo.
 
Odpowiedź
#3
Nie wiem jak wkleić prawidłowo kod na forum, ale wygląda to tak:

/*************************************************************
Download latest Blynk library here:
https://github.com/blynkkk/blynk-library...ses/latest

Blynk is a platform with iOS and Android apps to control
Arduino, Raspberry Pi and the likes over the Internet.
You can easily build graphic interfaces for all your
projects by simply dragging and dropping widgets.

Downloads, docs, tutorials: http://www.blynk.cc
Sketch generator: http://examples.blynk.cc
Blynk community: http://community.blynk.cc
Social networks: http://www.fb.com/blynkapp
http://twitter.com/blynk_app

Blynk library is licensed under MIT license
This example code is in public domain.

*************************************************************
This example shows how to use Arduino Ethernet shield (W5100)
to connect your project to Blynk.

NOTE: Pins 10, 11, 12 and 13 are reserved for Ethernet module.
DON'T use them in your sketch directly!

WARNING: If you have an SD card, you may need to disable it
by setting pin 4 to HIGH. Read more here:
https://www.arduino.cc/en/Main/ArduinoEthernetShield

Feel free to apply it to any other example. It's simple!
*************************************************************/

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial


#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "YourAuthToken";

#define W5100_CS 10
#define SDCARD_CS 4

void setup()
{
// Debug console
Serial.begin(9600);

pinMode(SDCARD_CS, OUTPUT);
digitalWrite(SDCARD_CS, HIGH); // Deselect the SD card

Blynk.begin(auth);
// You can also specify server:
//Blynk.begin(auth, "blynk-cloud.com", 80);
//Blynk.begin(auth, IPAddress(192,168,1,100), 8080);
// For more options, see Boards_Ethernet/Arduino_Ethernet_Manual example

pinMode(9, OUTPUT); // wyjście stan wysoki
pinMode(8, INPUT_PULLUP); // wejście - przycisk podciagnięty do GND
}

boolean stan=0; // zmienna przyjmująca stan 0 lub 1

void loop()
{
Blynk.run();
}
//Dla przycisku 8:
if(digitalRead(8) == LOW) //jesli przycisk wciśnięty
{
delay(20); // odczekaj 20 ms
stan=!stan; // zmień stan na przeciwny czyli z 0 na 1 lub z 1 na 0
digitalWrite(9, stan); // włącz/wyłącz stan wysoki
while(digitalRead(8) == LOW); //
delay(20);
}
 
Odpowiedź
#4
Cały kod programu wykonywany raz na początku ma być w sekcji setup czyli między jego klamrami {}.
Kod wykonywany w pętli ma być w sekcji loop, czyli między klamrami, gdzie znajduje się na razie tylko funkcja Blynk.run();
Kurs Arduino znajdziesz np. tu: https://forbot.pl/blog/kursy, do każdej lekcji napisz swoich kilka wersji programu i wtedy ewentualnie wróć do zawracania komuś głowy.
 
Odpowiedź
#5
Próbowałem zmieniać położenie i za każdym razem wyrzuca jakiś błąd, no ale OK. Wszystkie te kursy już przejrzałem, ale znam swoje ograniczenia, inaczej nie prosiłbym o pomoc. Czas mojej edukacji przypadł na lata 80-te i 90-te, więc siłą rzeczy za pewnymi rzeczami nie nadążam. Jestem automatykiem, elektrykiem, pomiarowcem, niestety informatykiem już nie będę, a odsyłanie po pomoc do innego miejsca, to nie jest pomoc. Przepraszam, że "zawróciłem głowę"Sad.
 
Odpowiedź
#6
Moja edukacja też jest z poprzedniego millenium. To nie ma żadnego znaczenia. Kursu się nie przegląda, tylko z nim pracuje. A jak idzie topornie to tym bardziej do każdej lekcji robi się kilkadziesiąt własnych wersji, tak by nawet palce nauczyły się same pisać właściwe polecenia. Niestety robisz błędy, których się nie robi po poznaniu podstaw. Bez podstaw brnięcie w skomplikowane programy nie ma żadnego sensu. Francuskiego też się nie nauczysz przeglądając słownik, trzeba włożyć trochę pracy w poznanie ogólnych zasad i słownictwa. I najlepsze - nic za to nie płacisz, masz kursy w formie video, audio (polecam M. Zelenta na Youtubie C++ i C++ obiektowy, są też innych autorów stricte dla Arduino po polsku ), WWW i PDF. Nie płacisz też za program do kompilacji i przykłady. No tylko żeby zobaczyć efekty trzeba kupić jakiegoś klona Arduino za kilkanaście PLN. A jak nie dasz rady z Arduino to już nie wiem z czym, ja się tym bawię bo tu najszybciej można coś uruchomić. Jaki sens ma pomoc w dobieraniu rymów do Twojego poematu jak nie znasz na razie literek?
 
Odpowiedź
#7
@kaczakat, to „przeglądanie” to taki skrót myślowy. Kilka tych podstawowych lekcji sobie przećwiczyłem, stąd min. napisałem sobie prosty szkic włączania trzech wyjść trzema przyciskami, więc jakieś tam literki znam i potrafię napisac „ Ala i As”. Faktycznie, ten przykład, który wrzuciłem, nie był zbyt szczęśliwy, ale wynikało to z kilku prób, gdzie wyrzucało mi różne błędy (za każdym razem inny, dlatego kombinowałem) i faktycznie tutaj był szkolny błąd. Tutaj bardziej mi chodziło o możliwość modyfikacji szkiców Blynk. Poradziłem już sobie, fizyczny przycisk mi działa, tylko aplikacja nie odzwierciedla stanu faktycznego po akcji przycisku fizycznego, czyli włączam wyjście a w app jest ikona na off, czyli bez względu na stan faktyczny app pokazuje tylko to, co sama wykona. Reasumując, rozumiem Twój pogląd, bo Ty patrzysz z poziomu profesjonalisty, który przez ścianę czuje „C”, ja jestem w tym słaby, stąd moje pytanie w dziale „piaskownica”. Ok, żalu nie mam, tylko proszę nie oceniaj, bo nie znasz mojej sytuacji, zwyczajnie brakuje mi czasu na głębsze poznanie, stąd prośba o pmoc. Dziękuję.
 
Odpowiedź
#8
Arduino tylko się bawię, jestem hydraulikiem, dlatego znam te wszystkie kursy i wiem jak ciężko to zatrybić. Raczej nie dojechałeś do końca żadnego kursu, wiem że są nudne i z pozoru poszczególne elementy są nieprzydatne, możesz nawet nie mieć części by to przetestować, ale w każdym jest przemycana istotna informacja/technika, a w np. w na forbocie w ostatniej najważniejsza - jak nie używać delay i zarządzać czasem używając millis().
Nie używaj delay do obsługi drgań styków. Możesz napisać swoje funkcje lub wybrać gotową bibliotekę - easybutton, bounce2, itp. Żeby program nie dostawał czkawki i zawieszek nie czeka się ms na coś tylko przerywa funkcję i wznawia od zawieszonego momentu za ściśle określony okres czasu, albo wykonuje się jakieś polecenie gdy od poprzedniej upłynął zadany okres.
Tu jest przykład jak powiązać przycisk w aplikacji i fizyczny przycisk:
https://examples.blynk.cc/?board=ESP8266...icalButton , dla użycia shielda Ethernet trzeba podmienić odpowiednie sekcje programu.
Blynk używa timera do okresowego odczytu stanu przycisku, też powinno być OK.
 
Odpowiedź
#9
Masz rację, kursy poszły „po łebkach”, ale tak jak wcześniej wspomniałem, brak czasu niestety. Ponadto nie będę nigdy mistrzem programowania i na razie musi mi wystarczyć zrozumienie gdze podmienić komendy, jak dopisać to co potrzebuję i wtedy z biegiem czasu zaskoczę i będę potrafił więcej.. Funkcję „delay” użyłem, bo nie używam przekaźników elektromagnetycznych, tylko SSR, ale bazując na Twoim doświadczeniu już wiem, że pokombinuję z „millis”. Takie rady są cenne. Dzięki też za link, jutro spróbuję obciosać ten szkic pod W5100, ale jest to tylko platforma testowa. Docelowo instalację postawię na ESP, lub Mega, bo ten shield zabiera sporo pinów i w połączeniu z Uno, to jest porażka.. Raz jeszcze dzięki.
 
Odpowiedź
#10
Przykład jest właśnie do ESP, a jeśli to nie jest rozbudowany sterownik potrzebujący dużo RAM i flash to na AVR - UNO/MEGA i kablu może działać pewniej.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości