Glad it is working for you. If you use the Wemos D1 Mini board selected from the ESP8266 2.5.0 core -- the D2 and D5 variables should map and work perfectly.The simple I2C (4 pin) OLED do not support multi-color. The Blue and Yellow have dedicated colors on the screen area. Thanks for the comments.
Thanks! I hope you enjoy the project.
Pi-hole Monitor ESP8266 Wit...View Instructable »
Yeah, the site shortened it. Provide the FULL URL and replace items in the URL for your needs. You should get a valid json response.api.openweathermap.org/data/2.5/group?id=[CITY_ID]&units=imperial&cnt=1&APPID=[API_KEY]
If it compiles it isn't an issue with the ESP8266 core (so 2.4.1 if it compiles should be fine). Are you able to run this with the Serial Monitor from Arduino to see the Errors? Test your API key and CityID with this:http://api.openweathermap.org/data/2.5/group?id=[C...Change out the [CITY_ID] with yours etc...The easiest way to see what is going on is view the Serial Monitor -- the error will show there.
It is fully functional. You probably have an invalid City ID or invalid API key. If you log into the web interface, does it display the error message there on the home page?If not there, plug it in to your computer and open the Serial Monitor from Arduino with baud set to 115200 -- when it boots up and tries to go get the weather data it should log out the error or problem there.When using the City ID -- it is the number that is displayed as part of the URL. Example: Los Angeles comes up with the following OpenWeatherMap URL -- https://openweathermap.org/city/5368361 -- those last numbers on the URL is the City ID (5368361).
The smaller screen is the default in the Settings.h file. If you look at the Readme.md file as well as in the Settings.h -- if you use the larger 1.3 display you have to uncomment out the line for the different driver. ```(optional) 1.3" I2C OLED Display: https://amzn.to/2IP0gRU (must uncomment #define DISPLAY_SH1106 in the Settings.h to use the 1.3" SSH1106 display)```
2.5.0 -- also works.
Not sure if you saw this in the documentation:```*NOTE: You must edit the Settings.h file and remove the // on the "//#define DISPLAY_SH1106" to use the 1.3 SSH1106 display in the code. It defaults to support the SSD1306 display.```If you have already done this and the display still looks that way, then perhaps you have a damaged OLED.
Jeff, make sure you are using the latest version of the code as well as the latest version of the ESP8266 core. It sure looks like you have an old version of a library.Also, if the web interface is working you should be able to load the compiled binary file through the web interface. Give that a try.
Looks like you got a different display than the link provided -- don't fear, it will still work. In the future 2.7 release there is a variable called ledRotation in the Settings.h file that allows you to change the display rotation value.https://github.com/Qrome/marquee-scroller/tree/2.7/* set ledRotation for LED Display panels (3 is default)0: no rotation1: 90 degrees clockwise2: 180 degrees3: 90 degrees counter clockwise (default)int ledRotation = 3;
I have added the ledRotation Value to the Settings.h in the release branch 2.7 and you can preview and use it from here until I make a final release of 2.7. https://github.com/Qrome/marquee-scroller/tree/2.7
Actually, it sounds like you may have purchased a different LED strip than the one I link to in the description. That is fine, but you will need to tell the software to rotate the squares. You can check it out here: https://github.com/Qrome/marquee-scroller/issues/75
Make sure you have a valid city ID number. You should be able to build the GET url with your key and city ID and pull it up on a browser window and see the data response.
Odd, I would not expect it to be a hardware issue unless it is an out of memory issue. The data response can be quite large and if it can't parse it then that might be an issue. Do you see any other details in the Serial Monitor?
Yes, weather works. Make sure your key is valid. Plugin and view the Serial Monitor and it may give you details of the issue.
Make sure OctoPrint is turned on as well as the printer (they should both be on) to test and get the expected result. Does your OctoPrint server use basic authentication? If so, you will need to add that as well.
Does the display come up? If you have loaded it correctly then you should see instructions on the display. The display will ask you to connect to Access Point with a name to the access point. Also, editing the settings.h file is totally optional.
What is your version of Arduino IDE. Also, make sure you have the correct board selected. There is no issue with the code that would require fixing. Make sure you have the correct supporting library packages installed and the ESP8266 core 2.4.2 or 2.4.1 installed for the correct board support.
Yeah, it is possible the display is damaged. They are kind of sensitive. The larger display is very sensitive and I have broken one similar trying to remove it from a case and after it had dead zones and faulty pixels. Sorry.
Has your display shifted in the box? I would not change the code to fix this -- the positions are set down to the pixel and it would probably cut something off on the other side. Do you think the display has been damaged?
There are several model versions you can print. The double wide is in part of the listing at Thingiverse. https://www.thingiverse.com/thing:2884823
Well, right now you can change between different versions using the web interface. Currently there is no plan to support multiple printers. There are many that build the double wide version to monitor two printers. Sorry.
Update the Settings.h file with your Geonames account name. You can test if it is working by putting your name where [YOURID] is in the following URL:http://api.geonames.org/timezoneJSON?formatted=tru...Also, you probably need to un-check the DST option -- not have it checked.The code is active on github -- you can follow progress, issues and changes there.
The issue you posted on the person had a bit of a unique problem. Not sure it is the same for you. Can you give some details as to what you are seeing and what you are expecting?
The only thing I can think of is the wiring. Make sure the OLED you have is labeled correctly. Maybe try and swap the SDA SCL lines? Make sure they are solid connections.
Thanks for sharing your awesome make! Thanks for the comments as well.
It is with the source code. https://github.com/Qrome/printer-monitor
I designed the cases for multiple projects. Some have used them for a button that would turn on and off the display.
Check to see if you have typed an extra character somewhere.
Please try installing the version of ArduinoJson that is listed in the README.md file. That should resolve the issue.
From Schematic to Protoboard - Building a Simple LM386 Guitar Amp on a DIP Protoboard
It looks like you may have lost the starting comment tag /** -- either download them again or fix the comment.
The software is designed to work with OctoPrint server and requires wifi.
No, but it does need to be connected to an OctoPrint server -- and OctoPrint needs wifi.
Thanks! Your printer monitor turned out great! Thanks for sharing your make. I hope to share some more projects soon.
Thank you! The clock looks awesome! I hope to share some more projects too.
You should be able to see the 2.4.1 or 2.4.2 -- that is the version you really want. http://arduino.esp8266.com/stable/package_esp8266c...Are you getting errors in the Arduino console when you start it up?
You can try that. The time and weather display were simply an optional thing when it was not monitoring print jobs. You are going down the right path if you want to modify your own version to include the other screens. You may need to modify code in a couple of places.
Wow, looks great. Glad you got it working.
This is usually a symptom of not having it wired up correctly. Can you check and compare the pins you wired to with the wire diagram?
Connect it to your computer with Aruduino and the Serial Monitor up (baud 115200) -- hit the reset button and watch the Serial Monitor -- you should see what it thinks the user / password is when it boots up.
Cool, glad you got it working. Yeah, it uses the latitude and longitude from the weather data to look up the timezone and daylight savings offset. Thanks for the comments.
Are you able to pull up the normal OctoPrint web interface with http://169.254.95.85 from your browser or another computer? Also, you can blank out the hostname if you know the OctoPrint IP address that works. Also, the OctoPrint password is only there if you have haproxy turned on, you should not use that unless you have the extra layer of security on OctoPrint.
Sorry, I don't understand why you need to provide the /dev/tty/ACM0 anywhere. Everything works over valid network hostnames or IP address. The port field is numeric 5 digit unsigned 16-bit integer with a max value of 65535. Could you share a bit more? Or maybe a screenshot?
Try removing the hostname -- the code goes and resolves the port from the name. If you leave the hostname blank then it should keep the port and IP you specify. Give that a try.
It looks like it is crashing before fully starting up or when you are connecting. Also, not sure if you removed the weatherAPI key or if you didn't provide one.
Nope, no code missing. SPI.h and FS.h are part of the ESP8266 Arduino core libraries. You need to install them in your Arduino IDE. If you download the entire source zip from GitHub for the project you will see the Settings.h file in there. Follow this video -- it is for one of my other projects but it covers the basics of loading the IDE and supporting library files. https://youtu.be/Rm-l1FSuJpI
The base64 is part of the ESP8266 core -- so you just need to update the ESP8266 core.
Yes, I think it should still work. The code is generic to ESP8266 or compatible boards. I would expect it to work.
The software requires an ESP8266 (Arduino) that has WiFi built on it. It also requires OctoPrint (usually a Raspberry Pi) running with your printer. The Arduino code then uses the OctoPrint REST API services to get the current printing data over a Wifi connection.
The code is open for you. You could easily add a button function -- though it is not currently in my plan for the official release. As for the refresh rate... when the printer is offline -- it checks every 60 seconds on a change. When it is online -- it checks every 10 seconds. Not sure what you mean by the 1 minute. The "Time Refresh" -- is only how often it checks and resets the clock with the internet time.
Thanks for the heads up. I updated the display text.
No, not a dumb question at all. It is actually the area I worried most about when sharing this project. I really want this to be an easy project for anyone to pickup and do. Basically, you want to be able to add the shared libraries to your Arduino IDE Library files so that other projects can see them and use them. You can search them up from the Library Manager in the Arduino IDE and if they don't show up in there, you can download them from the original source and import them via a zip file. I hope that helps.
The 3D Printer Monitor code does not use the button (or at least right now). I have other projects that I have not shared publicly that do. I use this station for many projects. Good eyes though.
Basically there are supporting libraries that should be installed and visible to the Arduino IDE. Most can be searched up using the Library Manager in the Arduino IDE. If you can't find them in the Library Manager search then you can download them and load them via a zip file.
This uses OctoPrint -- and that already gives you full control on your Desktop with a web interface. This Wemos version simply displays status from the OctoPrint server.
The Web Interface for this Wemos device can be accessed and configured from your desktop browser.
LED Marquee Scroller Wemos ...View Instructable »
3D Printer Monitor Wemos D1...View Instructable »