What did you build today (Pictures) ?
-
@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?
-
@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?
@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.
-
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.



