Inicio

Home heating using Panstamp (Arduino + TI C1101) and SSR

Last weekend I worked on setting up home heaters using Panstamp. Panstamp is an Arduino board with Texas Instruments radio. Next winter we’re going to control our home heater using connected internet devices like the laptop, tablet o mobile phones. In this post I only want to share some pictures about the process to install the electronics inside the heaters changing the old electronic boards with new custom ones.

The parts:

  • AC/DC transformer, outputs 5V. It’s really cheap, in this case free because I have more than 20 of them from old projects.

acdc5v_

  • A small custom PCB designed and made by Daniel Berenguer, the owner of Panstamp. Thanks again Daniel. I bought the PCBs and parts for around 10€ each one.

IMG_20130923_114830

  • TMP36 temperature sensor. It costs about 1,5€ each one.

IMG_20130923_114814

  • Solid state relay (SSR) bought in Alied Express web site for less than 5€.

ssr

The process:

I used a lot of tools, because DIY aren’t my strong hability.

IMG_20130921_141640

Double-head tape and hot-blue gun are need…

IMG_20130921_133746

because I want to use a cork base under the PSU and PCB

IMG_20130921_133723Parallelization of the last process
IMG_20130921_143116Using a cutter I got the units
IMG_20130921_143434SSR setup
IMG_20130921_164651connecting SSR, PCB and PSU
IMG_20130921_170711assembling everything on heater side panel
IMG_20130921_173937finally, mounting side panel on the heater
IMG_20130921_133547

Next weeks, I’ll come back with this subject to talk about the software part.

How to get MP3 file from a WebM video

Another title for this post could be: “Getting audio from video clips”. Because you could do it with MP4 (Mpeg4), WebM, Mov, FLV, etc. We are going to use ffmpeg to that:

ffmpeg -i input_file.webm -ab 128k -ar 44100 out_file.mp3

The meaning of the parameters:

  • ab: the audio bitrate in bps
  • ar: the audio sample rate in hz

And if you have a directory with a lot of files to convert you could use:

find . -name "*.webm" -print0 |while read -d

Pay attention to “find” and “while read” commands combinations because we want to support files with spaces.

I hope this is as useful for you as for me.

\0' file; do ffmpeg -i "$file" -ab 128k -ar 44100 -y "${file%.webm}.mp3";done

Pay attention to “find” and “while read” commands combinations because we want to support files with spaces.

I hope this is as useful for you as for me.

RTMP source to HLS (HTTP Live Streaming) Apple

I just solved a very specific problem and I have to write some notes here to remember the solution. Given a RTMP source we have to stream the content to Apple devices like iPad, iPhone and iPod because RTMP couldn’t be played using Safari browser.

If we need to play streaming on Apple devices the best solution is convert it to HLS and publish generated files using HTTP server.

To solve this issue I use rtmpdump and vlc. Firstly rtmpdump gets video stream from source. Secondly the stream is sent to vlc and finally vlc transcodes de video and audio and outputs small .ts files and one .m3u8 index file.

The command is something like this:

rtmpdump -v -r "$RTMP" | sudo -u xymon vlc -I dummy fd://0 vlc://quit --sout="#transcode{width=320,height=240,fps=25,vcodec=h264,vb=256,venc=x264{aud,profile=baseline,level=30,keyint=30,ref=1,nocabac},acodec=mp3,ab=96,audio-sync,deinterlace,channels=2,samplerate=44100}:std{access=livehttp{seglen=10,delsegs=true,numsegs=5,index=$M3U8,index-url=$TS_URL},mux=ts{use-key-frames},dst=$TSF}"

Variables descriptions are:

RTMP=rtmp://example.tld/path/stream_id
WD=/local_path
TS=live-####.ts
TSF=$WD/$TS
TS_URL=http://example.tld/path/$TS
M3U8=$WD/live.m3u8

Then create an HTML file, for example live.html, with a reference to .m3u8 file, the relevant code of the HTML file is like this:

<video width="320" height="240"><source src="http://example.tld/path/live.m3u8" /></video>

A simple code to public files via HTTP:

python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"

Then we only need to open Safary browser in Apple device and set the proper URL, in our case:

http://example.tld/path/live.html

IMPORTANT NOTE: the audio output have to be with two channels and a sample rate of 44KHz in other cases the audio fails.

Celery logs through syslog

Celery logs are colorized by default, the first big idea is disable color logs. It’s as easy as setting ‘CELERYD_LOG_COLOR’ to ‘False’ in ‘celery.conf’. The code could be something like this:

celery.conf.update('CELERYD_LOG_COLOR' = False)

Secondly we need a function where we set up a new handler and other settings to celery logging system. For example, the code could be:

from __future__ import absolute_import
from logging import BASIC_FORMAT, Formatter
from logging.handlers import SysLogHandler
from celery.log import redirect_stdouts_to_logger

def setup_log(**args):
    # redirect stdout and stderr to logger
    redirect_stdouts_to_logger(args['logger'])
    # logs to local syslog
    hl = SysLogHandler('/dev/log')
    # setting log level
    hl.setLevel(args['loglevel'])
    # setting log format
    formatter = Formatter(BASIC_FORMAT)
    hl.setFormatter(formatter)
    # add new handler to logger
    args['logger'].addHandler(hl)

Pay attention to ‘redirect_stdouts_to_logger’ it’s used to send all outputs like print’s or something else to syslog.

Thirdly we want to use those settings in our celery tasks, then we have to connect ‘setup_log’ code to some celery signals. Those signals are launched when ‘task_logger’ and ‘logger’ are configured. To connect signals:

