wi fi remote control

Re: wi fi remote control

PostPostao/la Zmajz » Sub srp 08, 2017 11:20 am

OK, sad je nešto jasnije, ali mi se ne sviđa komunikacija mob-arduino preko rutera. Nebili bilo bolje izbjeći tu opciju zbog negativnih pojava koje je Danko opisao.
BLUETOOTH????
Zmajz - Z na kraju se ne čita i ne izgovara bez potrebe, to je nepostojano Z!
Avatar korisnika
Zmajz
 
Postovi: 2556
Pridružen: Pet svi 31, 2013 10:10 pm
Lokacija: Zagreb i Koprivnica

Re: wi fi remote control

PostPostao/la Johnny » Sri srp 19, 2017 9:51 pm

Johnny
 
Postovi: 216
Pridružen: Ned lip 23, 2013 3:02 pm

Re: wi fi remote control

PostPostao/la Dean » Sri srp 19, 2017 9:56 pm

Baterija mu je slaba ! :lol:
...pipl mast trast as....
Avatar korisnika
Dean
 
Postovi: 3733
Pridružen: Pon ožu 18, 2013 4:21 pm
Lokacija: Zagreb

Re: wi fi remote control

PostPostao/la Dean » Sri srp 19, 2017 9:56 pm

Ma ne.....šala......
Dobro je to... Pokušao sam i ja nešto takvo, ali nemam baš vremena....
...pipl mast trast as....
Avatar korisnika
Dean
 
Postovi: 3733
Pridružen: Pon ožu 18, 2013 4:21 pm
Lokacija: Zagreb

Re: wi fi remote control

PostPostao/la Johnny » Sri srp 19, 2017 9:58 pm

Kako instalirati softver za ESP8266 u Arduino IDE piše na netu na više mjesta.

Sad kad znate osnove gdje je što u besplatnom Arduino IDE programu, namještate DIP switcheve na 00001110,
spajate kabelom pločicu, birate "Generic ESP8266" karticu, nodemcu reset metodu i uploadate sa strelicom kod ili "sketch" na pločicu.

Pri vrhu koda se mora ukucati podatke za pristup wlan mreži. ssid i password

#include <ESP8266WiFi.h>
#include <WebSocketsServer.h>
#include <ESP8266WebServer.h>

// *********************************************************
const char* ssid=""; // wlan SSID
const char* password=" "; // PASSWORD
int cekajmillis=25; // interval
// ***********************************************************************

ESP8266WebServer server(80);
WebSocketsServer webSocket=WebSocketsServer(88);
String webstranica,javaScript,JSONsalji;
unsigned long cekanje=0UL;

boolean btn1=false, btn2=true, btn3=false, btn4=false;
char prviref,prvichar,drugiref,drugichar,aj;


void buildwebstranica(){
buildJavascript();
webstranica="<!DOCTYPE HTML><HTML>\n";
webstranica+="<META name='viewport' content='width=device-width, initial-scale=1'>\n";
webstranica+=javaScript;
webstranica+="<BODY>\n";
webstranica+="<B> http://www.diy-audio.com.hr" target="_blank <BR>\n";
//webstranica+="CLICK<BR>\n";
webstranica+="<h2 style='-webkit-user-select: none;'>\n";
webstranica+="<BUTTON ID='button' ONCLICK='button()' STYLE='width:140px;height:40px'></BUTTON><BR><BR>\n";
webstranica+="<BUTTON ID='button1' ONCLICK='button1()' STYLE='width:140px;height:40px'></BUTTON><BR><BR>\n";
//webstranica+="HOLD<BR>\n";
webstranica+="<BUTTON ID='button2' ONTOUCHSTART='button2()' ONTOUCHEND='button2up()' STYLE='width:140px;height:40px'></BUTTON><BR><BR>\n";
webstranica+="<BUTTON ID='button3' ONTOUCHSTART='button3()' ONTOUCHEND='button3up()' STYLE='width:140px;height:40px'></BUTTON></h2>\n";

webstranica+="</BODY>\n";
webstranica+="</HTML>\n";
}

