INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Hobby Programierer gesucht gegen Entgelt.
01.08.2015, 10:41
Beitrag #17
RE: Hobby Programierer gesucht gegen Entgelt.
Morgen,

also ich habs gestern geschafftSmile

Mein Ansatz war falsch,ich dachte ich muss einen String zusammensetzen,doch das musste ich nicht.

Hier der code:
Code:
// ================================================  LIB ============================================================
#include <Adafruit_CC3000.h>
#include <SPI.h>
#include "DHT.h"
//=================================================  Define CC3000 chip pins =======================================
#define ADAFRUIT_CC3000_IRQ   3                                               // Interrupt Pin (UNO = 2 und 3)
#define ADAFRUIT_CC3000_VBAT  8                                               // VBEN
#define ADAFRUIT_CC3000_CS    10                                              // CS
//================================================  WiFi Settings =================================================
#define WLAN_SSID       "SSID"                                            // WLAN SSID - Darf nicht länger als 32 Zeichen sein!
#define WLAN_PASS       "PASSWORT"                                            // WLAN Passwort
#define WLAN_SECURITY   WLAN_SEC_WPA2                                         // WLAN_SEC_UNSEC, WLAN_SEC_WEP, WLAN_SEC_WPA or WLAN_SEC_WPA2
//================================================  Define DHT22 sensor pins =======================================
#define DHTPIN 2                                                             // Digitaler Pin an dem der DHT angeschlossen ist
#define DHTTYPE DHT22                                                         // Typ des DHT Sensors (DHT11, DHT22)
// ===============================================  Define LCD =====================================================
#include <Wire.h>  // Comes with Arduino IDE
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);                // Set the LCD I2C address
//================================================  Erzeugen von Instanzen für CC3000 & DHT ========================
DHT dht(DHTPIN, DHTTYPE);
Adafruit_CC3000 cc3000 = Adafruit_CC3000(ADAFRUIT_CC3000_CS, ADAFRUIT_CC3000_IRQ, ADAFRUIT_CC3000_VBAT, SPI_CLOCK_DIV2);
//================================================  Define Server settings =========================================
#define SERVER  "Dyndns"                                         // Domainname hier eintragen
uint32_t ip;                                                                 // IP Adresse des Servers wird im setup() mit getHostByName aus der URL ermittelt
// =============================================== Intervall Zeit ==================================================
long previousMillis = 0;
long interval = 1;                                                           // Upload-Interval in Minuten
int h;                                                                       // Luftfeuchte
int t;                                                                       // Temperatur
// *********************************************** SETUP ***********************************************************                                        
void setup(void)
{
  interval = interval * 100 * 60;                                           // Das in Minuten angegebene Interval in Millisekunden umrechnen
  pinMode(9, OUTPUT);
  lcd.begin(20,4);                                                           // initialize the lcd for 20 chars 4 lines and turn on backlight
  lcd.backlight();
  lcd.clear();
  delay(2000);  
  Serial.begin(115200);
  Serial.println(F("WiFi Modul Starten..."));
  Serial.println(F("Initialisiere CC3000..."));
  lcd.setCursor(3,0); //Start at character 4 on line 0
  lcd.print("WIFI Testmodul");
  if (!cc3000.begin()) {
    Serial.println(F("CC3000 - Verkabelung checken!"));
    while(1);
  }

  if (!cc3000.connectToAP(WLAN_SSID, WLAN_PASS, WLAN_SECURITY)) {
    Serial.println(F("Fehlgeschlagen!"));
    while(1);
  }
    
  Serial.println(F("Verbunden !"));
  lcd.setCursor(3,1); //Start at character 4 on line 0
  lcd.print("Verbindung ok!");
  
  // Wait for DHCP to complete
  while (!cc3000.checkDHCP()) {
    delay(1000);
  }  

  // IP Adresse, DNS, Gateway, usw ermitteln und ausgeben  
  while (! displayConnectionDetails()) {
    delay(1000);
  }
    
  ip = 0;
  // Versuchen die IP-Adresse der Website zu ermitteln
  Serial.print(SERVER);
  lcd.setCursor(2,2); //Start at character 4 on line 0
  lcd.print(SERVER);
  lcd.setCursor(5,3); //Start at character 4 on line 0
  lcd.print("Port:54711");
  
  Serial.print(F(" -> "));
  while (ip == 0) {
    if (!cc3000.getHostByName(SERVER, &ip)) {
      Serial.println(F("Konnte nicht ermittelt werden!"));
    }
    delay(500);
  }
  cc3000.printIPdotsRev(ip);
  Serial.println();
}



