Go Down

Topic: Arduino mrk1000 wifi (Read 146 times) previous topic - next topic

arduino5000

May 05, 2019, 04:33 pm Last Edit: May 05, 2019, 07:10 pm by uwefed Reason: ssid und password entfernt
Hallo zusammen
Ich würde gerne noch eine ic2 2X16 hinzufügen um die Messdaten temp/Re.% nicht nur über freeboard.io zu sehen.

Danke.

Code: [Select]


#include <SPI.h>
#include <WiFi101.h>
#include <DHT.h>
 
// Deine SSID resp. Passwort
String ssid = "xxxxx";
String passwort = "xxxxxxxx";
 
// ThingId von dweet.io - kann z.B. bei https://www.guidgenerator.com/ generiert werden
String DweetGuid = "whimsical-lord";
 
// Update-Frequenz in ms (30000 = 0,5 Minute)
int updateFrequency = 30000;
 
// DHT11 an Pin 5
DHT dht(5, DHT11);
 
int ledPin = 6;
 
WiFiClient client;
long lastRun;
int status = WL_IDLE_STATUS;
 
void setup() {
    Serial.begin(115200);
 
    // Überprüfe, ob ein 101er WiFi vorhanden ist
    if (WiFi.status() == WL_NO_SHIELD)
    {
        Serial.println("WiFi nicht gefunden, Abbruch");
        while (1);
    }
 
    // WiFi-Verbindung aufbauen
    while (status != WL_CONNECTED)
    {
        Serial.print("Verbinde mit ");
        Serial.println(ssid);
        status = WiFi.begin(ssid, passwort);
        delay(5000);
    }
 
    Serial.print("Verbunden mit IP ");
    IPAddress ip = WiFi.localIP();
    Serial.println(ip);
 
    // DHT-Sensor initialisieren
    dht.begin();
 
    pinMode(ledPin, OUTPUT);
    digitalWrite(ledPin, LOW);
 
}
 
void loop() {
    lastRun = millis();
 
    digitalWrite(ledPin, HIGH);
 
    sendRequest();
 
    digitalWrite(ledPin, LOW);
 
    long nextRun = lastRun + updateFrequency;
 
    while (nextRun > millis())
    {
        delay(100);
    }
}
 
// Schicke einen Get-Request an dweet.io mit den aktuellen Messwerten des Sensors
void sendRequest()
{
    // Sensor-Werte holen
    float temperature = dht.readTemperature();
    float humidity = dht.readHumidity();
 
    if (isnan(temperature) || isnan(humidity))
    {
        Serial.println("DHT-Sensor failed");
        return;
    }
 
    Serial.print("Send Request..");
    client.stop();
 
    if (client.connect("dweet.io", 80))
    {
        client.println("POST /dweet/for/" + DweetGuid + "?temperature=" + temperature + "&humidity=" + humidity + " HTTP/1.1");
        client.println("Host: dweet.io");
        client.println("User-Agent: MyMKR1000/0.1");
        client.println();
        Serial.println("...Request sent");
    }
    else
    {
        Serial.println("..FAILED");
    }
}


Tommy56

Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [*code] davor und [*/code] dahinter ohne *).
Das kannst Du auch noch nachträglich ändern.


Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

arduino5000


HotSystems

#3
May 05, 2019, 05:53 pm Last Edit: May 05, 2019, 05:54 pm by HotSystems
Ich nehme mal an, dass du ein I2C-LCD anschließen möchtest.
Da solltest du dir eins aussuchen, welches auch mit 3,3Volt funktioniert.

Das wird einfacher, da du sonst mit Levelshifter arbeiten musst.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Tommy56

Falls das Deine rele SSID/Passwortkombination ist, solltest Du die z.B. durch ****** ersetzen.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

arduino5000

hoi Tommy das sind natürlich nicht meine richtigen ssid pw angaben .

arduino5000

Ich nehme mal an, dass du ein I2C-LCD anschließen möchtest.
Da solltest du dir eins aussuchen, welches auch mit 3,3Volt funktioniert.

Das wird einfacher, da du sonst mit Levelshifter arbeiten musst.

warum den das ich habe ja einen 5v Ausgang.  

gruss

HotSystems

#7
May 05, 2019, 06:43 pm Last Edit: May 05, 2019, 06:44 pm by HotSystems
warum den das ich habe ja einen 5v Ausgang.  

gruss
Aber die Datenpins sind soweit mir bekannt, nur 3,3Volt kompatibel.
Damit funktionieren da auch nur 3,3Volt I2C dran.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

arduino5000

Aber die Datenpins sind soweit mir bekannt, nur 3,3Volt kompatibel.
Damit funktionieren da auch nur 3,3Volt I2C dran.

ja die daten pins sind wirklich 3.3 volt jetz muss ich mir ein neues lcd besorgen.
wie wüdest du den code verändern das ich beide anzeigen haben über lcd und über freeboard.
danke

gruss

HotSystems

ja die daten pins sind wirklich 3.3 volt jetz muss ich mir ein neues lcd besorgen.
wie wüdest du den code verändern das ich beide anzeigen haben über lcd und über freeboard.
danke

gruss

Wenn du schon ein LCD hast, kannst du doch einen Levelshifter für I2C verwenden.
Und sieh dir die Beispiele in der entsprechenden Library zu LCD-I2C an.
Da gibt es passende Beispiele.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

arduino5000

Wenn du schon ein LCD hast, kannst du doch einen Levelshifter für I2C verwenden.
Und sieh dir die Beispiele in der entsprechenden Library zu LCD-I2C an.
Da gibt es passende Beispiele.

Ich Schaue mir das mal an. Ich bin noch Anfänger auf dem Arduino gebiet und habe sehr lange an dem Sketch gearbeitet. Leider ist das ganze nicht so einfach... Übung macht den meister .

danke für die info


gruss

uwefed

#11
May 05, 2019, 07:11 pm Last Edit: May 05, 2019, 07:13 pm by uwefed
Hab den Anfangspost editiert und  ssid und password entfernt.
@arduino5000 Du solltest Dein Password des WLANs ändern.
Grüße Uwe

arduino5000

Hab den Anfangspost editiert und  ssid und password entfernt.
@arduino5000 Du solltest Dein Password des WLANs ändern.
Grüße Uwe
hallo uwe  natürlich sind das nicht meine echten Logins ;) nur Beispiele XD

gruss

HotSystems

Ich Schaue mir das mal an. Ich bin noch Anfänger auf dem Arduino gebiet und habe sehr lange an dem Sketch gearbeitet. Leider ist das ganze nicht so einfach... Übung macht den meister .

danke für die info
Das ist ok.
Du musst dir eine Library raussuchen, die zum MRK1000 passt, dann klappt das auch.
Leider habe ich den nicht und kann da nicht helfen.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Go Up