code slot

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 3
Geregistreerd: 12 Apr 2017, 11:47

code slot

Berichtdoor ringo_dg » 12 Apr 2017, 12:01

Ben nieuw hier ,
maar heb met knippen en plakken
3 voorbeeldbestandjes aan elkaar proberen te knopen.
De opzet is om via een Leonardo eth en een keypad een code te versturen naar een server , die vervolgens de code controleert en er zijn ding met doet.
So far so good
Dit alles blijkt te werken.
Maar ...
slechts 1x ,
nadien is er geen verbinding meer.

Kan iemand van jullie mij zeggen hoe ik mijn verbinding kan behouden of opnieuw maken.
Alvast bedankt voor jullie hulp.

Code :

cpp code
#include <SPI.h>
#include <Ethernet2.h>
#include <Keypad.h>


// mac adres Arduino Leonardo
byte mac[] = { 0x90, 0xA2, 0xDA, 0x10, 0x3C, 0x1A };

char server[] = "192.168.1.115"; // name address for Macbook-air

// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(192, 168, 1, 116); // ip adres Arduino Leonardo

EthernetClient client;

const byte ROWS = 4 ;
const byte COLS = 3 ;
char keys[ROWS][COLS]={
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS]= {8,7,6,5};
byte colPins[COLS]= {4,3,2};

Keypad keypad=Keypad( makeKeymap(keys), rowPins, colPins , ROWS , COLS );

const byte numChars = 32;
char receivedChars[numChars]; // an array to store the received data
static byte ndx = 0;
boolean newData = false;
String stringOne ;


void setup() {

Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}

if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
Ethernet.begin(mac, ip);
}

delay(1000);
Serial.println("connecting...");

if (client.connect(server, 80)) { //voor macbook
Serial.println("connected");
}
else {
Serial.println("connection failed");
}

}

void loop()
{

char endMarker = '#';
char rc;
rc = keypad.getKey();

if(rc != NO_KEY){
if (rc != endMarker) {
receivedChars[ndx] = rc;
ndx++;

if (ndx >= numChars) {
ndx = numChars - 1;
}
}
else {
receivedChars[ndx] = '\0'; // terminate the string
ndx = 0;
newData = true;

}
}

showNewData();

if (client.available()) {
char c = client.read();
Serial.print(c);
}

}



void showNewData() {
if (newData == true) {
Serial.print("Code : ");
Serial.println(receivedChars);
stringOne = String(receivedChars);

if (client.available()) { //voor macbook
Serial.println("connected");
}
else {
Serial.println("disconnected");
client.connect(server, 80);
Serial.println("connected");
delay(1000);

}

client.println("GET /fmi-test/test_r6.php?lang=" + stringOne + " HTTP/1.1");
client.println("Host: 192.168.1.116");
client.println();

newData = false;
}
}

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: code slot

Berichtdoor nicoverduin » 12 Apr 2017, 12:10

Zal aan mij liggen maar ik dit al eerder gezien of op dit of het internationale forum.......
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 3
Geregistreerd: 12 Apr 2017, 11:47

Re: code slot

Berichtdoor ringo_dg » 12 Apr 2017, 14:21

Is de eerste maal , dat ik dit post hoor
Nergens anders

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: code slot

Berichtdoor Koepel » 12 Apr 2017, 19:06

Het is logischer om een aparte functie te maken die connect, dan de header en data verstuurt, en afsluit.

Dus niet de client.connect eenmalig in setup(), maar iedere keer.

client.connect to server
schrijf header met GET of POST
schrijf gegevens
kijk met client.available() en client.read() of de server iets terug te melden heeft
dan afsluiten met client.stop()

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: code slot

Berichtdoor nicoverduin » 12 Apr 2017, 19:49

Was jij het nou die dit al eens eerder had geschreven? Of was het As op het internationale forum. Echt een deja vu gevoel
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: code slot

Berichtdoor Koepel » 12 Apr 2017, 20:11

Ik heb een droste effect deja vu gevoel ;)
Hier schreef ik hetzelfde over connect binnen setup(): http://www.arduinoforum.nl/viewtopic.php?f=8&t=2393#p18149. Misschien zit ik simpel in elkaar en heb ik maar een paar quotes om te doen alsof ik er verstand van heb :lol:

Berichten: 3
Geregistreerd: 12 Apr 2017, 11:47

Re: code slot

Berichtdoor ringo_dg » 13 Apr 2017, 09:29

Probeer ik !
Alvast bedankt voor de hulp

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 17 gasten