void loop(void)
          {
          unsigned long currentMillis = millis();
          if(currentMillis - previousMillis > interval) {
          previousMillis = currentMillis;  
          
          h = dht.readHumidity();                      // Temperatur  ermitteln
          t = dht.readTemperature();                   // Feuchte     ermitteln
          lcd.clear();
          // Messwerte ausgeben
          Serial.print(F("Temperatur:  "));
          Serial.println(t);
          Serial.print(F("Luftfeuchte: "));
          Serial.println(h);
          Serial.println("");
          lcd.setCursor(0,0)                 ;
    lcd.print("Temperatur :");
    lcd.setCursor(15,0);
    lcd.print(t);
    lcd.setCursor(0,1)                 ;
    lcd.print("Feuchte    :");
    lcd.setCursor(15,1);
    lcd.print(h);
    //Werte des DHT22 an Server senden
    sende_Temp(t);
    sende_Feuchte(h);
  }
delay(2000);
}
/**************************************************************************
    Messwerte an Server senden
/**************************************************************************/
void sende_Temp (int t)
{    
    Adafruit_CC3000_Client client = cc3000.connectTCP(ip, 54711);    // Verbindung zum Server herstellen
    digitalWrite(9, HIGH);
    Serial.println("Sende Temperatur an Server");
    // Anfrage senden
    if (client.connected()) {
    t = dht.readTemperature();
    client.fastrprint("Lansensor sLantemp=");
    client.print(t);
    delay(200);
    client.close();
    delay(800);
   digitalWrite(9, LOW);
    delay(1000);
  }
  }

/**************************************************************************/
void sende_Feuchte (int h)
{    
    Adafruit_CC3000_Client client = cc3000.connectTCP(ip, 54711);    // Verbindung zum Server herstellen
    digitalWrite(9, HIGH);
    Serial.println("Sende Feuchte an Server");
    // Anfrage senden
    if (client.connected()) {
    h = dht.readHumidity();
    client.fastrprint("Lansensor sLanfeuchte=");
    client.print(h);
    delay(200);
    client.close();
    delay(800);
   digitalWrite(9, LOW);
  lcd.clear();
  }
  else {
    Serial.println(F("Verbindung fehlgeschlagen"));
  }
}
/**************************************************************************
    IP-Adresse und andere Verbindungsdetails  auslesen
/**************************************************************************/
bool displayConnectionDetails(void)
{
  uint32_t ipAddress, netmask, gateway, dhcpserv, dnsserv;
  
  if(!cc3000.getIPAddress(&ipAddress, &netmask, &gateway, &dhcpserv, &dnsserv)) {
    Serial.println(F("Unable to retrieve the IP Address!\r\n"));
    return false;
  }
  else {
    Serial.print(F("\nIP Addr: ")); cc3000.printIPdotsRev(ipAddress);
    Serial.println();
    return true;
  }
}


Wobei hier das wichtigste ist:

t = dht.readTemperature();
client.fastrprint("Lansensor sLantemp=");
client.print(t);

delay(200);
client.close();

Somit geht es nun Big Grin

Gruß
Haustechno

Smarthome ist die Zukunft ;-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.08.2015, 12:44
Beitrag #18
RE: Hobby Programierer gesucht gegen Entgelt.
Tja zu früh gefreutSad

also im Grunde funktioniert es aber die Werte kommen manchmal nicht am server an.
Komisch ist das die Kennung ankommt,also:

Lansensor slantemp=

Aber der Wert bleibt manchmal einfach weg,hmm.

Zuerst dachte ich das der Sensor der DHT ja ca. 2000ms zum anlaufen braucht,also code geändert:
Code:
void sende_Temp (int t)
{    
    Adafruit_CC3000_Client client = cc3000.connectTCP(ip, 54711);    // Verbindung zum Server herstellen
    digitalWrite(9, HIGH);
    dht.begin();
    delay(3000);
    Serial.println("Sende Temperatur an Server");
    // Anfrage senden
    if (client.connected()) {
    t = dht.readTemperature();
    client.fastrprint("Lansensor sLantemp=");
    client.print(t);
    delay(50);
    client.close();
    delay(800);
   digitalWrite(9, LOW);
    delay(2000);
  }
}
/**************************************************************************/

Hab dem Sensor also zeit zum anlaufen gegeben,leider auch ohne erfolg.....

