Aiming at a sound formal basis for the design and implementation of robust programming languages for sensor networks, we present a process calculus that captures their main characteristics in terms of computational resources and communication abilities. The calculus, which has straightforward semantics and is rather expressive, features a static type system that allows premature detection of application protocol errors. Our main results include subject reduction and type safety proofs, as well as an initial implementation of an interpreter.