ESP8266 + Shiftregister für mehr Eingänge

Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
calcaneus
Junior Member
**

Beiträge: 8
Registriert seit: Feb 2017
Bewertung: 0
#11
09.02.2017, 14:18

Hi Uni,

danke für die Infos.
Ich hab etzt mal den Arduino und den ESP8266 zusammengeschlossen wie überall im Internet beschrieben - ohne einen Sketch draufzuspielen (sonst AT-Firmeware futsch). Über die Konsole und die AT-Befehle konnte ich den ESP8266 dazu bringen sich mit meinem WLAN-Router zu verbinden. Das geile daran: auch nachdem der Strom getrennt wurde behält er den Zugang und wählt sich beim Einschalten automatisch ein. AT-Befehle von der Konsole funktionieren nach wie vor.

Soweit so gut.

Jetzt fehlt mir das weitere Vorgehen auf dem Arduino. Bei den meisten Sketchen stehen am Anfang die WLAN-Zugangsdaten, komischerweise hat bei mir NIE ein einziger Sketch sich mit dem WLAN verbinden können. Dauernd kam "Module not reachable" oder so ähnlich.

Wenn Du da noch nen Tipp hättest?

Grüße
calc
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 734
Registriert seit: Apr 2014
Bewertung: 5
#12
10.02.2017, 19:47

Tach Calc,

ich habe irgendwann mal einen kleinen Testsketch gebastelt gehabt. Ist eher unausgegoren, aber hat damals funktioniert. Ist zwar für einen Mega2560 (der mehrere serielle Schnittstellen hat), lässt sich aber sicher auch für einen kleineren Arduino umbauen

 
//#include <SoftwareSerial.h>
//use mega Serial 2 for serial monitor; Serial 1 on pins 19 (RX) and 18 (TX);// Serial2 on pins 17 (RX) and 16 (TX), Serial3 on pins 15 (RX) and 14 (TX).
#define SSID "namedeswlans"
#define PASS "12341234"
#define DST_IP "192.168.1.1" //die IP mit der sich verbunden werden soll
//SoftwareSerial dbgSerial(10, 11); // RX, TX
void setup()
{
// Open serial communications and wait for port to open:
//serial 2 is to esp8266
Serial2.begin(9600);//9600 (mine), 57600, 115200
Serial2.setTimeout(1000);

//serial 0 is to usb
Serial.begin(115200);


while(!Serial);
while(!Serial2);

Serial.println("ESP8266 Demo on Mega2560");

while(Serial2.available()>0)
Serial2.read();

delay(1000);
//test if the module is ready
Serial2.println("AT+RST");
delay(1000);

Serial.println("Resetting module");
Serial2.flush();


if(Serial2.find("Ready")||Serial2.find("ready"))
{

Serial.println("Module is ready");
}
else
{

Serial.println("Module have no response.");
while(1);
}
delay(1000);
//connect to the wifi
boolean connected=false;
for(int i=0;i<5;i++)
{
if(connectWiFi())
{
connected = true;
break;
}
}
if (!connected){while(1);}
delay(5000);
//print the ip addr
/*
Serial2.println("AT+CIFSR");
Serial.println("ip address:");
while (Serial2.available())
Serial.write(Serial2.read());

*/

//set the single connection mode
Serial2.println("AT+CIPMUX=0");
}
void loop()
{
String cmd = "AT+CIPSTART=\"TCP\",\"";
cmd += DST_IP;
cmd += "\",80";
Serial2.println(cmd);
//dbgSerial.println(cmd);
Serial.println(cmd);
if(Serial2.find("Error")) return;
cmd = "GET / HTTP/1.0\r\n\r\n";
Serial2.print("AT+CIPSEND=");
Serial2.println(cmd.length());
if(Serial2.find(">"))
{

Serial.print(">");
}else
{
Serial2.println("AT+CIPCLOSE");

Serial.println("connect timeout");
delay(1000);
return;
}
Serial2.print(cmd);
delay(2000);

while (Serial2.available())
{
char c = Serial2.read();

Serial.write©;

if(c=='\r') Serial.print('\n');
}
//dbgSerial.println("====");
Serial.println("====");
delay(1000);
}
boolean connectWiFi()
{
Serial2.println("AT+CWMODE=1");
String cmd="AT+CWJAP=\"";
cmd+=SSID;
cmd+="\",\"";
cmd+=PASS;
cmd+="\"";
//dbgSerial.println(cmd);
Serial2.println(cmd);
Serial.println(cmd);
delay(4000);
if(Serial2.find("OK"))
{

Serial.println("OK, Connected to WiFi.");
return true;
}else
{
//dbgSerial.println("Can not connect to the WiFi.");
Serial.println("Can not connect to the WiFi.");
return false;
}
}
 

wenn ich mir den Sketch so ansehe, dann sind ein paar AT-Befehle an der falschen Stelle. Die sollten eher im Setup()-Bereich sein. Aber egal... Ist schon ewig her. Ich weiß es nicht mehr genau.

Vielleicht reicht es ja für einen Test

Gruß
Uni
-----

Klopapier beidseitig verwenden und der Erfolg liegt auf der Hand!
Zitieren
calcaneus
Junior Member
**

Beiträge: 8
Registriert seit: Feb 2017
Bewertung: 0
#13
12.02.2017, 12:53

Ich werd das die nächsten Tage mal testen

Gesendet von meinem GT-I9505 mit Tapatalk
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 734
Registriert seit: Apr 2014
Bewertung: 5
#14
15.03.2017, 09:09

Hallo Calcaneus,

hattest Du mal Gelegenheit, einen Test zu machen?

Gruß
Uni
-----

Klopapier beidseitig verwenden und der Erfolg liegt auf der Hand!
Zitieren
calcaneus
Junior Member
**

Beiträge: 8
Registriert seit: Feb 2017
Bewertung: 0
#15
18.03.2017, 23:07

Ja, war aber nicht von Erfolg gekrönt. Mittlerweile sind meine ESP8266-12 aus China angekommen. Damit sollte es einfacher sein.

Gesendet von meinem SM-G925F mit Tapatalk
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 734
Registriert seit: Apr 2014
Bewertung: 5
#16
27.09.2017, 21:36

Was ist eigentlich aus dem Projekt geworden?
Hast Du Deinen Plan mit dem großen ESP8266-12 umsetzen können?

Gruß
Uni
-----

Klopapier beidseitig verwenden und der Erfolg liegt auf der Hand!
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste