What did you build today (Pictures) ?



  • What an inspiring thread!



  • @sundberg84 I've bought these 5032 crystals: https://www.aliexpress.com/item/Free-shipping-20pcs-16-000MHZ-16mhz-20pF-2Pin-5032-smd-quartz-resonator-Crystal/32821974003.html but there are plentiful other offers on aliexspress and/or ebay. This 5032 package seems to be the most common. There is another package with the same size but with 4 pins 2 of which are not connected, I bought them from my local distributor, while was waiting a package from aliexpress. But those with 4 pins are harder to solder (obviously) and I don't see any pros of using them.
    The most suitable for hand soldering and easiest to find are these: 0_1540201979487_2014022559267404.jpg
    According to this image the ones I have are TX5 and TG5.


  • Hardware Contributor

    Im getting so tired of soldering extra wires and stuff so today im doing a "MysX to All common sensors breakout board"...

    0_1540411084071_4f9ac007-2ce9-41a9-8bc6-b954f193b964-image.png

    Dont know if this will work... but worth a shot.



  • @sundberg84 If I'm honest some of those sensors seem 'old' to me.

    • I usually go for the BEM280 instead of the BMP085 and DHT22. It's so cheap now.
    • I never use pulse soil sensors, only the capacitive kind, as they last much longer and don't pollute the soil.

    In fact, I always make all my sensors with the Nano Wireless Expansion Board, which is about $2. You can simply plug in the NRF24 into it.
    https://www.aliexpress.com/item/Free-shipping-Nano-328P-IO-wireless-sensor-expansion-board-for-XBEE-and-NRF24L01-Socket-for-arduino/32264665470.html


  • Hardware Contributor

    @alowhum thanks for the reply!
    I used the sensor in MySensors build section, i somehow believe that is whats used the most. But that does not stop me from adding your suggestion for BEM280. That Wireless board looks great, but Im working with the MysX connector so thats why im making this board.


  • Hardware Contributor

    @alowhum said in What did you build today (Pictures) ?:

    • I usually go for the BEM280 instead of the BMP085 and DHT22. It's so cheap now.

    Unfortunately most of the cheap breakout boards found on AliExpress use clones with much worse specs than the original version

    In fact, I always make all my sensors with the Nano Wireless Expansion Board, which is about $2. You can simply plug in the NRF24 into it.
    https://www.aliexpress.com/item/Free-shipping-Nano-328P-IO-wireless-sensor-expansion-board-for-XBEE-and-NRF24L01-Socket-for-arduino/32264665470.html

    But you can't really make battery-powered sensors with those ? The regulators are AMS1117 with 5mA typical quiescent current.



  • @nca78 said in What did you build today (Pictures) ?:

    Unfortunately most of the cheap breakout boards found on AliExpress use clones with much worse specs than the original version

    Could you be more specific? How exactly worth specs does they have. Was going to buy a bunch of them. Maybe there is some comparison or tests?



  • @sundberg84 yes, sorry about that, I realised too late that it's an expansion board.

    @Nca78 Thanks! That 5ma leak current was exactly the kind of info I needed about the board. I was wondering it if could be useful for battery powered things. None of my sensors are. Well, one - I used the BBC Micro:bit as a battery powered motion sensor.

    I guess not having a regulator on board is what makes the Arduino Pro Micro so good at being battery powered.

    Out of curiosity: if I attached the board to a Usb powerbank (say 10.000 Mah) to operate as an electricity led pulse sensor.. what would be an estimate for how long it would run?


  • Mod

    @alowhum rough calculation: 10,000/5 = 2,000h = 83 days. Lower if other componens also consume power.


  • Mod

    @monte clones use different components, so it depends on which clone.


  • Mod

    @alowhum said in What did you build today (Pictures) ?:

    I guess not having a regulator on board is what makes the Arduino Pro Micro so good at being battery powered.

    actually the better solution is the pro mini at 3.3v with regulator and led removed, and you can use an LDO regulator to power it with a LiPo cell or no regulator at all if you use a LiFePO4 battery. Using the arduino at 3.3v allows you to use all radio modules and all the low power sensors.



  • This is my new PSU - 3D printed enclosure and a few components
    It is very precise.

    2_1540841375727_3.jpg 1_1540841375727_2.jpg 0_1540841375727_1.jpg


  • Mod

    @alexsh1 nice! Why do you have 4 banana sockets and what's the color coding?



  • @alexsh1 Looks awesome


  • Hero Member

    Something nice about those power supplies is that for very little extra money (maybe $1-3 extra) you can buy versions with UART and/or even bluetooth data output that you can send to a logger. I'd have to check, but it might even be controllable that way also.


  • Mod

    Yes, in fact I bought the DPS5015 with its metal box and BT/USB interface and I can control it from the computer. Data logging of course is limited to the values on the screen



  • @yveaux This is simple. The Aliexpress seller sent me these instead of black and red ones. So I have been creative - black and blue is negative and yellow and green is positive. Did not bothered waiting for a few weeks for replacement.



  • @neverdie It is purely for logging and control. I did not require either so did not order it. If you add all extras, it does become considerably more expensive.


  • Hardware Contributor

    @alexsh1 very nice! Is the 3d-drawing online to be downloaded? I think I want one as well.



  • Saw that all other kids cool kids have one, so I installed one kitchen-pc as well.
    It is Flytech K757 15'' POS terminal, windows 10 pro, touch screen, 300gb (soon to be ssd) 8gb ram dual core 2,2ghz. Purchased from local "ebay" for around 140 eur.

    0_1541025507479_Kitchen PC 1 - IMG_5680.jpg

    Now I can make that awesome dinner, once in a full moon, without having to carry and unlock my phone all the time...


  • Mod

    esp8266 based thermostat for heating system
    1_1541182358775_Фото 02.11.2018, 21 10 39.jpg 0_1541182358775_Фото 02.11.2018, 21 07 09.jpg


  • Mod

    bridge from single wire (my w3p manchester based) to UART. will be used to bridge single wire network with Ethernet throuth ESP8266 or STM32 + Wiznet

    second photo - development stand with w3p bus

    0_1541265182919_Фото 03.11.2018, 20 01 08.jpg
    0_1541265206374_Фото 03.11.2018, 20 01 00.jpg





  • Build myself a simple temperature sensor with a clock. No RTC, just pulling time from controller and updating every 10 minutes to avoid drift. Also requesting outdoor temperature from controller. Build from what was lying around - DHT22, pro mini clone, nokia screen. I can share the code if someone needs it 🙂0_1542116517443_IMG_6557.jpg 0_1542116523024_IMG_6560.jpg


  • Mod

    @monte if you can share, pls do so 🙂



  • Ask questions if something is left unclear.

    #define DHT_PIN 4
    #define CE_DISPLAY 5
    #define RST_DISPLAY A2
    #define DC_DISPLAY A3
    #define DIN_DISPLAY 7
    #define CLK_DISPLAY 8
    #define SN "Clock + Temperature"
    #define SV "1.0"
    #define DHT_TYPE DHT22
    
    #define MY_RADIO_NRF24
    #define MY_TRANSPORT_WAIT_READY_MS 10000
    
    #include <MySensors.h>
    #include <U8g2lib.h>
    #include <DHT.h>
    #include <time.h>
    
    volatile unsigned long rawTime;
    unsigned long timer1 = 0;
    unsigned long getTimeDelay = 600000;
    unsigned long timer2 = 0;
    int getDHTDelay = 3000;
    unsigned long timer3 = 0;
    unsigned int sendDelay = 60000;
    
    float h, t;
    char outdoorTemp[50];
    float lastT;
    
    U8G2_PCD8544_84X48_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ CLK_DISPLAY, /* data=*/ DIN_DISPLAY, /* cs=*/ CE_DISPLAY, /* dc=*/ DC_DISPLAY, /* reset=*/ RST_DISPLAY);  // Nokia 5110 Display
    DHT dht(DHT_PIN, DHT_TYPE);
    MyMessage tempMsg(0, V_TEMP);
    volatile struct tm * localTime;
    
    void before()
    {
      u8g2.begin();
      Serial.begin(115200);
      u8g2.firstPage();
      do {
        initScreen();
      } while ( u8g2.nextPage() );
      dht.begin();
      delay(2000);
    }
    
    void setup() {
      setupTime();
      timer1 = millis();
      t = dht.readTemperature();
      h = dht.readHumidity();
      timer2 = millis();
      send(tempMsg.set(t, 0));
      lastT = t;
      timer3 = millis();
    }
    
    void presentation()
    {
      present(0, S_TEMP);
      present(1, S_INFO); //Info sensor to request outdoor tempereture
      sendSketchInfo(SN, SV);
      request(1, V_TEXT);
    }
    
    void setupTime()	//setting up timer and interrupt for seconds counter
    {
      cli();
      //set timer1 interrupt at 1Hz
      TCCR1A = 0;// set entire TCCR1A register to 0
      TCCR1B = 0;// same for TCCR1B
      TCNT1  = 0;//initialize counter value to 0
      // set compare match register for 1hz increments
      OCR1A = 15624;// = (16*10^6) / (1*1024) - 1 (must be <65536)
      // turn on CTC mode
      TCCR1B |= (1 << WGM12);
      // Set CS10 and CS12 bits for 1024 prescaler
      TCCR1B |= (1 << CS12) | (1 << CS10);
      // enable timer compare interrupt
      TIMSK1 |= (1 << OCIE1A);
      sei();
      requestTime();
    }
    
    ISR(TIMER1_COMPA_vect)
    {
      rawTime++;	//increment seconds counter
    }
    
    void float2string(float n, char* output)
    {
      char aChar[5];
      char bChar[4];
      if (n > 0.0) {
        strcpy(aChar, "+");
      } else if (n < 0.0) {
        strcpy(aChar, "-");
      }
      dtostrf(n, 4, 1, bChar);
      sprintf(output, "%s%s", aChar, bChar);
    }
    
    void initScreen()	//function to show message on screen during node start
    {
      u8g2.setFont(u8g2_font_profont12_tr);
      u8g2.drawStr(42 - (u8g2.getStrWidth("Connecting to") / 2), 13, "Connecting to");
      u8g2.drawStr(42 - (u8g2.getStrWidth("a MySensors") / 2), 26, "a MySensors");
      u8g2.drawStr(42 - (u8g2.getStrWidth("network.") / 2), 39, "network");
    }
    
    void mainScreen()
    {
      u8g2.setDrawColor(1);
      u8g2.setFontMode(1);
      u8g2.drawBox(0, 0, 84, 8);
      u8g2.setDrawColor(0);
      u8g2.setFont(u8g2_font_profont10_tf);
      localTime = localtime(&rawTime);	//using standart AVR time.h library to convert seconds counter into local time
      char date[30];
      strftime(date, 30, "%d.%m.%y %R", localTime);	//constructing a string with date and time
      u8g2.drawStr(42 - (u8g2.getStrWidth(date) / 2), 7, date);
      u8g2.setDrawColor(1);
      u8g2.setFont(u8g2_font_maniac_tr);
      char val[5];
      float2string(t, val);	//converting float value from dht11 to a string
      u8g2.drawStr(42 - (u8g2.getStrWidth(val) / 2), 36, val);
      u8g2.setFont(u8g2_font_profont10_tf);
      u8g2.drawStr(5, 47, outdoorTemp);
      itoa((int)h, val, 10); //I don't need precision for humidity procentage, otherwise you can use dtostrf()
      u8g2.drawStr(70 - u8g2.getStrWidth(val), 47, val);
      u8g2.setFont(u8g2_font_open_iconic_thing_1x_t);
      u8g2.drawStr(71, 47, "\x48");
    }
    
    boolean isTime(unsigned long *timeMark, unsigned long timeInterval)	//time counter function for non-blocking delays
    {
      if (millis() - *timeMark >= timeInterval) {
        *timeMark = millis();
        return true;
      }
      return false;
    }
    
    void loop() 
    {
      if (isTime(&timer1, getTimeDelay)) {	//request time from controller once in 10 minutes
        requestTime();
      }
      if (isTime(&timer2, getDHTDelay)) {	//polling DHT sensor and printing values to serial
        t = dht.readTemperature();
        h = dht.readHumidity();
        Serial.print("Temperature: ");
        Serial.print(t);
        Serial.println("°");
        Serial.print("Humidity: ");
        Serial.print(h);
        Serial.println("%");
      }
      if (isTime(&timer3, sendDelay)) {	//sending temperature to controller once in 30 seconds
        if (t != lastT) {
          send(tempMsg.set(t, 0));
          request(1, V_TEXT);
          lastT = t;
        }
      }
      u8g2.firstPage();	//this section is for screen handling
      do {
        mainScreen();
      } while ( u8g2.nextPage() );
    
    }
    
    void receive(const MyMessage &message)	//receiving an outdoor reading from the controller and constructing a string to display
    {
      if (message.type == V_TEXT) {
        sprintf(outdoorTemp, "%sC%s", message.getString(), "\xb0");
      }
    }
    
    void receiveTime(uint32_t ts)
    {
      rawTime = ts - UNIX_OFFSET;	//substructing an offset from received timestamp, since time.h doesn't use Unix count
      localTime = localtime(&rawTime);	//updating seconds timer with accurate value
      timer1 = millis();
    }
    
    


  • I repurposed a breakout board to make an informal range test of an RA-01 (433 Mhz).
    The test was not very sophisticated -- I had MySensors node request time from the controller and blink a LED when it received the time. Then I just walked around my neighborhood.
    Lost the signal at ~ 156 Meters. This was down hill and through several houses.
    Picked up again at ~ 248 Meters. This was at about the same elevation as my house but still through several houses.
    It also works well in the far corner of my basement (2 floors and 1 or 2 walls). The NRF24 has trouble there, but RFM69 does not.
    The range may not seem very impressive for a LoRa radio (I hoped for kilometers : ) , but the antennas are not optimized and this is a fairly dense suburban area -- difficult to get line of site. They certainly work well enough for any application I have in mind.


  • Hero Member

    @nagelc If you add some coding gain, you should be able to get longer range. However, tx time will increase.



  • Thks. I'll try that.



  • Not so much a MySensors build as an example of how even the most basic information can inform changes for the better, in this case space heating.

    The system here is fairly basic, an array of DS18B20s, some ultrasonic tank probes and a gas reed sensor, temperature is updated every 5 minutes, the gas updates every 0.05m3...
    With winters here down to -20, the first priority last year was insulation, and even though a modern house, the gas bills essentially halved over the year, effectively funding not only the insulation, but replacement axial radiator valves and thermostat heads (Heimeier) to replace the typical arrangement of unknown origin, with spare... But now the MySensors impact..
    This autumn's attention turned to the central heating unit, a modern combi unit of good manufacture, installed by a 'certified' heating engineer, but aside what little I knew about condensation boilers and the steep learning curve that followed, I was bemused by the return from the radiator loop almost burning my finger within 10 minutes of the system being fired up. This did not make sense for what I understood of a condensing boilers, which compelled a look inside for the first time, the manual and some googling.

    The boiler is a 25kW combi with minimum output 7.6kW, the radiators account for ca 13kW at Delta 60 set for 15c drop (previously set ca 20c drop), settings since day one were 65c and the pump was set at max output of 3, last year's -20 resulted in 13.5m3/day gas consumed, not crazy by historical records, but hmmm.
    So now comes tinkering with data from MySensors via Domoticz to inform...
    Currently the boiler is set at 55c, the pump is on Low (40 v 84w), but the results are surprising - Slower rising temperature when ON, 42 minutes v 25, but gas use dropped from 0.75 to 0.6m3, but here's the kicker from that longer heating time, not only less energy used per cycle, but longer and thereby fewer cycles per day. Current evaluations are between 15 and 20% savings, so thank you to all the MySensors community and contributors.. 😉



  • I have build a very quick board with Dual relay channel, arduino nano, NRF24 transceiver, Power supply from 220V.
    There is also "Fil Pilote" connection to pilot the electrical heater. It is a french protocol.
    It is a "dirty" board for sure but usefull when i want to test some code implemented in the arduino Nano.

    0_1543502852591_IMG_20181129_153704.jpg

    I would like to make a cleaner board, a real PCB but if i launch the manufacturing i wil get minimum of 10 boards that i do not need.

    If anybody, could explain to me how i can print my own PCB for quick tests about some projects, some features implementations, it would be nice 🙂


  • Hero Member

    @jeremushka Well, since you ask, you can use a CNC to etch and drill your own PCB: https://forum.mysensors.org/topic/8735/cnc-pcb-milling

    A board such as yours would be fairly easy to do that way.



  • @neverdie thanks for the advice. Maybe i can first try pcb transfer with laser printer and chemical etching.



  • @jeremushka
    I have used that several times with good results, though do not make wires too narrow and put them too close to each other.


  • Mod

    @zboblamont lowering water temperature and pump speed is expected to use less energy, but have you considered the time it takes now to reach the set room temperature compared to what you had before?



  • @gohan Sorry, had to edit original post which was too confused on re-reading.
    The pump speed curves determine the pressure and flow rate to the radiators, it is the radiators which determine the actual flow for a given temperature drop across them, and speed in raising room temperatures.
    The combined flow rate for all the radiators falls within the lower pump curve, any increase in pump speed only increases pressure, NOT speed of heating.
    Aside the original mis-set HIGH rate on the pump, there are 3 manual valves left in the system, and no matter how close I try to balance them it was always a compromise, and heat inevitably goes back to the return as pressure increases
    Once these are replaced with flow control version in the next week, it will not matter what the pressure is, the radiator flows will be capped at the most efficient level.



  • My wife said "I do not want to see "those things""...
    Challenge accepted!

    0_1544224086865_TV LED display 1 - 20181207_171500.jpg

    1_1544224086867_TV LED display 2 - 20181207_183612.jpg

    0_1544224266422_MVI_5770.00_00_03_13.Still001.jpg

    (see the gif in action here https://ibb.co/BCbS2Dc )



  • Milled some PCA9615 differential I2C converters for the sensors ouside: magnetometer for the gas meter, temp/hum, baro.
    Until now I've used a 7 meter long cable, but whenever the gas water heater fired up the Arduino would just freeze losing the count of gas pulses, I've tried shielded cable but it hasn't solved the issue.
    Since Sparkfun's breakout boards are on the wrong side of the pond I decided to make my own.
    Really hope the Arduino doesn't lock up anymore.

    LE. That TSSOP10 was a b*tch to solder 😁

    0_1544228821399_IMG_20181207_192354.jpg 0_1544228904350_IMG_20181207_200947.jpg 0_1544228912010_IMG_20181208_000800.jpg


  • Hardware Contributor

    @dakipro woaw!!! 👏


  • Hardware Contributor

    @dakipro thank you that's what I planned to do but wasn't sure it would be visible through the plastic layer.
    Coupled with capacitive sensors it could give awesome results !



  • @dakipro
    great job 🙂
    , and also the show on TV is quite funny, those two Englishmen in US buying old cars renovating and selling those



  • @nca78 I used white decorative self adhesive wallpaper, so not sure which plastic you are planing to use, but you can easily test that before mounting I think. If you go for paper/foil, put some one-peace plastic in front of the displays as they (mine) are not perfectly soldered in line, so they are noticeable sa foil will glue to them. Not a big deal for me, but would love "the perfection". But yeah, plastic or some harder material would work awesome I think.

    All in all, not difficult project and a very high wow-factor/time-spent value (and waf)


  • Hardware Contributor

    @dakipro ah ok you cheated 😄

    I thought you kept the plastic layer that's glued on top of the wood panel. I'll try to get some samples from the company selling those here and make some tests then.



  • @dakipro
    BTW I can only recommend to spray your bare cobber wires with Plastic 70, as this will protect your cobber from corrosion with a thin layer acrylic

    0_1544345727981_plastik_70.png



  • Try this one.
    The smallest board I have ever assembled using just a hot fan. A solar battery charger based on BQ25504 from a solar panel. Almost all components are 0402. Far too small for my liking, but can go under the solar panel.

    0_1546964306401_FFE84E8C-991D-4342-8272-2180F79333A8.jpeg



  • Looks great. I'm still happy when I get an 0805 down well. Guess I have to keep practicing.


  • Hardware Contributor

    @nagelc said in What did you build today (Pictures) ?:

    Looks great. I'm still happy when I get an 0805 down well. Guess I have to keep practicing.

    Try solder paste applied with a thin needle, and a hot air gun at minimum speed (so components don't fly away). Then it's really easy to do SMD 🙂



  • @nca78 there many other aspects. I’m using a low temp melting solder paste. I have been using only a top quality (no AliExpress) one from Chipquick. It has to be stored property in the fridge.

    Using stencil may help. I’m not using it and have to doze the paste very precisely which is a challenge. This is why my soldering is not 100% consistent, but it works. With 0402 components it is not easy - the pad size is very small.

    However, I must admit, 0402 are far too small. In the process, unless your space / lab is very well organised many components are lost. And a good magnifying glass / microscope is a must too. In the future, i’ll try to stick to 0805 or larger - these are a bit larger and more visible.

    All in all, this is not as difficult as many people may think. With a little bit of practice, this can be done.



  • @nagelc try 0603 size first. I am sure you will manage it with 0402 with a good microscope ;-))

    I’m still using a magnifying glass which is an extra challenge. Eventually I will have to buy a good microscope


  • Mod

    @alexsh1 how much did one module cost?


 

287
Online

8.1k
Users

8.9k
Topics

95.1k
Posts