What did you build today (Pictures) ?
-
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.
-
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.
-
@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.
Now I can make that awesome dinner, once in a full moon, without having to carry and unlock my phone all the time...
-
@alexsh1 very nice! Is the 3d-drawing online to be downloaded? I think I want one as well.
Yes, you can downloads STLs from here: https://www.thingiverse.com/thing:2250644
There another one https://www.thingiverse.com/thing:1816188 -
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 :)

-
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 :)

-
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. -
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. -
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.
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 :)
-
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.
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 :)
@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.
-
@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.
-
@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.