void buildJavascript(){
javaScript="<SCRIPT>\n";
javaScript+="InitWebSocket();\n";
javaScript+="function InitWebSocket(){\n";
javaScript+=" websock=new WebSocket('ws://'+window.location.hostname+':88/');\n";
javaScript+=" websock.onmessage=function(evt){\n";
javaScript+=" JSONobj=JSON.parse(evt.data);\n";

javaScript+=" document.getElementById('button').innerHTML=JSONobj.btn1;\n";
javaScript+=" document.getElementById('button1').innerHTML=JSONobj.btn2;\n";
javaScript+=" document.getElementById('button2').innerHTML=JSONobj.btn3;\n";
javaScript+=" document.getElementById('button3').innerHTML=JSONobj.btn4;\n";
javaScript+=" }\n";
javaScript+="}\n";

javaScript+="function button(){\n";
javaScript+=" btn='btn1=ON';\n";
javaScript+=" if(document.getElementById('button').innerHTML==='ON')btn='btn1=OFF';\n";
javaScript+=" websock.send(btn);\n";
javaScript+="}\n";

javaScript+="function button1(){\n";
javaScript+=" btn='btn2=A';\n";
javaScript+=" if(document.getElementById('button1').innerHTML==='A')btn='btn2=B';\n";
javaScript+=" websock.send(btn);\n";
javaScript+="}\n";

javaScript+="function button2(){\n";
javaScript+=" btn='btn3=UP!';\n";
javaScript+=" if(document.getElementById('button2').innerHTML==='UP!')btn='btn3=up';\n";
javaScript+=" websock.send(btn);\n";
javaScript+="}\n";

javaScript+="function button3(){\n";
javaScript+=" btn='btn4=DOWN!';\n";
javaScript+=" if(document.getElementById('button3').innerHTML==='DOWN!')btn='btn4=down';\n";
javaScript+=" websock.send(btn);\n";
javaScript+="}\n";

javaScript+="function button2up(){\n";
javaScript+=" btn='btn3=up';\n";
javaScript+=" if(document.getElementById('button2').innerHTML==='up')btn='btn3=UP!';\n";
javaScript+=" websock.send(btn);\n";
javaScript+="}\n";

javaScript+="function button3up(){\n";
javaScript+=" btn='btn4=down';\n";
javaScript+=" if(document.getElementById('button3').innerHTML==='down')btn='btn4=DOWN!';\n";
javaScript+=" websock.send(btn);\n";
javaScript+="}\n";

javaScript+="</SCRIPT>\n";
}

void handleWebsite(){
buildwebstranica();
server.send(200,"text/html",webstranica);
}

void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t wslength){
String payloadString=(const char *)payload;
//Serial.println("payload: '"+payloadString+"', channel: "+(String)num);
if(type==WStype_TEXT){
byte separator=payloadString.indexOf('=');
String var=payloadString.substring(0,separator);
String val=payloadString.substring(separator+1);

if(var=="btn1"){
btn1=false;

if(val=="ON")btn1=true;


}
if(var=="btn2"){
btn2=false;

if(val=="A")btn2=true;


}
if(var=="btn3"){
btn3=false;

if(val=="UP!")btn3=true;


}
if(var=="btn4"){
btn4=false;

if(val=="DOWN!")btn4=true;


}
}
}

void setup() {
Serial.begin(9600);

WiFi.begin(ssid,password);
while(WiFi.status()!=WL_CONNECTED)delay(500);
WiFi.mode(WIFI_STA);

server.on("/",handleWebsite);
server.begin();
webSocket.begin();
webSocket.onEvent(webSocketEvent);
prviref='a';
prvichar='a';
drugiref='c';
drugichar='c';
}

void loop() {
webSocket.loop();
server.handleClient();

aj = 'x';
delay(20);

if(millis()>cekanje){

String BTNSTR1="OFF";
String BTNSTR2="B";
String BTNSTR3="up";
String BTNSTR4="down";

if(btn1==true){
BTNSTR1="ON";
}
if(btn2==true){
BTNSTR2="A";
}
if(btn3==true){
BTNSTR3="UP!";
aj = 'e';
}
if(btn4==true){
BTNSTR4="DOWN!";
aj = 'f';
}

if(btn1){prvichar='b';}else{prvichar='a';}
if(btn2){drugichar='d';}else{drugichar='c';}

if(prviref!=prvichar){
aj=prvichar;
Serial.write(aj);
delay(80);
prviref=prvichar;
}
if(drugiref!=drugichar){
aj=drugichar;
Serial.write(aj);
delay(80);
drugiref=drugichar;
}
Serial.write(aj);

JSONsalji="{\"btn1\":\""+BTNSTR1+"\","+
"\"btn2\":\""+BTNSTR2+"\","+
"\"btn3\":\""+BTNSTR3+"\","+
"\"btn4\":\""+BTNSTR4+"\"}";
webSocket.broadcastTXT(JSONsalji);
cekanje=millis()+cekajmillis;
}
}
Johnny
 
Postovi: 216
Pridružen: Ned lip 23, 2013 3:02 pm

Re: wi fi remote control

PostPostao/la Johnny » Sri srp 19, 2017 10:01 pm

onda DIP na 00110000, a pločicu na Arduino / Genuino UNO