from celery.signals import after_setup_task_logger, after_setup_logger

after_setup_logger.connect(setup_log)
after_setup_task_logger.connect(setup_log)

Fourthly we have to get the ‘logger’, we can have more than one if we are interested in records with task context or without it. For example:

logger = get_logger('just_a_name_for_internal_use')
logger_with_task_context = get_task_logger('name_of_the_task_to_be_recorded_in_logs')

Finally we only have to use those loggers with common methods DEBUG, INFO, WARN, ERROR and CRITICAL:

@celery.task
def the_task():
    logger.info('this is a message without task context')
    logger_with_task_context.debug('this record will have the prefix "name_of_the_task_to_be_recorded_in_logs" in syslog')

Technitium MAC Address Changer

I just want to share with you a small and powerful Windows tool I found in my last trip to US. The best feature IMHO is that permits to change the MAC address of your NIC interface without rebooting, safely and fast. It could be useful when you have a limit time to connect to internet in a free Wi-Fi network; after changing your MAC address you should be like a new device. If you have to do something like this, remember to remove the browser cookies.

Other interesting features of this tool is network presets. You can change your NIC settings very fast just changing a preset profile. As you can see in next screenshot it has a simple chart of your real time network traffic. And finally I want to stand out you can see all your network devices configuration very fast.

technitium MAC address changer screenshot

Technitium MAC Address Changer home page.

Route 66 – dia #19 – de San Francisco, California a Barcelona

El viatge de tornada ha estat via Frankfurt, com sempre passa en aquests casos tot plegat s’acaba allargant unes 24h. Així ara el que toca és viure amb el jet lag durants uns dies. El que volia fer en aquest article és aprofitar per comentar temes relacionats amb el viatge però que per un motiu o altre no he pogut afegir en el dia a dia.

Del primer que vull parlar és de la gent, nosaltres anavem amb el xip de que ens trobariem amb unes persones més aviat tancades, pre-potents i no massa amables. La nostre sorpresa ha estat trobarnos en just el contrari, en molts llocs incloses grans ciutats la gent et saluda fins hi tot sense venir a “cuento” de res, sempre estan apunt per fer-te un comentari amable. Fins hi tot aguantar-te la porta al entrar o sortir dels llocs.

A l’hora de conduir són molt més pacients que en el nostre país, rarament et piten i s’esperen el que calgui per facilitar-te la conducció. Com a tot arreu ens hem trobat excepcions i generalitzar sempre és dolent, tot i que en el nostre cas he de dir que els pocs casos de persones fora del patró que descric han estat hispanes i dels 9 estats que hem visitat el que la gent s’ha mostrat menys amigable ha estat California.

Quan vas a l’estranger sempre troves senyals de transit o noms de negocis que són graciosos. En aquest viatge això era una mica més difícil perquè malgrat no hagis anat mai als EUA tots consumim moltíssimes produccions audiovisuals fetes en aquest país i llavors tot plegat ja és més familiar. Així que si m’he de quedar amb un nom gracios és el d’una carretera que es deia: Zzyzx a California.

IMG_6603

Una altre cosa curiosa o que em va sorprendre moltíssim és la quantitat de gent que sap castellà, sobretot a California. Ja no només les persones d’origen hispà, com podia passar a Nou Mèxic, sinó persones autòctones que com a mínim xapurrejaven el castellà.

Quan vaig estar a Panamà vaig aprendre que quan un semafor esta vermell es pot girar a la dreta, cosa que hem costava posar a la pràctica però que a base de tocs de pito dels que tenia darrera vaig aprendre. Doncs bé, la qüestió és que això és així perquè als EUA és una pràctica permesa i súper habitual. Això si, rarament et pitarà algu si estas en un carril de només girar a la dreta en un semafor vermell i no intentes passar.

Com es demana el menjar de forma habitual també és força curiós, en general no és gens car menjar, obviament si vols gastar diners ho pots fer. Tot i que amb uns 10$ pots menjar moltíssim. La idea és que tu demanes normalment un plat que costa aproximadament aquesta quantitat i això acostuma a incloure un o dos “sides”, que sovint pots escollir entre patetes fregides, patates al forn, una sopa, una amanida, una amanida de col o alguna coseta així. El restaurant de diari que més em va agradar és la cadena Denny’s; amb beguda “re-fill” com és típic i amb mil combinats dels que a mi m’agraden. Com a gran descobriment la “Pink Lemonade”, una llimonada rosa que esta molt bona.

Hi ha una pregunta típica d’aquest viatge: “què ús ha agradat més?” doncs la veritat no és senzill contestar-ho perquè hem vist moltíssimes coses. El “Painted Desert” és una passada, però clar després penses amb el “Grand Canyon” i que t’haig de dir. Arribats aquí canvio d’estartegia anem a pensar en ciutats, Chicago molt xula i verda, però al costat de San Francisco la veritat no hi ha color. Quan ja no saps per on tirar penses, en els poblets petits com Williams (Arizona) o fins hi tot amb Santa Fe (Nou Mèxic) que malgrat ser la capital de l’estat és un poble. Però posar això per davant de la costa: Venice, Santa Monica, o llocs més entrenyables com Big Sur, Morro Bay o Pacific Grove a Monterey doncs la veritat la cosa torna a ser impossible de comparar. Dit d’altre forma, almenys jo sóc no puc dir en quedar-me. Per tant només puc dir que és una experiència que s’ha de viure i que vull recomanar a tothom.

Scroll to Top