Gruß
Haustechno

Smarthome ist die Zukunft ;-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.08.2015, 12:53 (Dieser Beitrag wurde zuletzt bearbeitet: 01.08.2015 13:44 von Home38.)
Beitrag #19
RE: Hobby Programierer gesucht gegen Entgelt.
Hi,

freut mich, wenn es jetzt geht. Übrigens verzögert die Ausgabe über seriell das Bord ziemlich stark, habe ich festgestellt. Wenn man die Debug-Meldungen über UDP ausgeben lässt, ist man flexibler und man kann sich die Ausgaben sogar auf einem Tablet anschauen.Klappt aber nur, wenn die Netzwerkkarte mehrere gleichzeitige Verbindungen unterstützt.

In meinem Grund Programm ARDUINO(siehe hier im Forum) habe ich das so gemacht.

Melde mich noch einmal, stehe gerade im Stau gleich kann ich wieder fahren

(01.08.2015 12:44)Haustechno schrieb:  Tja zu früh gefreutSad

also im Grunde funktioniert es aber die Werte kommen manchmal nicht am server an.
Komisch ist das die Kennung ankommt,also:

Lansensor slantemp=

Aber der Wert bleibt manchmal einfach weg,hmm.

Zuerst dachte ich das der Sensor der DHT ja ca. 2000ms zum anlaufen braucht,also code geändert:
Code:
void sende_Temp (int t)
{    
    Adafruit_CC3000_Client client = cc3000.connectTCP(ip, 54711);    // Verbindung zum Server herstellen
    digitalWrite(9, HIGH);
    dht.begin();
    delay(3000);
    Serial.println("Sende Temperatur an Server");
    // Anfrage senden
    if (client.connected()) {
    t = dht.readTemperature();
    client.fastrprint("Lansensor sLantemp=");
    client.print(t);
    delay(50);
    client.close();
    delay(800);
   digitalWrite(9, LOW);
    delay(2000);
  }
}
/**************************************************************************/

Hab dem Sensor also zeit zum anlaufen gegeben,leider auch ohne erfolg.....

Gruß
Haustechno

Kann es sein , daß ein \n hinter Bsp. client.print(t+"\n");fehlt ? Bei TCP-Verbindungen ist es so, daß Du Ihm ein "Abschlußkennzeichen" mitsenden musst, z.B. Zeilenumbruch oder was ähnliches.

Wenn Du was auf der Tastatur schreibst, was machst Du dann , Richtig Enter !!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.08.2015, 14:40
Beitrag #20
RE: Hobby Programierer gesucht gegen Entgelt.
Kann es sein, dass so was wie ein disconnect() fehlt? Der Cc3300 kann max. 4 Sockets parallel bedienen. Wenn man versucht eine weitere Verbindung aufzumachen, geht es uU. in die Hose ;-(
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.08.2015, 16:38
Beitrag #21
RE: Hobby Programierer gesucht gegen Entgelt.
Habe mir mal den Sketch von Haustechno (siehe sein Projekt) heruntergeladen und frei, wie ich bin, auf meine Mega mit Netzwerkshield (ohne große Änderungen) hochgeladen und konnte auch eine Webseite Mit Überschrift sehen. IP war ansprechbar, so weit so gut.

FireFox / W-Explorer.

Der Explorer (gähn) hat geladen, geladen, geladen und hat ....

Der Firefox sagte mir , daß der Server die Verbindung unterbrochen hat.

Fehlt noch was in den Browsereinstellungen oder was könnte es noch sein ???
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.08.2015, 08:04 (Dieser Beitrag wurde zuletzt bearbeitet: 02.08.2015 08:10 von Haustechno.)
Beitrag #22
Wink RE: Hobby Programierer gesucht gegen Entgelt.
Morgen
@Home38

Also hab das ma probiert mit dem :
client.print(Temperatur"\n")
tatsächlich sieht es jetzt besser aus :-)
Hier:
client.fastrprint("Lansensor sLantemp=");
client.print(Temperatur);
client.print("\n");

DANKE!
Desweiteren ist es immer nur eine Verbindung,wird ja immer getrennt nach dem senden mit:
client.close();

Zu meine Projekt:

Code:
byte ip[] = {192, 168, 178, 77 };                                                                 //Manual setup only
byte gateway[] = {192, 168, 178, 1 };                                                             //Manual setup only
byte subnet[] = {255, 255, 255, 0 };                                                              //Manual setup only
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
EthernetServer server = EthernetServer(80);