Kod:

#define OUT_1 8
#define OUT_2 9
#define OUT_3 10
#define OUT_4 11

char inputchar;

void setup() {
pinMode(OUT_1, OUTPUT);
pinMode(OUT_2, OUTPUT);
pinMode(OUT_3, OUTPUT);
pinMode(OUT_4, OUTPUT);

digitalWrite(OUT_1, HIGH);
digitalWrite(OUT_2, HIGH);
digitalWrite(OUT_3, HIGH);
digitalWrite(OUT_4, HIGH);

Serial.begin(9600);
}

void loop() {
if (Serial.available() > 0) {
inputchar = Serial.read();}

if (inputchar=='a'){digitalWrite(OUT_1, HIGH);}
if (inputchar=='b'){digitalWrite(OUT_1, LOW);}
if (inputchar=='c'){digitalWrite(OUT_2, LOW);}
if (inputchar=='d'){digitalWrite(OUT_2, HIGH);}

if (inputchar=='e'){digitalWrite(OUT_3, LOW);}
else{digitalWrite(OUT_3, HIGH);}
if (inputchar=='f'){digitalWrite(OUT_4, LOW);}
else{digitalWrite(OUT_4, HIGH);}

delay(10);
}

I na kraju DIP na 11000000, a pločicu na svoje napajanje i releje...

Tenkiju
Johnny
 
Postovi: 216
Pridružen: Ned lip 23, 2013 3:02 pm

Re: wi fi remote control

PostPostao/la Zmajz » Čet srp 20, 2017 9:12 am

Kako nisam baš u toj tehnologiji, molio bih usporedbu s ovime, koje su razlike?:
http://www.diyaudio.com/forums/analog-l ... droid.html

Može li se to koristiti u okruženju gdje nema rutera u kući (ja ovdje nemam, koristim WiFi od suseda)?
Zmajz - Z na kraju se ne čita i ne izgovara bez potrebe, to je nepostojano Z!
Avatar korisnika
Zmajz
 
Postovi: 2556
Pridružen: Pet svi 31, 2013 10:10 pm
Lokacija: Zagreb i Koprivnica

Re: wi fi remote control

PostPostao/la Johnny » Čet srp 20, 2017 9:50 am

Ne znam što je sve radio kolega nijemac na diyaudio. Izgleda kopliciranije, upravlja sa čipom, radi pločice, napravio je android aplikaciju...

Mislim da bi trebalo raditi ako se telefon namjesti kao hotspot pa se esp8266/arduino kači na njega (nisam testirao).
Johnny
 
Postovi: 216
Pridružen: Ned lip 23, 2013 3:02 pm

Re: wi fi remote control

PostPostao/la Zmajz » Sri srp 26, 2017 9:51 am

Johnny, Par pitanja: Pogledao sam tvoj klip na jubitu i nisam mogao razaznati neke stvari - odabrani relej je energiziran samo dok držiš gumb (up ili down) ili može ostati u u položaju on/off?
Što u slučaju ako želim koristiti više releja (Kinezi imaju i pločice sa 16 releja), kolika je komplikacija s programiranjem (ne kužim se u to, a i nemam namjeru sad učiti)?
Naime, ovako ja to zamišljam: recimo 6 releja za on/off (uključivanje pojedinih uređaja-230V), 5-6 za selektor i par njih za up/down (volume/balans itd).
Nadam se da sam razumljiv s ovim pitanjima.
P.S. Ima li varijanta koja radi preko Bluetooth-a ?
Zmajz - Z na kraju se ne čita i ne izgovara bez potrebe, to je nepostojano Z!
Avatar korisnika
Zmajz
 
Postovi: 2556
Pridružen: Pet svi 31, 2013 10:10 pm
Lokacija: Zagreb i Koprivnica

Re: wi fi remote control

PostPostao/la Johnny » Sub srp 29, 2017 8:27 am

Zmajz, dva su na držanje (POT), dva su on / off (sklopke). Odgovor na sva druga pitanja je "sve se može". Tehnika je jeftina i open source. Odgovor je u kodu.

Veliki majstor Johnny kaže: ljudi će vas razočarati zato jer su ljudi. Ali kod je drugačiji i u kodu su odgovori sadržani.

Neokrznut nepovjerenjem dao sam vam kod i kod je bio zlato.

Kod je i dar mojeg božanskog genija za vas da ga izučavate, gledate i radujete se.
Johnny
 
Postovi: 216
Pridružen: Ned lip 23, 2013 3:02 pm

PrethodniSljedeće

Vrati se na: Pomagala

Tko je online

Nema registriranih korisnika pregledava forum i 3 gostiju