1. Du musst dich registrieren, bevor du Beiträge verfassen kannst. Klicke auf Jetzt registrieren!, um den Registrierungsprozess zu starten. Registrierte User surfen werbefrei, können Suchen durchführen und sehen die volle Darstellung des Forums!!!
    Information ausblenden

Grillforum und BBQ - www.grillsportverein.de

    #include
    BBQ Thermometer Nodemcu (ESP8266) Blynk und Raspberry Server, 19. Oktober 2018 um 21:50 Uhr
  1. Cju

    @s.ochs

    Den I²C von Standard SDA=GPIO4 (default) und SCL=GPIO5 (default) auf D3=GPIO0 und D4=GPIO2 zu legen, mache ich wie folgt .?
    Entweder mit :


    #include <Wire.h>
    #include <Adafruit_GFX.h>
    #include <ESP_Adafruit_SSD1306.h>
    #define OLED_RESET 3
    Adafruit_SSD1306 display(OLED_RESET);

    void setup() {
    Serial.begin(9600);
    Wire.pins(0,2);
    Wire.begin();
    display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
    display.display();
    delay(3000);

    }
    void loop() {
    }

    oder mit :

    #include <Wire.h>
    #include <Adafruit_GFX.h>
    #include <ESP_Adafruit_SSD1306.h>
    #define OLED_RESET 3
    Adafruit_SSD1306 display(OLED_RESET);

    void setup() {
    Serial.begin(9600);
    Wire.begin(0,2);
    display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
    display.display();
    delay(3000);
    }
    void loop() {
    }


    Allerdings geht das OLED nur dann wenn ich die default Adresse des OLED von 7C auf 3C ändere .
    Warum ist das so ? hat das was mit Master Slave zu tun ?

    Sorry da suche ich mir schon nen Wolf ... ich kann dazu nichts finden !
    Vielleicht kannst du mir etwas "genauer" auf die Sprünge helfen ... würde mich freuen .
    Also wie gebe ich dem MAX31855 (MAX6675) eine eindeutige I²C Adresse ? und wozu brauche ich danach immer noch CS ?
  2. BBQ Thermometer Nodemcu (ESP8266) Blynk und Raspberry Server, 11. Oktober 2018
  3. Cju

    Hallo

    Ich habe mir einen El Fuego Portland zugelegt und habe bisher immer mein Maverick zum Smoken genutzt. Da ich noch einen Nodemcu als Ersatz für meine Sprenklersteuerung herumliegen hatte, dachte ich mir baue doch mal ein WiFi BBQ Thermometer.
    Also habe ich noch ein OLED Display und zwei Max6675 geordert und los ging es.

    Was braucht man ?

    1 x NodeMCU Lolin mit ESP8266 12E oder NodeMCU Amica (5 Euro hier in DE)
    2 x MAX6675 (mit Sensoren Typ K 9,98 Euro für 2 Stück hier in DE)
    1 X OLED 0,96 Zoll (könnte man auch weglassen, 4,99 Euro hier in DE)

    1 x 5Volt Versorgungsspannung in Form von zBspl. vorhandener Powerbank, Smartphone Netzteil ....

    Natürlich wird es beim freundlichen ChinaMann preisgünstiger ;)

    Als erstes installiert man erstmal Arduino incl. Bibliotheken auf seinem PC, sofern man das nicht hat.
    Als nächstes installiert man die APP Blynk auf dem Smartphone.
    Dort erstellt man ein neues Projekt und bekommt dann einen Authentic Token an seine hinterlegte e-mail gesendet.
    Da ich nicht über die Blynk Cloud kommunzieren möchte habe ich Blynk Server auf meinem Raspberry laufen.

    Zum Programmieren des Nodemcu benötigt man auf seinem PC Arduino.
    Mag jetzt alles kompliziert klingen ist aber kein Hexenwerk und es gibt viele Videos zum Thema.

    Wie alles "verkabelt" wird seht ihr im "Anhang,Upload"
    Was kann man mit dem BBQ Thermometer anstellen ?

    Man kann bis zu 4 Thermosensoren Typ K anschließen. Ausgabe für die Hitze im Smoker und eine Kerntemperatur erfolgt am OLED Display. Vollständige Anzeige aller Daten macht man über die Blynk App!

    - bis zu 4 Thermometer anzeigen
    - min und max Temperatur für die Hitze im Smoker einstellen
    - bis zu 3 x die Kerntemperatur anzeigen lassen
    - bei erreichen oder unterschreiten der Temperatur im Smoker eine Push Nachricht (sowie Sound) & oder e-mail senden (Eventor in der Blynk App)
    - bei erreichen der Kerntemperatur(en) eine Push Nachricht & oder e-mail senden (Eventor in der Blynk App)
    - anzeigen von graphischen Verlaufskurven in der Blynk App

    - jetzt könnte das ganze noch erweitert werden -> Servormotor zur Klappensteuerung am Smoker,Piezo Beeper direkt am Nodemcu, Servomotor zur automatischen Gasregelung und und und .....

    Die Sensoren sind jetzt nix besonderes (einen oder auch zwei kann man fest im Smoker installieren (Loch bohren, festschrauben, man kann ja auch zwei oder drei Hitze Sensoren im Smoker benutzen)
    Für das Messen der Kerntemperatur sollte man sich einen anderen (besser geeigneten) zulegen.

    Im Code für den NodeMCU ESP8266 müsst ihr folgendes anpassen :

    SSID für euer WLAN
    Passwort für euer WLAN
    Server Adresse für euren Raspberry oder halt die Blynk Cloud
    und ganz wichtig der auth Token vom Blynk

    So das waren auf die schnelle mal ein paar Anregungen meinerseits ;)
    Ich bin mir im klaren das es hier auch sehr schöne andere (teurere) Projete gibt ;)
    Meinem "BBQ Thermometer" muß jetzt nur noch ein Gehäuse bekommen.


    Kleiner Hinweis für die die es evt. Nachbauen wollen ... die max6675.cpp im Windows Ordner ->
    Arduino/libraries/MAX6675-library-master muß editiert werden sonst gibt es eine Fehlermeldung beim kompilieren.
    siehe dazu -> https://www.az-delivery.de/blogs/az...erry-pi/esp8266-mit-max6675?ls=de&cache=false

    oder hier im Beispiel :

    ---------------------------------------------------------------------------------
    max6675.cpp

    // this library is public domain. enjoy!
    // www.ladyada.net/learn/sensors/thermocouple

    #define _delay_ms(ms) delayMicroseconds((ms) * 2000)
    //#include <avr/pgmspace.h>
    //#include <util/delay.h>
    #include <stdlib.h>
    #include "max6675.h"

    ---------------------------------------------------------------------------------

    Schaltplan Nodemcu MAX6675 OLED 0,96Zoll

    [​IMG]

    PIN OUT Nodemcu

    [​IMG]

    Screenshot Blynk App

    [​IMG]

    Screenshot Blynk App

    [​IMG]

    OLED Anzeige

    [​IMG]



    Code für Arduino Nodemcu ESP8266 als zip File ....
    Um den Code direkt in Ardurino zu öffnen bitte nach dem Entpacken die Endung .txt von "eBBQ_Therm_mit_OLED.ino) entfernen.

    BBQ_Therm_mit_OLED.ino.txt.zip





    Hier der Code für Aduino -> Nodemcu ESP8266


    Code:
    
    #define BLYNK_PRINT Serial
    
    #include <max6675.h>
    #include <ESP8266WiFi.h>
    #include <BlynkSimpleEsp8266.h>
    #include <Wire.h>
    #include <Adafruit_GFX.h>
    #include <ESP_Adafruit_SSD1306.h>
     
    #define OLED_RESET 4
    
    int ktcSO = 12;
    int ktcCS = 13;
    int ktcCLK = 14;
    int foodCSO = 15;
    int foodCSM = 02;
    int foodCSU = 16;
    
    
    MAX6675 ktc(ktcCLK, ktcCS, ktcSO);
    MAX6675 foodO(ktcCLK, foodCSO, ktcSO);
    MAX6675 foodM(ktcCLK, foodCSM, ktcSO);
    MAX6675 foodU(ktcCLK, foodCSU, ktcSO);
    
    Adafruit_SSD1306 display(OLED_RESET);
    
    // You should get Auth Token in the Blynk App.
    char auth[] = "5xxxxxxxxxxxxxxxxxxxxxxd8563";
    
    // Your WiFi credentials.
    // Set password to "" for open networks.
    char ssid[] = "deine SSID WLAN";
    char pass[] = "dein Passwort";
    char server[] = "deine Server IP oder Blynk Cloud";
    
    BlynkTimer timer;
    
    // This function sends Arduino's up time every second to Virtual Pin (5).
    // In the app, Widget's reading frequency should be set to PUSH. This means
    // that you define how often to send data to Blynk App.
    
    void readSensorTimerEvent()
    {
     
    float t = ktc.readCelsius();
    float mtO = foodO.readCelsius();
    float mtM = foodM.readCelsius();
    float mtU = foodU.readCelsius();
    
     Blynk.virtualWrite(V5, t);
     Blynk.virtualWrite(V6, mtO);
     Blynk.virtualWrite(V7, mtM);
     Blynk.virtualWrite(V8, mtU);
     
    }
    
    void setup()
    {
      // Debug console
      Serial.begin(9600);
      //delay(500);
      display.begin(SSD1306_SWITCHCAPVCC, 0x78>>1);
      display.display();
      delay(2000);
      display.clearDisplay();
     
      // You can also specify server:
      //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
      //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
      Blynk.begin(auth, ssid, pass, server, 8080);
     
      timer.setInterval(1000L, readSensorTimerEvent);
     
    }
    
    void displayData(){
      display.setTextSize(1);
      display.setCursor(5,1);
      display.println("Heat Temp");
      display.setTextSize(2);
      display.setTextColor(WHITE);
      display.setCursor(18,14);
      display.print((char)248);
      display.print("C:");
      display.print(ktc.readCelsius());
     
      display.setTextSize(1);
      display.setCursor(5,36);
      display.println("Core Temp");
      display.setTextSize(2);
      display.setCursor(18,50);
      display.print((char)248);
      display.print("C:");
      display.println(foodO.readCelsius());
      
      display.display();
      display.clearDisplay();
    }
    
    void loop()
    {
      Serial.print("\ BBQ C = ");
      Serial.print(ktc.readCelsius());
      Serial.print("\ Heat C = ");
      Serial.print(foodO.readCelsius());
      Serial.print("\ Heat C = ");
      Serial.print(foodM.readCelsius());
      Serial.print("\ Heat C = ");
      Serial.println(foodU.readCelsius());
     
      delay(1000);
      displayData();
    
      Blynk.run();
      timer.run(); // Initiates BlynkTimer
    }
    Den Anhang 1808140 betrachten

    Den Anhang 1808142 betrachten

    Den Anhang 1808143 betrachten

    Den Anhang 1808144 betrachten

    Den Anhang 1808145 betrachten
  4. HBO WLAN Thermometer, 5. Mai 2017
  5. HighCo

    ich habe bisher nur alles auf einem steckbrett aufgebaut... das thermometer habe ich an einem analogen port des arduinos angeschlossen... und hier ist der test code dazu.... mit der ET73.h




    #include <ET73.h> // First we must include the ET73 Library found here

    #define MEAT_PROBE_PIN 4 //Now we define which analog pin we're going to read our probe from

    ET73 meatProbe(MEAT_PROBE_PIN);


    void setup() {
    Serial.begin(57600); //Start the Serial for testing purposes
    }

    void loop() {
    //When we call the meat probe getTemp_F method, by default the library takes 24 readings at a 10ms interval
    float myTemp = meatProbe.getTemp_F();
    float myTemp1 = meatProbe.getTemp_C();

    Serial.print("Temp: ");
    Serial.print(myTemp1);
    Serial.print(" C\n");


    meatProbe.setNumOfSamples(20); //Here we've set the probe to take the average of 20 samples each reading

    meatProbe.setSampleInterval(50); //Here we've set it to take a sample every 200 ms

    myTemp = meatProbe.getTemp_F();

    Serial.print("Temp: ");
    Serial.print(myTemp1);
    Serial.print(" C\n");

    }
  6. WLAN Thermometer Micro, 18. August 2016
  7. s.ochs

    Komisch.
    Die ITEADLIB setzt die Bauds in seiner Init auf 9600, hast du das berücksichtigt? Unter NexHardware.cpp ab Zeile 200 ist die nexInit(), dort kannst du die Bauds ändern.

    Hast du mal eins der Beispiele aus der ITEADLIB verwendet? Da sind sowohl .ino als auch die passenden .hmi drin, so dass du es auf dein Display anpassen kannst. Diese einfachen Skripte sollten ja ohne Probleme laufen, dann hat man auch keine Störeinflüsse von anderen Programmteilen.

    Wenn ich bei mir die "CompText.ino" auf den ESP draufspiele (vorher die .ino um #include "SPI.h"; #include "SD.h"; #include "SoftwareSerial.h" erweitert und unter NexConfig.h nexSerial auf Serial eingestellt und dbSerial auskommentiert) dann bekomm ich beim Start folgende Ausgabe im Serialen Monitor:

    Den Anhang 1310153 betrachten

    Wenn es so aussieht, sollte die Verbindung mit dem Display funktionieren, außer die Verkabelung stimmt nicht.
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deinem Erleben anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden