• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

Display different Roomtemperature on MagicMirror

Scheduled Pinned Locked Moved General Discussion
31 Posts 4 Posters 8.8k Views 4 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    JerryP @wishmaster270
    last edited by Nov 27, 2022, 8:16 AM

    @wishmaster270

    nice…

    1 Reply Last reply Reply Quote 0
    • X Offline
      Xilef @wishmaster270
      last edited by Nov 27, 2022, 9:21 AM

      @wishmaster270 Thats exactly what i had in mind

      The BME280 sensors on amazon are a litte expensive so Im think Im order 3 form this shop They have 5 Pins but I think this will work to, on Aliexpress its even cheaper but i have no experience with the shop, and 1-3€ difference is ok i guess

      And I wanted to ask what power supply you use e.g. just a cell phone charger?
      I think im gona go with this one and hope that it doesnt explode

      So if I have everything right this is my shopping list:
      ESP32
      BME280
      Power Supply
      BreadBoard

      And then I just have to figure out the programming

      X W 2 Replies Last reply Nov 27, 2022, 10:25 AM Reply Quote 0
      • X Offline
        Xilef @Xilef
        last edited by Nov 27, 2022, 10:25 AM

        Edit: With Power Supply i mean this one: https://www.amazon.de/gp/product/B08LMFBV55/ref=ox_sc_act_title_2?smid=A1XVC08L2WVJCV&psc=1

        1 Reply Last reply Reply Quote 0
        • W Offline
          wishmaster270 Module Developer @Xilef
          last edited by Nov 27, 2022, 10:36 AM

          @Xilef Hi, the list sounds good. I use old mobile chargers to power the boards. I have heard that some had problems with mobile chargers but I had no problems for years now.

          1 Reply Last reply Reply Quote 0
          • X Offline
            Xilef
            last edited by Dec 1, 2022, 5:57 PM

            Hey im back @wishmaster270

            my parts arrived, and after 5 hours of Troubleshooting i was able to achieve this: (with the help of this tutorial)
            70a039b8-932a-412c-8365-5ccfd77ccd60-image.png

            Now i need just a little bit help to display the Temperature and Humidity on my mirror

            W 1 Reply Last reply Dec 1, 2022, 6:27 PM Reply Quote 0
            • W Offline
              wishmaster270 Module Developer @Xilef
              last edited by wishmaster270 Dec 1, 2022, 6:43 PM Dec 1, 2022, 6:27 PM

              @Xilef
              Hi,
              thats great news.
              The screenshot shows that you setup the ESP32 and the sensor correctly.
              The main problem is that the ESP now displays a webpage.
              There are two possible ways now. Either you embed the webpage (as it is) into the mirror with a module like MMM-EmbedURL or to get the ESP to display the data machine readable.
              Maybe the sketch you flashed to the ESP already contains a way to read the data in a different format? Which one did you use?

              Edit: I think it is this one, am i right? Then there is no easy way.
              I think i can provide a sketch that is more “mirror friendly” but you will need to set a static IP for the ESP. Is this ok for you?

              You will need to change to your needs:

              • ##ADD_WIFI_SSID_HERE
              • ##ADD_WIFI_PASSWORD_HERE
              • IPAddress local_IP(192, 168, 0, 2);
              • IPAddress gateway(192, 168, 0, 1);
              • IPAddress subnet(255, 255, 255, 0);
              • IPAddress primaryDNS(192, 168, 0, 1);
              #include <WiFi.h>
              #include <Wire.h>
              #include <Adafruit_Sensor.h>
              #include <Adafruit_BME280.h>
              
              const char* ssid     = "##ADD_WIFI_SSID_HERE";
              const char* password = "##ADD_WIFI_PASSWORD_HERE";
              
              //ENTER STATIC IP OF THE ESP32 BOARD HERE
              IPAddress local_IP(192, 168, 0, 2);
              IPAddress gateway(192, 168, 0, 1);
              IPAddress subnet(255, 255, 255, 0);
              IPAddress primaryDNS(192, 168, 0, 1);
              IPAddress secondaryDNS(8, 8, 8, 8);
              
              Adafruit_BME280 bme;
              
              WiFiServer server(80);
              
              void setup()
              {
                Wire.begin();
                Serial.begin(115200);
              
                if (!WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)) {
                  Serial.println("STA Failed to configure");
                }
              
                Serial.print("Connecting to ");
                Serial.println(ssid);
              
                WiFi.begin(ssid, password);
              
                while (WiFi.status() != WL_CONNECTED) {
                  delay(500);
                  Serial.print(".");
                }
              
                Serial.println("");
                Serial.println("WiFi connected!");
                Serial.print("IP address: ");
                Serial.println(WiFi.localIP());
                Serial.print("ESP Mac Address: ");
                Serial.println(WiFi.macAddress());
                Serial.print("Subnet Mask: ");
                Serial.println(WiFi.subnetMask());
                Serial.print("Gateway IP: ");
                Serial.println(WiFi.gatewayIP());
                Serial.print("DNS: ");
                Serial.println(WiFi.dnsIP());
              
                if (!bme.begin(0x76);) {
                  Serial.println("Couldn't find sensor!");
                  while (1);
                }
              
                server.begin();
              }
              
              void loop()
              {
                float temp = bme.readTemperature();
                float tempf = temp * 1.8 + 32;
                float rel_hum = bme.readHumidity();
              
                WiFiClient client = server.available();
                if (client) {
                  Serial.println("New Client."); 
                  client.println("{");
                  client.print("  \"temperature_c\": ");
                  client.print(temp);
                  client.println(",");
                  client.print("  \"temperature_f\": ");
                  client.print(tempf);
                  client.println(",");
                  client.print("  \"humidity\": ");
                  client.print(rel_hum);
                  client.println(",");
                  client.println("  \"error\": false");
                  client.println("}");
                  client.stop();
                  Serial.println("Client disconnected.");
                  Serial.println("");
                }
                delay(100);
              }
              

              You can use netcat to fetch the data:

              /bin/nc -w3 THE_IP_OF_THE_ESP 80
              

              And the result will be something like:

              {
                 "humidity": 32.61236572265625,
                 "temperature_c": 25.50150878906249, 
                 "temperature_f": 77.9027158203125, 
                 "error": false
              }
              

              This kind of JSON object then can be read by my MMM-Temperature module.

              S X 2 Replies Last reply Dec 1, 2022, 6:43 PM Reply Quote 1
              • S Away
                sdetweil @wishmaster270
                last edited by sdetweil Dec 1, 2022, 6:45 PM Dec 1, 2022, 6:43 PM

                @wishmaster270 I created a sketch for my 8266, which is a json get. returns current temp and humidity.

                then I just fetch it when I want, similar to what u did

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                W 1 Reply Last reply Dec 1, 2022, 6:45 PM Reply Quote 0
                • W Offline
                  wishmaster270 Module Developer @sdetweil
                  last edited by Dec 1, 2022, 6:45 PM

                  @sdetweil Hi Sam, i was to slow with editing my post. The Sketch i provided does exactly that.

                  1 Reply Last reply Reply Quote 1
                  • X Offline
                    Xilef @wishmaster270
                    last edited by Xilef Dec 1, 2022, 7:55 PM Dec 1, 2022, 7:42 PM

                    @wishmaster270 i think thats a good way to to it

                    @wishmaster270 said in Display different Roomtemperature on MagicMirror:

                    but you will need to set a static IP for the ESP

                    So i need to set it manually in the router settings?

                    @wishmaster270 said in Display different Roomtemperature on MagicMirror:

                    #include <WiFi.h>…

                    Thats what i need to flash on the esp , right?

                    @wishmaster270 said in Display different Roomtemperature on MagicMirror:

                    /bin/nc -w3 THE_IP_OF_THE_ESP 80

                    idk what that’s supposed to be for

                    and you have to explain to me in more detail what I should add to the IPs

                    W 1 Reply Last reply Dec 1, 2022, 7:58 PM Reply Quote 0
                    • W Offline
                      wishmaster270 Module Developer @Xilef
                      last edited by Dec 1, 2022, 7:58 PM

                      @Xilef
                      You can but do not have to set the ip in the router. You either need a free address in the range that is NOT used by your routers DHCP server or maybe there is a setting to provide the device always with the same IP in your router. You then can set this IP for the ESP (as it is not used for any other DHCP device in the future then.

                      • the local_ip in the sketch is the IP you choose for the ESP (attention the numbers are separated with , and NOT ..
                      • the gateway is the IP of your router
                      • the subnet depends on your network but 255,255,255,0 will be fine in the most cases
                      • the primaryDNS is usually the IP of you router

                      yes the “include …” part is the one to be flashed to the ESP.

                      After you flashed the new Sketch to the ESP and booted it you can use the nc command to fetch the data from the shell of the mirror. The temperature module uses this command to get the data so you can make sure to see if it works without the need to install the module first.

                      X 1 Reply Last reply Dec 1, 2022, 8:11 PM Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 4
                      • 2 / 4
                      2 / 4
                      • First post
                        20/31
                        Last post
                      Enjoying MagicMirror? Please consider a donation!
                      MagicMirror created by Michael Teeuw.
                      Forum managed by Sam, technical setup by Karsten.
                      This forum is using NodeBB as its core | Contributors
                      Contact | Privacy Policy