Hast du alles da eigetragen?
Es sind manuelle Einstellungen,also somi auch kollisionen mit anderen MAC oder IP möglich!!!!

Hast du versucht den mit einem testcode ob das shield soweit selber geht?

Also bei mir ohne Probleme mit dem Code egal ob Firefox,Chrome usw.

Gruß
Haustechno

Smarthome ist die Zukunft ;-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.08.2015, 08:19 (Dieser Beitrag wurde zuletzt bearbeitet: 02.08.2015 09:02 von Home38.)
Beitrag #23
RE: Hobby Programierer gesucht gegen Entgelt.
Hi,

habe den Code einfach rübergebügelt, ohne zu schauen . War nur ein Versuch.

Schau mal auf Deiner "Projektseite" nach. Werde gleich Deinen Code (leicht) modifiziert (UDP-Debugging) ist jetzt eingebaut. Es sind nur für Dich UDP-gekennzeichnete Code-Schnipsel interessant. Natürlich musst Du IP für UDP auch ändern.

Nur die neuen Codeschnipsel aus dem Code kopieren, habe noch andere Sachen geändert.

Kommando zurück, war zu schnell SIEHE Anhang HIER !!!!!!!

(02.08.2015 08:19)Home38 schrieb:  Hi,

habe den Code einfach rübergebügelt, ohne zu schauen . War nur ein Versuch.

Schau mal auf Deiner "Projektseite" nach. Werde gleich Deinen Code (leicht) modifiziert (UDP-Debugging) ist jetzt eingebaut. Es sind nur für Dich UDP-gekennzeichnete Code-Schnipsel interessant. Natürlich musst Du IP für UDP auch ändern.

Nur die neuen Codeschnipsel aus dem Code kopieren, habe noch andere Sachen geändert.

Kommando zurück, war zu schnell SIEHE Anhang HIER !!!!!!!

IP/Gateway hatte ich geändert, Mac war erst einmal egal, habe gerade nur einen Arduino im Netz.

Oh je,

das mir dem Antworten muss ich noch üben ! Confused

Kannst Du auf der Projektseite mal die Schaltung einstellen, habe Sie nicht gefunden.

Ich vermute mal, daß ich erstmal die Schaltung nachbauen muss, um das zu verstehen.

Geht es jetzt mit dem CC3000, dem Code nach zu urteilen, war das schon die Variante mit dem CC3000 oder irre ich mich da ??


Angehängte Datei(en)
.ino  Projekt_DHT22_Version4_Mit_UDP_Debugging.ino (Größe: 28,93 KB / Downloads: 31)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.08.2015, 09:02
Beitrag #24
RE: Hobby Programierer gesucht gegen Entgelt.
Hmm,
sorryHuh
aber verstehe nicht was du damit bezwecken möchtest?
Kanntst du das mal für Anfänger erklären?
Gruß
Haustechno

Smarthome ist die Zukunft ;-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Tastereingang gegen mehrmaliges drücken sperren Haustechno 9 818 13.09.2016 17:47
Letzter Beitrag: garagenloeter
  Hilfe gesucht. Webserver Statsiche und Dynamische HTMl Seite b3ta 11 451 22.08.2016 08:07
Letzter Beitrag: b3ta
  Programmierer gesucht (einfaches Uni-Projekt) grt35a 2 270 12.08.2016 11:36
Letzter Beitrag: grt35a
  Grundlagen zur UART Kommunikation gesucht... torsten_156 10 886 16.12.2015 22:26
Letzter Beitrag: Bitklopfer
  Fehler gesucht bergfrei 6 1.175 07.08.2015 06:28
Letzter Beitrag: bergfrei
  Programmierer gesucht SLY 5 1.506 17.07.2015 12:46
Letzter Beitrag: SLY
  Hilfe für Programmänderung benötigt/gesucht! Philipp.macht.Fotos 13 1.788 16.07.2015 17:16
Letzter Beitrag: HaWe
  Linien Diagramm Lib gesucht Thrillhouse 1 704 30.05.2015 21:59
Letzter Beitrag: Scherheinz
  gesucht: C-Funktion zum Einfügen eines Teilstrings in einen größeren HaWe 1 863 25.05.2015 10:30
Letzter Beitrag: HaWe
  Suche Unterstützung gegen Bezahlung bernd36 0 781 29.04.2015 09:31
Letzter Beitrag: bernd36

Gehe zu:


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