author
5Instructables18,657Views99CommentsAustraliaJoined June 3rd, 2015
I am a retired professional engineer, now farmer. Taking an interest in all things technological and in building devices useful on the farm.

Achievements

10K+ Views Earned a bronze medal
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Hi LexenZ, it depends on what you mean by "integrate". Usually inverters are designed to draw very large currents from the battery, which means that direct connection is usually used. If you can explain what you would like to do, maybe you can get some useful advice.

    View Instructable »
  • farmerkeith commented on farmerkeith's instructable DIY Linear Actuator7 days ago
    DIY Linear Actuator

    Thanks clothier_bruce. Yes getting something actually completed is always a challenge, there is a continual flow of new projects. Choice of motor is a matter of matching speed and force requirements of the job with motor capabilities and the available gearing. The motor I chose is performing well within its limits. I agree that re-use of a cordless drill motor is interesting, and may be a good choice for this job. I planned to build something similar using a cordless drill motor, but it has not hit the "today" list yet. I suspect there are extra challenges to do with the mounting arrangements. As for limit switches, "awful" or otherwise - I understand the principle of measuring the current draw, which is proportional to motor torque, and using that to decide when the...

    see more »

    Thanks clothier_bruce. Yes getting something actually completed is always a challenge, there is a continual flow of new projects. Choice of motor is a matter of matching speed and force requirements of the job with motor capabilities and the available gearing. The motor I chose is performing well within its limits. I agree that re-use of a cordless drill motor is interesting, and may be a good choice for this job. I planned to build something similar using a cordless drill motor, but it has not hit the "today" list yet. I suspect there are extra challenges to do with the mounting arrangements. As for limit switches, "awful" or otherwise - I understand the principle of measuring the current draw, which is proportional to motor torque, and using that to decide when the travel is at the end. However this method does not allow for operation of multiple actuators in a daisy chain from the same controller, which can be done with the limit switches. I covered this in the Instructable and it was one of my requirements. If your requirement does not include the daisy chain capability, then you have the choice of limit switches or current sensing. It becomes a question of where you want the extra complexity. Thanks again for your comment. Keith

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Tommy, Neither V3 nor V3.1 is successful at the moment. At the minimum the circuit needs some modification; and also the capacity is very limited even with the minimum modification. I am working on a design to solve these problems.

    View Instructable »
  • ARDUINO SOLAR CHARGE CONTROLLER ( Version 2.0)

    AjR34, you can find the software in step 12, both as a download and as a link to GitHub.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 14 days ago
    Solar Powered WiFi Weather Station

    Hi mrkrash, the main function of the TP4056 is to protect the battery from being overcharged. The versions with OUT+- also have over-discharge protection. although this is very desirable, it is not essential to make the project work. You can connect the WeMos D1 min pro directly to the Bat +- terminals.

    View Instructable »
  • ARDUINO SOLAR CHARGE CONTROLLER ( Version 2.0)

    Hi Nikhil ChakravarthyC , yes you should be able to use a 10W, 12V solar panel with this project.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 22 days ago
    Solar Powered WiFi Weather Station

    I have been getting about 50 metres with the external antenna and about 20 metres with the built-in antena. It depends a lot on the local conditions, including the base station that you are using and obstacles in between the base and your project hardware.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 27 days ago
    Solar Powered WiFi Weather Station

    Hi brosvv1, Maybe I can help you best with the Blynk version. I think you should try removing the comment-out slashes in line 28, so as to enable serial printing from the Blynk library. So this line will now read#define BLYNK_PRINT Serial // Comment this out to disable prints and save spaceIf you can't work out what is the problem, please post the output from the serial monitor here so that I can look at it, and may be able to give further advice.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 4 weeks ago
    Solar Powered WiFi Weather Station

    Hi Rengatharu,If you do not have another WeMos already, then you need to purchase another one. When it arrives, try to upload a sketch to it before you solder any pins, that way you will be sure you have not damaged it in any way (not that soldering the pins is likely to damage it).

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 5 weeks ago
    Solar Powered WiFi Weather Station

    Hi jfmateos,If you want to understand more about the power connections, please look at my reply to EdithAndLucas from 7 months ago. It may be that you will get more energy from your battery by making the connection to 3.3V instead of 5V, although I think the difference is probably quite small. You also run the risk of causing your WeMos to fail due to over voltage, although I think that is also a low risk in this situation.

    Hi Rengatharu,I think the first thing you should do is unplug the WeMos from the circuit board and try the upload to it, without anything connected to its pins. If that fails as above, you almost certainly have a faulty WeMos. Try the same thing with another WeMos - that is, upload not plugged in to anything. If that fails as well, you may need to try different hardware combinations - eg a different USB cable, a different USB port on your computer. For example, here is what I see in the bottom window of my IDE (v1.8.5) when I open a brand new (blank) sketch and upload it to a WeMos D1 mini pro. The big different occurs on about line 8 of what you sent, including the word "failed". Good luck!KeithArchiving built core (caching) in: /tmp/arduino_cache_624375/core/core_esp8266_es...

    see more »

    Hi Rengatharu,I think the first thing you should do is unplug the WeMos from the circuit board and try the upload to it, without anything connected to its pins. If that fails as above, you almost certainly have a faulty WeMos. Try the same thing with another WeMos - that is, upload not plugged in to anything. If that fails as well, you may need to try different hardware combinations - eg a different USB cable, a different USB port on your computer. For example, here is what I see in the bottom window of my IDE (v1.8.5) when I open a brand new (blank) sketch and upload it to a WeMos D1 mini pro. The big different occurs on about line 8 of what you sent, including the word "failed". Good luck!KeithArchiving built core (caching) in: /tmp/arduino_cache_624375/core/core_esp8266_esp8266_d1_mini_CpuFrequency_80,UploadSpeed_921600,FlashSize_4M3M_5599fd7b37e9acceacc41dbccdf043b5.aSketch uses 221919 bytes (21%) of program storage space. Maximum is 1044464 bytes.Global variables use 31484 bytes (38%) of dynamic memory, leaving 50436 bytes for local variables. Maximum is 81920 bytes./home/guy/.arduino15/packages/esp8266/tools/esptool/0.4.9/esptool -vv -cd nodemcu -cb 921600 -cp /dev/ttyUSB0 -ca 0x00000 -cf /tmp/arduino_build_451683/sketch_jan13a.ino.bin esptool v0.4.9 - (c) 2014 Ch. Klippel <ck@atelier-klippel.de> setting board to nodemcu setting baudrate from 115200 to 921600 setting port from /dev/ttyUSB0 to /dev/ttyUSB0 setting address from 0x00000000 to 0x00000000 espcomm_upload_file espcomm_upload_memopening port /dev/ttyUSB0 at 921600 tcgetattr tcsetattr serial openopening bootloaderresetting boardtrying to connect espcomm_send_command: sending command header espcomm_send_command: sending command payloadtrying to connect espcomm_send_command: sending command header espcomm_send_command: sending command payload espcomm_send_command: receiving 2 bytes of data espcomm_send_command: receiving 2 bytes of data espcomm_send_command: receiving 2 bytes of data espcomm_send_command: receiving 2 bytes of data espcomm_send_command: receiving 2 bytes of data espcomm_send_command: receiving 2 bytes of data espcomm_send_command: receiving 2 bytes of data espcomm_send_command: receiving 2 bytes of dataUploading 226064 bytes from /tmp/arduino_build_451683/sketch_jan13a.ino.bin to flash at 0x00000000 erasing flash size: 037310 address: 000000 first_sector_index: 0 total_sector_count: 56 head_sector_count: 16 adjusted_sector_count: 40 erase_size: 028000 espcomm_send_command: sending command header espcomm_send_command: sending command payload setting timeout 15000 setting timeout 100 espcomm_send_command: receiving 2 bytes of data writing flash................................................................................ [ 36% ]................................................................................ [ 72% ]............................................................. [ 100% ]starting app without reboot espcomm_send_command: sending command header espcomm_send_command: sending command payload espcomm_send_command: receiving 2 bytes of dataclosing bootloader

    View Instructable »
  • farmerkeith commented on farmerkeith's instructable DIY Logging Thermometer5 weeks ago
    DIY Logging Thermometer

    SzymonW7 has had problems with the EEprom not working due to device address mismatch. Szymon is using a DS3231 module whereas I used a DS1307 module. The DS3231 module is slightly different from the DS1307. Both of them have 3 sets of link pads that can be used to set the address of the AT24C32 EEprom. The DS1307 module comes from the supplier with all 3 links in place, which gives the I2C address for the EEprom of 0x50. The DS3231 module comes from the supplier with no links in place, which gives the I2C address for the EEprom of 0x57.Changing these links allows the I2C address to be set to any value from 0x50 to 0x57 by joining different combinations of the link pads, which can give 8 different combinations to the AT24C32 EEprom chip. To adapt to the DS3231 module default value of 0x...

    see more »

    SzymonW7 has had problems with the EEprom not working due to device address mismatch. Szymon is using a DS3231 module whereas I used a DS1307 module. The DS3231 module is slightly different from the DS1307. Both of them have 3 sets of link pads that can be used to set the address of the AT24C32 EEprom. The DS1307 module comes from the supplier with all 3 links in place, which gives the I2C address for the EEprom of 0x50. The DS3231 module comes from the supplier with no links in place, which gives the I2C address for the EEprom of 0x57.Changing these links allows the I2C address to be set to any value from 0x50 to 0x57 by joining different combinations of the link pads, which can give 8 different combinations to the AT24C32 EEprom chip. To adapt to the DS3231 module default value of 0x57, the software has to be changed slightly from the original code. Once Szymon has confirmed that the changes work, I will post the updated code. Keith

    View Instructable »
  • farmerkeith made the instructable DIY Logging Thermometer5 weeks ago
    DIY Logging Thermometer

    Hi SzymonW7, here is a new version of the software, v3.01, with some of the problems fixed, or at least responded to. I think there is a bit more to do to make it more robust in the face of errors. Keith

    View Instructable »
  • farmerkeith commented on farmerkeith's instructable DIY Logging Thermometer5 weeks ago
    DIY Logging Thermometer

    SzymonW7, another thing to do, if your EEprom is responding with the correct address.In the logging thermometer v3 software, comment out the following lines (which are all Serial.Print statements that put a lot of lines to the serial monitor that obscure what is going on with the EEprom and SD card:comment out lines 177, 178, 179, 301, 302, 303, 304, 342, 346, 363-369also remove comment-out from line 433. With these changes, the Serial monitor just reports SD card and EEprom activity, which makes it feasible to see what is going on. Then you could post an extract from the serial monitor for me to check. Regards,Keith

    Hi SzymonW7, I have been looking at this on my own hardware, and have been experiencing similar problems (but not identical I think). It turns out that in my hardware the EEprom is not responding. Perhaps you should check yours. Just run the I2C address scanner that came with the project. I2C_Scanner.ino. If the EEprom is working you should see 2 addresses, )x68 for the RTC and 0x50 for the EEprom. It makes me realise that a test tool for the EEprom is needed, and also the response of the logging thermometer software to EEprom failure could be improved. I will look into those things a bit more. In the meantime can you use I2C_Scanner.ino and let me know what you see?Thanks,Keith

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 6 weeks ago
    Solar Powered WiFi Weather Station

    Hi Rengatharu, Can you post a more complete version of the output, going from the time compilation is finished to the end?Have you tried uploading your sketch multiple times and it fails every time?What are the settings you are using in the Tools menu?I hope we can help you. Keith

    View Instructable »
  • farmerkeith commented on farmerkeith's instructable DIY Logging Thermometer6 weeks ago
    DIY Logging Thermometer

    Hi SzymonW7, I am thinking about what might be causing this. Is the hardware you are using identical to what I listed in the project? And are there any changes you have made to the software? If you can give me these details, I will get out my hardware and look so see what can be done to find the source of this problem. I will be happy to work with you until we find this problem.Regards, Keith

    Hi Szymon, There are 3 versions of my software for this project, the latest version is V3 and is in the companion project "DIY Logging Thermometer with 2 sensors". Can I suggest you try this software, unchanged, with your hardware and let me know the result? I think the first thing is to get the logging working without the DHT11. From memory, the V3 software will work with either 1 or 2 temperature sensors, so it should be OK with your hardware. If it still does not work for you, can I suggest you post an extract from the serial monitor with the offending events in it, so I can look at what is going on, please?Good luck! Keith

    View Instructable »
  • ARDUINO SOLAR CHARGE CONTROLLER ( Version 2.0)

    Hi PhilC99, I have not compiled this myself so I am not sure about the answer. The I2C library I am using uses the "POSITIVE" language and compiles without any problems. Are you using the New Liquid Crystal library by fmalpartida that I reference above? You also have the option of deleting the last two parameters in this setup line. That is, delete the 3, POSITIVE so it becomes just LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);It may also work with the backlight pin parameter included but without the "POSITIVE". "POSITIVE" seems to be the default setting in the library, so it may not be necessary anyway.Good luck. Keith

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 7 weeks ago
    Solar Powered WiFi Weather Station

    brosvv1, I have in the past, and commonly still do, experience failures of this type. It seems to be random, and if you repeat the upload it usually succeeds on the 2nd or 3rd try. Maybe you need to change the hardware or maybe de-power and re-power it, but in my experience usually just a simple retry works.

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Hi WeslleyJ,Thanks for quick response. When you have multiple panels I think it often makes good sense to have separate charge controllers for each panel independently, since they may have different conditions - shadowing or orientation, etc. My normal email is keith.hungerford@gmail.com if you want to use that. Keith

    Good morning WeslleyJ. It is Christmas morning here and very quiet at the moment. I hope you will have a joyous and relaxing Christmas. As for the solar charger project or projects, this is quite a challenge, especially for very high current levels. I have been working on this subject for some time, and I believe I am making progress towards a usable DIY design. I have limited the scope of my design work to 12 Volt lead acid batteries and "grid connect" type solar panels - that is solar panels with 60 cells in series that produce about 30 volts at their maximum power point. The largest panels available today are about 250 Watts when in full sun, which translates to about 20 amps into a 12 Volt battery. Therefore my design work has focussed on solar chargers for these voltages ...

    see more »

    Good morning WeslleyJ. It is Christmas morning here and very quiet at the moment. I hope you will have a joyous and relaxing Christmas. As for the solar charger project or projects, this is quite a challenge, especially for very high current levels. I have been working on this subject for some time, and I believe I am making progress towards a usable DIY design. I have limited the scope of my design work to 12 Volt lead acid batteries and "grid connect" type solar panels - that is solar panels with 60 cells in series that produce about 30 volts at their maximum power point. The largest panels available today are about 250 Watts when in full sun, which translates to about 20 amps into a 12 Volt battery. Therefore my design work has focussed on solar chargers for these voltages and up to 20 amps. Because the 20 Amp design has a lot of challenges, I am working on smaller designs also (which may become part of the final version) for 5, 7 and 10 amps. I am always open to assistance or suggestions. Noting your original question about 60 Amps, and then you mention 30 and 40 (I assume you mean 30 and 40 Amps, not Amp Hours) I am interested in your reasoning for using those values. Also your thoughts on my explanation above.Wishing you a good Chrismas again. Keith.

    View Instructable »
  • farmerkeith commented on farmerkeith's instructable Small Current Circuit Breaker8 weeks ago
    Small Current Circuit Breaker

    Good morning Col68. What a nice Christmas present, to get a greeting from you. it is Christmas day morning here, very quiet for us at the moment. We will be having a family get together later in the day and expect a day of quiet joy. I hope you have the same. Keith

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Hi WeslleyJ. If you want to achieve a solar charger for 60 Amps you will need not only different components but a different design. If you want to post more details of what you are trying to achieve, I may be able to give you some suggestions.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 8 weeks ago
    Solar Powered WiFi Weather Station

    Hi John_dad, good news. Thanks for letting us know.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 2 months ago
    Solar Powered WiFi Weather Station

    Hi MisoM1, yes you can connect a second BME280 to this project quite easily, so long as you are using the 6-pin version of the module. The two extra pins are CSB and SDO. CSB tells the BMP/BME280 whether it will be using I2C or SPI protocol. To use I2C, as in this project, CSB has to be connected to VCC (3.3V). SDO is an address select pin. For the first BMP/BME280, SDO has to be connected to GND (which selects the base address of 0x76), which is the value used by the 4-pin module. For the second BMP/BME280, SDO has to be connected to Vcc (3,3V) which selects the next I2C address of 0x77.As for software, there is a bit of an issue. Neither the SEED nor the Adafruit libraries for the BME280 support the 2 different I2C addresses. There is another library which I wrote and which you can f...

    see more »

    Hi MisoM1, yes you can connect a second BME280 to this project quite easily, so long as you are using the 6-pin version of the module. The two extra pins are CSB and SDO. CSB tells the BMP/BME280 whether it will be using I2C or SPI protocol. To use I2C, as in this project, CSB has to be connected to VCC (3.3V). SDO is an address select pin. For the first BMP/BME280, SDO has to be connected to GND (which selects the base address of 0x76), which is the value used by the 4-pin module. For the second BMP/BME280, SDO has to be connected to Vcc (3,3V) which selects the next I2C address of 0x77.As for software, there is a bit of an issue. Neither the SEED nor the Adafruit libraries for the BME280 support the 2 different I2C addresses. There is another library which I wrote and which you can find at https://www.instructables.com/id/Library-for-BMP2... (it is not published so far but can be accessed via this link) which supports the 2 I2C addresses, however it is only for the BMP280 so it does not have functions for humidity in it. When I bought the parts for this project I mistakenly bought the BMP280 (without humidity), as it was a lot cheaper. Therefore I did not write my library to support the humidity functionality. You can find it also on Github at https://github.com/farmerkeith/BMP280-library . It includes several examples of various use cases which also may help you.I think your options are:a) use my library (I think it will work with the BME280 although it has not been tested);b) modify my library to support humidityc) modify either the Adafruit or Seed library to support 2 I2C addresses (you can use my library as a model)d) ask me to update my library for BME280 and humidity, and wait (maybe several months) for me to do it (I have to order parts and then do the work). It has been my intention to update this library anyway, but there is currently no timetable. If you want to attach more than 2 BME280 or BMP280 devices to your microcontroller, it will be necessary to use another I2C bus, or switch to SPI. These are viable options but it becomes more complicated and the software situation is more tricky as well. I will be interested in your progress. Please let me know by reply how you go. Keith

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 2 months ago
    Solar Powered WiFi Weather Station

    Hi MisoM1, I am sorry I do not understand your question. Can you explain what you are wanting to do a bit more? Maybe I can help.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 2 months ago
    Solar Powered WiFi Weather Station

    Hi MisoM1, you can get detailed information about installing arduino libraries on the Arduino web site, and also at this Instructable https://www.instructables.com/id/Arduino-Install-a...The basic process is a) locate the folder on your computer where all the other libraries are stored,b) make a new sub-folder in that folder with the name of your new library;c) copy the new library into that new sub-folder.d) re-start your IDEIf you look under the Sketch menu item on the IDE (I use version 1.8.5 too so it should be identical on yours) there is an item "Include library". If you hover your mouse pointer over that it will open a list of visible libraries, and your new library should be visible there. Near the top of that list there are two items "Manage libraries" and &...

    see more »

    Hi MisoM1, you can get detailed information about installing arduino libraries on the Arduino web site, and also at this Instructable https://www.instructables.com/id/Arduino-Install-a...The basic process is a) locate the folder on your computer where all the other libraries are stored,b) make a new sub-folder in that folder with the name of your new library;c) copy the new library into that new sub-folder.d) re-start your IDEIf you look under the Sketch menu item on the IDE (I use version 1.8.5 too so it should be identical on yours) there is an item "Include library". If you hover your mouse pointer over that it will open a list of visible libraries, and your new library should be visible there. Near the top of that list there are two items "Manage libraries" and "Add ZIP library". Have a look in those it may give you some useful information about your installation.

    View Instructable »
  • ARDUINO SOLAR CHARGE CONTROLLER ( Version 2.0)

    spmbk, To increase the load current, the main thing is that you need a higher capacity switching device. This design uses an IRF9540. I would suggest an IRF4905 which has a much lower Rds on than the IRF9540. You should also make sure there is a good heat sink. Another option would be SUP90P06-09L which is lower again but quite a lot more expensive and harder to source. You might find other MOSFETs if you look around. To get to 20 Amps you will need good heat sinking and probably at least 2 in parallel. Also make sure the wiring has sufficient capacity.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 2 months ago
    Solar Powered WiFi Weather Station

    John_dad, Your question is not very clear. You can download the Seeed_BME280.h library from the internet. You can find it at https://github.com/Seeed-Studio/Grove_BME280 then follow the usual installation process for a library in the Arduino IDE. Does that help?

    JanW97, the Thingspeak and Blynk versions use different libraries for the BME280, which may be why you get a BME280 problem with Blynk and not with Thingspeak. Have you tried removing power and then restarting for the Blynk version? Sometimes the hardware may encounter an error and needs to be reset. Otherwise you could try changing over to the other library. The message http 400 bad request sounds like an error with Thingspeak, have you checked your registration details carefully?Good luck.

    View Instructable »
  • ARDUINO SOLAR CHARGE CONTROLLER ( Version 2.0)

    The link in this instructable for the LiquidCrystal_I2C llibrary seems to be broken. I have been using the New LiquidCrystal library by fmalpartida which you can get at https://bitbucket.org/fmalpartida/new-liquidcrysta...Any problems, please ask.

    View Instructable »
  • farmerkeith commented on farmerkeith's instructable Small Current Circuit Breaker2 months ago
    Small Current Circuit Breaker

    Hi there Col68, it is nice to hear from you, and yes I am in a good mood today, as usual. I am interested to know how you are going with your project. stay in touch. Regards,Keith

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 2 months ago
    Solar Powered WiFi Weather Station

    if you post the details with some questions I will try to answer them.

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    The algorithm is described in Step 39, and is called Perterb and Observe.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 3 months ago
    Solar Powered WiFi Weather Station

    To Needlerp, one point of correction relating to my earlier reply.The A0 anlog input of the WeMos D1 Mini Pro has a resistive voltage divider connecting it to the ADC input of the ESP8266 microcontroller. There is a 220K resistor from A0 to the ADC pin, and a 100K resistor from the ADC pin to Ground. This means that the 1 volt range, and 1 mv lsb sensitivity of the ESP8266 ADC, is transformed into a 3.2 volt range, and 3.2 mv lsb sensitivity. You also need to take into account the resultant 320K input impedance of the WeMos A0 pin when designing your input voltage circuits.If you have specific questions I will be happy to help you more.

    Your IDE obviously cannot find the ESP8266WiFi library. Have you tried clicking on the Sketch menu and the Include Library item, which then shows a list of all the libraries visible to the IDE? You may have put your copy of ESP8266WiFi.h in the wrong folder. It needs to be in a folder along side all the other libraries that you can see. Good luck.

    View Instructable »
  • farmerkeith commented on deba168's instructable Smartphone Controlled Arduino Rover3 months ago
    Smartphone Controlled Arduino Rover

    It seems to me that you do not have the NewPing.h library installed. You can get it here http://playground.arduino.cc/Code/NewPingor herehttps://github.com/PaulStoffregen/NewPingI have not used these myself, but this looks like your problem to me.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 3 months ago
    Solar Powered WiFi Weather Station

    Hi Sayandeep Nayak, The two extra pins are CSB and SDO. CSB tells the BMP/BME280 whether it will be using I2C or SPI protocol To use I2C, as in this project, CSB has to be connected to VCC (3.3V). SDO is an address select pin. In this project, SDO has to be connected to GND (which selects the base address of 0x76), which is the value used by the 4-pin module.

    View Instructable »
  • 1602 LCD Keypad Shield Module With I2C Backpack

    Col68, I am very happy to support you. You may need to modify the library DFR_Key in order to get it to compile, but it may depend on the library version you are using. I can easily send you the updated library code I used, if that would be helpful to you. Regards, Keith

    View Instructable »
  • 1602 LCD Keypad Shield Module With I2C Backpack

    Hi col68, I am having trouble attaching the file. Trying it as an archive.

    View Instructable »
  • 1602 LCD Keypad Shield Module With I2C Backpack

    Updated code for col68

    View Instructable »
  • 1602 LCD Keypad Shield Module With I2C Backpack

    Hi col68, I wrote a reply to your latest questions, but I think I made a mistake with pressing the wrong button and it was deleted. However I saved it and am now trying to send it again. Hi col68, I have had a look at this code. I have some suggestions for you to consider for software writing; and for the development process; and for the code itself. These are not strict rules or requirements, just things that I have found make the process easier and more efficient. Software writing: Include plenty of comments (thry will help when you come back in the future, and possibly other people who may look at and/or use your code). Use descriptive variable names. For example "humidity" rather than "h" and "humidityThreshold" rather than "hum". For compoun...

    see more »

    Hi col68, I wrote a reply to your latest questions, but I think I made a mistake with pressing the wrong button and it was deleted. However I saved it and am now trying to send it again. Hi col68, I have had a look at this code. I have some suggestions for you to consider for software writing; and for the development process; and for the code itself. These are not strict rules or requirements, just things that I have found make the process easier and more efficient. Software writing: Include plenty of comments (thry will help when you come back in the future, and possibly other people who may look at and/or use your code). Use descriptive variable names. For example "humidity" rather than "h" and "humidityThreshold" rather than "hum". For compound names (like "humidityThrushold" mark each new word in the name with an upper case letter, as in this example. Write functions and use function calls, that than long sequences of statements (I see you have done this to some extent in your code already). Development processCheck that your code will compile. Check it often, so that as you add or change functionality you have what you are trying to achieve still in your mind in case there is a problem. Use Serial.print() .to find out what s going on, if you come across a problem where the software is doing something different from what you are looking for. About your code. I have made a new version which I will attach in a separate reply. I had to find and install the library DFR_Key.h in order to allow it to compile. I am not sure you are actually using that library, since you have your own function in the codeint read_LCD_buttons()I am also not sure if I found the same DFR_Key.h that you are using. The one I found would not compile due to a couple of simple errors in it, which I have fixed in my version. I also had to add a parameter in the constructor call in your sketch (that one that instantiates the DFR_Key object.) If you give me a link to the library you are using we can get in sync on that front. I had to change quite a few things, they are all noted with a "KH" comment. If you can't understand any of them, please let me know.I saw some confusion about relay names, and I adopted one of the 3 possible ways of naming that I found in your original. Please donwload the attached code and see if it compiles for you, and try running it iwth your hardware and see if it does what you want. Good luck and do not worry.

    Hi col68, I have had a look at this code. I have some suggestions for you to consider for software writing; and for the development process; and for the code itself. These are not strict rules or requirements, just things that I have found make the process easier and more efficient. Software writing: Include plenty of comments (thry will help when you come back in the future, and possibly other people who may look at and/or use your code). Use descriptive variable names. For example "humidity" rather than "h" and "humidityThreshold" rather than "hum". For compound names (like "humidityThrushold" mark each new word in the name with an upper case letter, as in this example. Write functions and use function calls, that than long sequences ...

    see more »

    Hi col68, I have had a look at this code. I have some suggestions for you to consider for software writing; and for the development process; and for the code itself. These are not strict rules or requirements, just things that I have found make the process easier and more efficient. Software writing: Include plenty of comments (thry will help when you come back in the future, and possibly other people who may look at and/or use your code). Use descriptive variable names. For example "humidity" rather than "h" and "humidityThreshold" rather than "hum". For compound names (like "humidityThrushold" mark each new word in the name with an upper case letter, as in this example. Write functions and use function calls, that than long sequences of statements (I see you have done this to some extent in your code already). Development processCheck that your code will compile. Check it often, so that as you add or change functionality you have what you are trying to achieve still in your mind in case there is a problem. Use Serial.print() .to find out what s going on, if you come across a problem where the software is doing something different from what you are looking for. About your code. I have made a new version which is attached here. I had to find and install the library DFR_Key.h in order to allow it to compile. I am not sure you are actually using that library, since you have your own function in the code int read_LCD_buttons()I am also not sure if I found the same DFR_Key.h that you are using. The one I found would not compile due to a couple of simple errors in it, which I have fixed in my version. I also had to add a parameter in the constructor call in your sketch (that one that instantiates the DFR_Key object.) If you give me a link to the library you are using we can get in sync on that front. I had to change quite a few things, they are all noted with a "KH" comment. If you can't understand any of them, please let me know.I saw some confusion about relay names, and I adopted one of the 3 possible ways of naming that I found in your original. Please donwload the attached code and see if it compiles for you, and try running it iwth your hardware and see if it does what you want. Good luck and do not worry.

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Please note neither I nor Deba168 (author) is currently working on this project. There are several issues with this circuit. However, Vcc of the IR2104 is connected to the battery, which is nominally 12V, and which is within the range 10 to 20 V given in the data sheet. From memory, I can say that the burning of the MOSFETs is due to Q3, the low side MOSFET, being turned on continuously and drawing a large current from the battery to ground, resulting in a lot of heat and failure of the MOSFET. There are several parts of the circuit that do not work well, with the transition from OFF to Charging being the most serious one. I am quite happy to give you feedback on design ideas if you want to do some work on this circuit, but I am not in a position to do the design myself at the moment.

    View Instructable »
  • 1602 LCD Keypad Shield Module With I2C Backpack

    Hello Col68,I assume you are using one of the Arduino family - nano or uno, etc.You do not need any of the #define statements. It is much better to use const as you have done, so the #define statements just duplicate what they are doing, and may cause confusion later on. I think it is possible to use pin A0 for DHT data pin, but all the examples I have seen use a digital pin, and I would recommend you use a digital pin also. For example pin 2 or 4, but any unused digital pin will be OK.The other #define statement that is not a duplicate of a const declaration is your #define DHTTYPE DHT22. I recommend you delete this also, and when you create your DHT object you just write it as DHT dht(DHTPIN, DHT22);Another thing, you have named your relay pins relay1Pin and relay2Pin, which is OK, ...

    see more »

    Hello Col68,I assume you are using one of the Arduino family - nano or uno, etc.You do not need any of the #define statements. It is much better to use const as you have done, so the #define statements just duplicate what they are doing, and may cause confusion later on. I think it is possible to use pin A0 for DHT data pin, but all the examples I have seen use a digital pin, and I would recommend you use a digital pin also. For example pin 2 or 4, but any unused digital pin will be OK.The other #define statement that is not a duplicate of a const declaration is your #define DHTTYPE DHT22. I recommend you delete this also, and when you create your DHT object you just write it as DHT dht(DHTPIN, DHT22);Another thing, you have named your relay pins relay1Pin and relay2Pin, which is OK, but you also have the option of giving them names that relate to their functions, which I think might be heaterRelay and humidityRelay, or some name (maybe in French) that helps you get the correct relay when you are writing the control code.Good work so far, keep going!Keith

    View Instructable »
  • 1602 LCD Keypad Shield Module With I2C Backpack

    Yes of course you can base your code on mine in the instructable if you want to. That is one of the main reasons for publlishing it, so you can use it to hep you get going. If yo need any help with adding the DHT22 and relays, please do not hesitate to ask. Good luck and enjoy the project. Keith

    View Instructable »
  • 1602 LCD Keypad Shield Module With I2C Backpack

    Hello Col68, I am very pleased that my instructable has helped you, and I will be happy to help you with your next steps if you want. Can you share with me what temperature and humidity sensor or sensors you intend to use?

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 4 months ago
    Solar Powered WiFi Weather Station

    jroy6, You need to download and install this library. You can get it at:https://github.com/Seeed-Studio/Grove_BME280

    View Instructable »
  • 1602 LCD Keypad Shield Module With I2C Backpack

    You can get the LCD I2C library from here:http://www.arduinolibraries.info/libraries/liquid-...This is an Instructable about installing a library:https://www.instructables.com/id/How-to-Add-Arduin...If you have problems following these, please let me know.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 5 months ago
    Solar Powered WiFi Weather Station

    Multimeter is probably the most important test tool, vital for many projects. I am glad you found the essential problem, anyway. When you de-closet your multimeter, I suggest you attach it to the battery (you may need some clips or at least some way of connecting it without having to hold the leads in your hands) and watch the battery voltage, to see if it declines over a period of time - a few minutes, or a few hours. Have fun.Keith

    Do you have a multimeter so you can measure the voltage at various places? If so I suggest the following test sequencee:a) run the WeMos from the USB connector and measure the voltage at 5V and 3.3V pins (relative to GND of course). At the 5V pin you will probably get 4.7V or something close, and at the 3.3V pin you can expect to get exactly 3.3V.b) Measure the voltage at the battery terminals when it is disconnected. Expect about 4V.c) Connect the battery to the 5V pin of the Wemos (with USB unplugged) and measure the 2 WeMos voltages again. The 5V pin should be over 3.7V, the 3.3V should be 3.3V or a bit lower if the battery voltage is below 3.56 V.d) you can connect the battery directly to the 3.3V pin but there are some risks of device failure if the battery voltage is higher than ...

    see more »

    Do you have a multimeter so you can measure the voltage at various places? If so I suggest the following test sequencee:a) run the WeMos from the USB connector and measure the voltage at 5V and 3.3V pins (relative to GND of course). At the 5V pin you will probably get 4.7V or something close, and at the 3.3V pin you can expect to get exactly 3.3V.b) Measure the voltage at the battery terminals when it is disconnected. Expect about 4V.c) Connect the battery to the 5V pin of the Wemos (with USB unplugged) and measure the 2 WeMos voltages again. The 5V pin should be over 3.7V, the 3.3V should be 3.3V or a bit lower if the battery voltage is below 3.56 V.d) you can connect the battery directly to the 3.3V pin but there are some risks of device failure if the battery voltage is higher than 3.6V, which is the maximum value given in the data sheet. This link, https://forum.makehackvoid.com/t/esp8266-operatin... talks about going up to 4.7V. My guess is that up to 4.2V is probably fairly safe. Again you should measure the battery voltage when it is connected to the 3.3V pin. These tests will tell you if there is a problem with the battery, or not. Good luck! Keith

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 5 months ago
    Solar Powered WiFi Weather Station

    I had a look at using LCD. My earlier response was about Labelled Value. LCD is slightly different (but not much). The instructions for Labelled Value say to use /pin.##/ which does what I understand you want. The instructions for LCD in Simple mode are the same, but are actualy wrong. The correct format string is /pin0.##/ to get 2 decimal places on the first value. I have not tried it, but I think you need /pin1.##/ for 2 decimal places on the second value. By the way if you want the "degrees" symbol (a tiny circle near the top of the line) it is in the second page of special characters, accessed with the button labelled "=\<" just above the "ABC" button.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 5 months ago
    Solar Powered WiFi Weather Station

    I assume you are using Blynk. If you use a Labelled Value widget for each display, you can control the display format in the "label" field. For example if you write "Temp./pin.##/C" it will display with 2 digits after the decimal point. If you need more text than you can get in the default size widget, you can increase its size by touching the widget in edit mode for a few seconds, which then allows you to move it around and increase the size.

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    My pleasure. I will be interested to hear how you get on.

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Hi fstketch, easy to ask but the answer is a bit complicated and depends on several factors I don't know about your design and test conditions. If your test circuit is running in Continuous Current Mode (CCM) the Vs waveform will have two parts. One part (Panel phase) is at the panel voltage Vpp, minus the voltage drop across the high side components (mainly Q1 and Q2 in series). The other part is at Earth minus the voltage drop across the low side components (Q3 and D3 in parallel). The transitions between these may show some overshoot and other effects.If your test circuit is running in Discontinuous Current Mode (DCM) the Vs waveform will have 3 parts, Panel phase and Earth phase as for CCM, and then Null phase when Vs will be at the output voltage (battery Vbb). Again transitions ma...

    see more »

    Hi fstketch, easy to ask but the answer is a bit complicated and depends on several factors I don't know about your design and test conditions. If your test circuit is running in Continuous Current Mode (CCM) the Vs waveform will have two parts. One part (Panel phase) is at the panel voltage Vpp, minus the voltage drop across the high side components (mainly Q1 and Q2 in series). The other part is at Earth minus the voltage drop across the low side components (Q3 and D3 in parallel). The transitions between these may show some overshoot and other effects.If your test circuit is running in Discontinuous Current Mode (DCM) the Vs waveform will have 3 parts, Panel phase and Earth phase as for CCM, and then Null phase when Vs will be at the output voltage (battery Vbb). Again transitions may have some additional effects. This photo shows a sample DCM waveform with the 3 phases. From left to right you can see Panel phase, Earth phase, Null phase, then Panel phase again. The top trace is Vs. The bottom trace is a composite of IN and SDbar of the IR2104. I don't have a photo of a CCM trace.

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    To answer your question, Diode D3 is in parallel with Q3, which has an internal body diode. They both have the effect of preventing the inductor voltage (at the drain of Q3) going excessively negative. When Q2 turns off, the inductor current continues and will drive that drain voltage a long way negative unless it is prevented by these diodes. Really the diode D3 should be a Schottky type, rather than the UF4007. The diode only conducts for a short period, starting when Q2 turns off, and ending when Q3 turns on. This delay is controlled by the internal delays of the IR2104, which intentionally delays the turn-on of Q3 to make sure that Q3 is not turned on before Q2 is fully off. Please be aware that this project is not really working. Please see the note at the end of the introductory s...

    see more »

    To answer your question, Diode D3 is in parallel with Q3, which has an internal body diode. They both have the effect of preventing the inductor voltage (at the drain of Q3) going excessively negative. When Q2 turns off, the inductor current continues and will drive that drain voltage a long way negative unless it is prevented by these diodes. Really the diode D3 should be a Schottky type, rather than the UF4007. The diode only conducts for a short period, starting when Q2 turns off, and ending when Q3 turns on. This delay is controlled by the internal delays of the IR2104, which intentionally delays the turn-on of Q3 to make sure that Q3 is not turned on before Q2 is fully off. Please be aware that this project is not really working. Please see the note at the end of the introductory step.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 6 months ago
    Solar Powered WiFi Weather Station

    Last night my version experienced about -7 Celsius with no apparent problems.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 6 months ago
    Solar Powered WiFi Weather Station

    Its quite ambitious. I suggest you go one step at a time. Re your questions: 1. no resistors needed, provided you activate the pull-up resistors built in to the ESP8266 (rain on D8 and Wind speed on D7)2. I think you need to study your multiplexer for the analog voltage input more carefully. Its a bit hard to understand from the picture you provided, but I think you intend to use D2 (for Vcc), D6 (for wind direction) and D7 (for UV level). D6 and D7 will be set Low when not measuring and High when measuring. D2 (for Vcc) will be the reverse, that is Low when measuring and High when not measuring. The emitter of the PNP transistor is connected to Vcc, the base goes to D2 via a 1K resistor, and the collector goes to A0 via a diode. You need to provide a resistive voltage divider for the...

    see more »

    Its quite ambitious. I suggest you go one step at a time. Re your questions: 1. no resistors needed, provided you activate the pull-up resistors built in to the ESP8266 (rain on D8 and Wind speed on D7)2. I think you need to study your multiplexer for the analog voltage input more carefully. Its a bit hard to understand from the picture you provided, but I think you intend to use D2 (for Vcc), D6 (for wind direction) and D7 (for UV level). D6 and D7 will be set Low when not measuring and High when measuring. D2 (for Vcc) will be the reverse, that is Low when measuring and High when not measuring. The emitter of the PNP transistor is connected to Vcc, the base goes to D2 via a 1K resistor, and the collector goes to A0 via a diode. You need to provide a resistive voltage divider for these measurements, because the analog input can only measure between 0 and 1 Volt. The divider could be (say) 23K and 10K so that 3.3V at the junction of the 3 diodes will translate to 1.0V at pin A0. The values you should use depend on the resistance of your UV sensor, and the pot you are using for wind direction. There are good articles on resistive voltage dividers on the internet. Also depending on the diodes you use, the voltage drop in the diodes will affect the values you get, which will need to be compensated if you want accurate results. 3. The size of the resistor from D2 to the base of the PNP transistor should be less than the resistance of the above voltage divider, and the minimum current gain of the PNP transistor you are using. 4. No resistor needed as long as you set the internal pull-up. I don;t understand how you will use this input, so I can't comment on the function you intend. Other comments:I see your picture has the battery charge controller without undervoltage cut-off.. I think the undervoltage cut-off is a very desirable function to get, to protect your battery from over dischage, which can ruin it. Good luck and enjoy the journey.

    The software for Blynk is at the end of step 15 and for ThingSpeak is at the end of step 18.

    Can you please provide details of how you monitor the battery voltage?Thank you.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 6 months ago
    Solar Powered WiFi Weather Station

    You can download this library from GitHub. Then follow the usual process to install a library in the Arduino IDE.

    View Instructable »
  • Arduino IDE: How to Store and Retrieve Data From a File.

    Very useful information, Iotamajig. This is helping me deal with ESP8266 deep sleep and Blynk. Not there yet but this looks like it will really help. By the way, the link to the explanation of "r" for read, etc. is broken. It needs to be .../filesystem.rst rather than ../filesystem.md.thanks for posting.

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Hi, maybe you missed it, there is a note at the bottom of the introduction page,, just before step 1, saying that this project is not working. You can't actually use it, except for ideas and learning about MPPT solar chargers.

    Hi, when the load current requirement reduces, as in the case you mention, the PWM duty cycle decreases so as to keep the charging current just at the point that maintains the battery voltage at the correct value.

    View Instructable »
  • Arduino - Voltage and Current Measurement ACS712, ADS1015

    A few things were puzzling me about this, and I think you have done a good job in this implementation and I have learned a few things from it. The main point is that the sensitivity is scaled by the ratio of Vcc to 5 volts. It is covered in the ACS712 datasheet under the heading "Ratiometry" which I had never checked before. This means it is imperative, if you want accurate results, to measure Vcc and use it to scale not only the 0 current voltage, but also the sensitivity - which you have done. The implementations I have seen before did not do that. It also means that if you are using the Arduino analog inputs, you still need to measure Vcc. You don't need it for the 0 current voltage adjustment, because the Arduino ADC is itself scaled to its own Vcc, and if the ACS712 and t...

    see more »

    A few things were puzzling me about this, and I think you have done a good job in this implementation and I have learned a few things from it. The main point is that the sensitivity is scaled by the ratio of Vcc to 5 volts. It is covered in the ACS712 datasheet under the heading "Ratiometry" which I had never checked before. This means it is imperative, if you want accurate results, to measure Vcc and use it to scale not only the 0 current voltage, but also the sensitivity - which you have done. The implementations I have seen before did not do that. It also means that if you are using the Arduino analog inputs, you still need to measure Vcc. You don't need it for the 0 current voltage adjustment, because the Arduino ADC is itself scaled to its own Vcc, and if the ACS712 and the Arduino share the same Vcc rail, they are automatically synchronised and the 0 current measurement will always be 512 (ie half of the full scale reading of 1024). However, because the sensitivity also needs to be scaled, it is necessary to measure Vcc to apply the correct sensitivity scaling. To do this accurately requires the use of the Arduino 1V reference, and a voltage divider to bring the measured value within range. As to the relative benefit of using the ADS1015 versus the Arduino, the least significant bit voltage on the Arduino is 4.88 mv (=5000/1024) which translates to 74mA. The ADS1015 is 3mV which translates to 45 mA. So it is not all that much better. But with the ADS1015 you also have the option of changing the scaling to 2mV/lsb which gives better accuracy of 30mA, and which can still just cover the full +-30 range of the ACS712. Yet another option with the ACS1015 is to use another input (I thiink it should be AIN3) set to Vcc/2 using a resistive divider, and do differential measurements between that and the ACS712. With that the sensitivity can be further increased to 1mV/lsb and 15mA, still without loss of the full +- 30A range., because it now exploits the full 12 bits of the ADC in hte ACS1015.

    The circuit diagram shows you are using a voltage divider of 47 K to the measurement point, and 4K7 to ground below the ADC input, giving a nominal division ratio of 11 - quite close to your 10.805 factor. Did you get the 10.805 by calculation from measuring the resistors, or by observing the results compared to the mulimeter?I would be interested to know how well the two track over the full voltage range. The full scale range of the ADS1050 can be set to a variety of different values. The default setting is +-2.024 V according to the data sheet. Yet you have successfully measured the 5V rail (as 4.4V) so presumably the ADAFRUIT library changes the gain setting from the default to +-6.144 V. Is that correct? I could not see anything that changed that in your software, and the 6.144 gain...

    see more »

    The circuit diagram shows you are using a voltage divider of 47 K to the measurement point, and 4K7 to ground below the ADC input, giving a nominal division ratio of 11 - quite close to your 10.805 factor. Did you get the 10.805 by calculation from measuring the resistors, or by observing the results compared to the mulimeter?I would be interested to know how well the two track over the full voltage range. The full scale range of the ADS1050 can be set to a variety of different values. The default setting is +-2.024 V according to the data sheet. Yet you have successfully measured the 5V rail (as 4.4V) so presumably the ADAFRUIT library changes the gain setting from the default to +-6.144 V. Is that correct? I could not see anything that changed that in your software, and the 6.144 gain setting is consistent with the 3mV per lsb that you are using. All this means that your resolution is 33 mV per bit, although making 20 readings and averaging them gives you a fractional bit capability, maybe.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 8 months ago
    Solar Powered WiFi Weather Station

    Hi JonathanM257, I guess you ordered a battery type 18650 which means it is 18 mm in diameter and 65 mm long. The AA battery size is 14500 (14 mm diameter and 50 mm long). You can buy holders for a 18650 battery, they are on Ebay and other places too.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 8 months ago
    Solar Powered WiFi Weather Station

    Hi. I am gradually getting to understand the internet connections. My current understanding is that this WeMos WiFi weather station can be talking to EITHER Blynk (which you monitor with the Blynk app on a mobile phone) OR to ThingSpeak (which you monitor on a computer with a web browser). It does not do both of these at the same time, because you have different software. One software sketch works with Blynk. The other software sketch works with ThingSpeak. Please confirm this is correct. The Blynk software includes the ESP.deepSleep command which conserves power, but results in intermittent connection. The ThingSpeak software uses a delay() function which does not conserve power, and gives you a continuous connection (although you probably can't do anything with it because the process...

    see more »

    Hi. I am gradually getting to understand the internet connections. My current understanding is that this WeMos WiFi weather station can be talking to EITHER Blynk (which you monitor with the Blynk app on a mobile phone) OR to ThingSpeak (which you monitor on a computer with a web browser). It does not do both of these at the same time, because you have different software. One software sketch works with Blynk. The other software sketch works with ThingSpeak. Please confirm this is correct. The Blynk software includes the ESP.deepSleep command which conserves power, but results in intermittent connection. The ThingSpeak software uses a delay() function which does not conserve power, and gives you a continuous connection (although you probably can't do anything with it because the processor is in a busy loop) for 5 minutes).I think there may be a problem with the power consumption exceeding what the solar panel can provide. In tnterpret the ESP8266 datasheet as saying it will use 56 mA when receiving but not transmitting, which I think corresponds to the delay() loop. 56 mA for 24 hours is 1344 mAH. To get this from a 120 mA solar panel requires 11.2 hours of full sun per day, which is essentially impossible. So for the ThingSpeak software, you either need to change the delay() into a ESP.deepSleep function, or use a bigger solar panel. I think the ESP.deepSleep is the better option. I can't try it out myself at the moment because I am still waiting for parts to come in the mail.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 8 months ago
    Solar Powered WiFi Weather Station

    Maybe I have misunderstood, but don't you expect the WeMos to be disconnected all the time, except for a few seconds every 5 minutes when it is reporting data?

    As I understand it, the WeMos board has a low dropout regulator (RT9013) in series with the 5V input. The regulator has a 250 mv dropout. As long as the 5V input pin is above 3.55 V, the board, including the ESP8266, will get 3.3V. If the 5V pin goes below 3.55V, the specs of the RT9013 are a bit obscure, but I think its output voltage probably tracks the input voltage with a 250 mv offset. The TP4056 charger board, assuming it has the battery protection function as recommended by deba168, delivers the current through a pair of MOSFETs which are in series and have Rds ON of about 36 milli Ohms, so the series pair has a resistance of 72 milli Ohms, When the WiFi is transmitting, the current draw may be up to 170 ma so the voltage drop across the MOSFETs will be about 12 milli volts so lo...

    see more »

    As I understand it, the WeMos board has a low dropout regulator (RT9013) in series with the 5V input. The regulator has a 250 mv dropout. As long as the 5V input pin is above 3.55 V, the board, including the ESP8266, will get 3.3V. If the 5V pin goes below 3.55V, the specs of the RT9013 are a bit obscure, but I think its output voltage probably tracks the input voltage with a 250 mv offset. The TP4056 charger board, assuming it has the battery protection function as recommended by deba168, delivers the current through a pair of MOSFETs which are in series and have Rds ON of about 36 milli Ohms, so the series pair has a resistance of 72 milli Ohms, When the WiFi is transmitting, the current draw may be up to 170 ma so the voltage drop across the MOSFETs will be about 12 milli volts so long as the over charge or over discharge circuits are not activated.SO: When the sun is shining the TP4056 controls the battery voltage to be no more than 4.2V, and the ESP8266 gets its proper 3.3V. When the sun is not shining, the battery voltage drops progressively from 3.7 V (fully charged). When it is above 3.562V (that is, 3.55 + 12 mV) the ESP8266 gets 3.3V. Once it falls below 3.562 V, the ESP8266 will get less than 3.3V. It should definitely work down to 3.0 V (battery voltage of 3.262 on my assumptions above) and possibly down to 2.5V (battery voltage of 2.762) based on some testing reported in one of the many blogs on this subject. The DW01 overdischarge protection cuts in at a battery voltage of 2.4 volts, which is almost certainly below the point where the ESP8266 stops working. If you look at my other comment on the sizing of the solar panel, you will see that the liklihood of the battery ever getting even half way discharged is very low. So the low-end performance is probably of no great concern anyway.I hope this helps.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 8 months ago
    Solar Powered WiFi Weather Station

    Several comments below suggest adding other functions - like a wind meter (GregoryG27) and Rain Gauge (Cueball21). Also battery voltage monitor, sunlight level, multiple temperature sensors are of interest to me. These all raise the question of the power budget.This project uses a 120 mA, 5.5V panel and AA-size Li Ion battery, probably 2300 mAH capacity. Monthly average daily GHI (Global Horizontal Irradiance) in New Delhi fluctuates between 3 kWh (December) and 6 kWH (June). Where I live, it varies from 2.3 kWH (June) to 7.3 kWH (December). For reliable operation, the current from the panel needs to be sufficient even in the more cloudy, low GHI periods. Project builders can look up their local GHI values to make a decision about how big a panel they need. I we assume a minimum GHI of...

    see more »

    Several comments below suggest adding other functions - like a wind meter (GregoryG27) and Rain Gauge (Cueball21). Also battery voltage monitor, sunlight level, multiple temperature sensors are of interest to me. These all raise the question of the power budget.This project uses a 120 mA, 5.5V panel and AA-size Li Ion battery, probably 2300 mAH capacity. Monthly average daily GHI (Global Horizontal Irradiance) in New Delhi fluctuates between 3 kWh (December) and 6 kWH (June). Where I live, it varies from 2.3 kWH (June) to 7.3 kWH (December). For reliable operation, the current from the panel needs to be sufficient even in the more cloudy, low GHI periods. Project builders can look up their local GHI values to make a decision about how big a panel they need. I we assume a minimum GHI of 2.0 kWH, that translates (very approximately) into 2 * 120 mAH per day from the panel. The current consumption of our project needs to be no more than this amount. So if it operates 24 hours /day, its average current consumption must me no more than 10 mA (since 10 mA * 24 hours = 240 mAH). When operating the ESP8266 uses up to 170 mA according to the data sheet, although the average may be about 80 mA (I think I saw that on the Sparkfun tutorial). In deep sleep mode the current goes down to 10 microamps, which is near enogh to zero for this analysis. If the functional requirement is to collect and transmit data once per 5 minutes (300s) and each transmission takes 5 seconds (I got that from the Sparkfun tutorial also) the duty cycle is 5/300=1.6%, so the average current may be about 100mA * 1.6% = 1.6 mA - well below our maximum of 10 mA. So the panel used by deba168 is fine for this use. More functions can be added: there are available GPIO interfaces and ample memory for software and data variables. The big issue is to allow the processor to sleep sufficient of the time not to exceed the available current. For example, if wind speed is measured using a rotating anemometer, which produces a sensor input once per revolution, that may need to be detected with an interrupt that wakes the ESP8266, which just counts it and goes back to sleep. Then when reporting is required (eg every 5 minutes) that count is included as a measure of the wind speed. Rainfall measurement could be similar I suppose. If polling is used instead of wake-up interrupts, the processor current consumption would be much higher and so a much bigger solar panel would be needed, and probably a bigger battery as well.

    View Instructable »
  • farmerkeith commented on deba168's instructable Solar Powered WiFi Weather Station 9 months ago
    Solar Powered WiFi Weather Station

    Good project Deba. I have a question about the diode in series with the solar panel. I think it is not there in the parts list at the beginning of the project. Later on you said you initially forgot to solder it into the circuit. My question is, whether it is really necessary. I see in the pdf file of the TP4056 it says "No blocking diode is required due to the internal PMOSFET architecture and have prevent to negative Charge Current Circuit." - which I would interpret as meaning there is no need for a blocking diode to the supply. However I suspect that you first built the circuit without the diode, and found the battery was discharging into the solar panel when it was dark. Is this correct? Thank you, Keith

    View Instructable »
  • 1602 LCD Keypad Shield Module With I2C Backpack

    Hi ChaitanyaM17, Thank you for doing the Fritzing diagram (in reply to ALEiCARGG). I htink it might help others too. Do you mind if I add it to the Instructable, so it can easily be found by anyone?

    View Instructable »
  • farmerkeith commented on farmerkeith's instructable DIY Linear Actuator10 months ago
    DIY Linear Actuator

    Good question Treepox. When the actuator is installed and the push arm is connected to something (in my case, a vent window in my greenhouse), that will prevent it from rotating. I have assumed that this would always apply.

    View Instructable »
  • farmerkeith's instructable DIY Linear Actuator's weekly stats: 10 months ago
    • DIY Linear Actuator
      3,127 views
      56 favorites
      12 comments
  • farmerkeith commented on farmerkeith's instructable DIY Linear Actuator10 months ago
    DIY Linear Actuator

    Thank you very much for this comment. You reminded me of something I left out. I have now added a new step, Performance, covering the retract and extend times with and without a load. I think this is actually a "true linear actuator", but I think you mean a commercially made one. My guess is that the commercial models also use a screw mechanism, although it is possible some of them may use a rack and pinion instead. The speed of operation is a function of the motor power and the various gearings in the setup. You can get whatever speed of operation you need, by adjusting these factors.

    View Instructable »
  • farmerkeith commented on farmerkeith's instructable DIY Linear Actuator10 months ago
    DIY Linear Actuator

    Thank you. I learned quite a few things by doing this project. Don't be afraid to have a go!

    Great comment, BeachsideHank. I think the practicalities may need some looking into, but in principle a linear actuator would be a really good use for an old cordless drill beyond its use-by date, possibly because of battery failure.

    Thank you.

    View Instructable »
  • 1602 LCD Keypad Shield Module With I2C Backpack

    Hi Aleicargg, I guess the backlight of the LCD is not being turned on, and the most likely reason is that the software logic has to be reversed from the standard setup, due to the transisor in the serial backpack. The connection for the backlight is from serial module pin 16 (the one on far right) to LCD module pin 11 (just above the capital "S" in the word "Shield" printed on the module). In the software, the LCD backlight control commands are:lcd.setBacklight(LOW); // Backlight ONandlcd.setBacklight(HIGH); // Backlight OFFThese are the reverse of the commands you use for direct connection. if the backlight is not on, you will not be able to see the characters on the LCD scree, even if they are being displayed. Please let me know how you get on. Keith

    Hi Aleicargg, I am happy to help you work out these connections. I agree it is a bit hard with no labels on the pins on the boards. When I wrote this instructable, I thought that the explanation I gave in Step 3 was clear. It is a matter of placing the two modules as they are shown in the main photo, and counting pins. Have you tried that? If necessary I will do a diagram but I cannot do it right now, and maybe we can answer your questions without a diagram.

    View Instructable »
  • farmerkeith followed educ8s11 months ago
      • Arduino Wireless Weather Station
      • Art Deco Weather Forecast Display
      • Arduino Pong Game - OLED display
  • farmerkeith commented on Husham Samir's instructable Temperature Data Logger1 year ago
    Temperature Data Logger

    Hi Pandwe,I just came across your question while browsing around some instructables. I think making a logger to write data more rapidly is fairly easy, although you might need to do some extra programming to make the file access process efficient. The bigger challenge for you I think will be the temperature sensor. If you want to go up to 900C, I guess you will need a non-contact sensor. For example the MLX90614 is a non-contact IR temperature sensor, but its data sheet says it goes to 380 C, which is way lower than 900C. Do you have a specific temperature sensor in mind?What logging interval are you really aiming for? Presumably the logging only has to be done for a short period of time, while the quenching operation is happening?Keith

    View Instructable »
  • farmerkeith commented on farmerkeith's instructable Small current circuit breaker1 year ago
    Small current circuit breaker

    Hi Sahil Gupta,I will try to help you understand the schematic. I will try to do it in small steps so that I don't go too fast for you.Please have a look at the schematic image at the top of Step 2: Circuit breaker design. I have added two notes boxes to it. The top box shows the upper level circuit board, which contains the switches and LEDs. The lower box shows the lower level circuit board, which contains the amplifier and resistor network. The two boards are connected together via header pins. You can see the two boards connected togeter via jumper wires in the 3rd photo of the introduction. When in the box, the upper and lower boards just plug together directly, through the header connectors. To follow the circuit, start half way down the lower box, where there is an input connecto...

    see more »

    Hi Sahil Gupta,I will try to help you understand the schematic. I will try to do it in small steps so that I don't go too fast for you.Please have a look at the schematic image at the top of Step 2: Circuit breaker design. I have added two notes boxes to it. The top box shows the upper level circuit board, which contains the switches and LEDs. The lower box shows the lower level circuit board, which contains the amplifier and resistor network. The two boards are connected together via header pins. You can see the two boards connected togeter via jumper wires in the 3rd photo of the introduction. When in the box, the upper and lower boards just plug together directly, through the header connectors. To follow the circuit, start half way down the lower box, where there is an input connector shown. That connector takes you to Q1 which is the reverse protection MOSFET. Can you see that.?Please respond to the above, and let me know if you understand it all, or none, or what might puzzle you so far. I am happy to help you. Keith

    View Instructable »
  • farmerkeith commented on farmerkeith's instructable Small current circuit breaker1 year ago
    Small current circuit breaker

    Hello Sahil_Gupta, Have you been able to get the schematic already included in this instructable? It is in the images at the top of the introduction, and also shows up as a pdf file in Step 2. If you have this schematic, and have any trouble understanding it, please let me know and I will try to help you to follow it.

    View Instructable »
  • farmerkeith followed jazzycamel1 year ago
      • Quick Arduino Hygrometer (Humidity Sensor)
      • Non-blocking Ultrasonic Sensor for Arduino
      • Optical Mouse Odometer for (Arduino) Robot
  • farmerkeith's instructable DIY Logging Thermometer with 2 sensors's weekly stats: 1 year ago
    • DIY Logging Thermometer with 2 sensors
      1,340 views
      68 favorites
      0 comments
  • farmerkeith's instructable DIY Logging thermometer's weekly stats: 1 year ago
    • DIY Logging thermometer
      279 views
      25 favorites
      4 comments
  • farmerkeith commented on jessyratfink's forum topic Call for contest judges1 year ago

    You can put me down for Tech and Workshop. Willing to help anywhere you have a need.farmerkeith

    View Topic »
  • farmerkeith commented on farmerkeith's instructable DIY Logging Thermometer1 year ago
    DIY Logging Thermometer

    Thank you. Yes I agree. I appreciate your comments.

    View Instructable »
  • More Activities