Sure. Here's the listener portion in all its one-line glory:
sudo tcpdump -A -n -p -l -i eth0 -s0 -w - tcp dst port 80 | stdbuf -oL strings -n8 | stdbuf -oL egrep "mt=5N1|mt=pressure"
As written, the egrep portion filters out everything but the 5N1 and the pressure messages. If you leave out the egrep statement, everything will come through. Or you can modify the egrep to allow the tower statements through and nothing else (mt=tower I think, but don't quote me on that). Once you see the raw messages come through, the mt values become clear. mt probably stands for "model type".
For those not familiar with egrep, the "!" in this case is an "or", meaning looking for data lines with the pattern "mt=5N1" or "mt=pressure". Modify this as needed to match your specific situation....either tighter or looser. grep (and egrep) are standard commands in Unix/Linux for looking for patterns in strings. If you're scratching your head, just trust me on this. Learning how to use grep and its relatives is extremely useful if you want to learn the Unix/Linux world. It looks obscure and incomprehensible to the uninitiated, but it's a very useful and powerful command to know.
The "parser" section should then be able to extract the the temp and humidity with little to no modification. If you have both a 5n1 and multiple towers, then you may need to add a few more lines of code to tell them apart. Basically you just grep the payload string for the unique identifiers for each sensor as needed.