├── cover.jpg ├── experiment28.js ├── experiment8.js ├── experiment7.js ├── experiment9a.js ├── experiment36.html ├── experiment13.js ├── experiment4a.js ├── experiment38a.js ├── experiment9b.js ├── experiment25.js ├── experiment10a.js ├── experiment34.html ├── experiment9d.js ├── experiment9c.js ├── experiment11.js ├── experiment6.js ├── experiment10b.js ├── experiment12.js ├── experiment38b.js ├── experiment4b.js ├── experiment34.js ├── experiment5.js ├── experiment29.js ├── experiment38c.html ├── experiment14a.js ├── experiment30.js ├── experiment35.js ├── experiment14b.js ├── experiment14c.js ├── experiment31.js ├── experiment38e.js ├── experiment10c.js ├── experiment39a.js ├── experiment38d.html ├── experiment16.js ├── experiment32.js ├── experiment14d.js ├── experiment15.js ├── experiment19a.html ├── experiment39.html ├── experiment19b.html ├── experiment20.html ├── experiment21.html ├── experiment22.html ├── experiment26.html ├── README.md └── experiment39b.js /cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/espruino/making-things-smart/HEAD/cover.jpg -------------------------------------------------------------------------------- /experiment28.js: -------------------------------------------------------------------------------- 1 | var l=""; 2 | Serial1.on('data', function(d) {l+=d;}); 3 | Serial1.setup(115200, { tx: B6, rx : B7 }); 4 | Serial1.write("AT+GMR\r\n"); 5 | setTimeout(function(){console.log(l);},1000); 6 | -------------------------------------------------------------------------------- /experiment8.js: -------------------------------------------------------------------------------- 1 | var SENSE = A8; 2 | var LIGHT = B6; 3 | var counter = 0; 4 | 5 | function onChanged(e) { 6 | counter++; 7 | if (counter&1) 8 | digitalPulse(LIGHT, 1 , 2/*ms*/); 9 | } 10 | 11 | digitalWrite(LIGHT, 0); 12 | pinMode(SENSE, "input_pullup"); 13 | setWatch(onChanged, SENSE, { edge:"rising", repeat:true }); 14 | -------------------------------------------------------------------------------- /experiment7.js: -------------------------------------------------------------------------------- 1 | var SENSE = A8; 2 | var counter = 0; 3 | function onChanged(e) { 4 | counter++; 5 | if (counter&1) // remove this if your fan only flashes once per revolution 6 | digitalPulse(LED2, 1 , 2/*ms*/); 7 | } 8 | 9 | pinMode(SENSE, "input_pullup"); 10 | setWatch(onChanged, SENSE, { edge:"rising", repeat:true }); 11 | -------------------------------------------------------------------------------- /experiment9a.js: -------------------------------------------------------------------------------- 1 | var SENSE = A8; 2 | var LIGHT = B6; 3 | var counter = 0; 4 | var pulses = 2;/*ms*/ 5 | 6 | function onChanged(e) { 7 | counter++; 8 | if (counter&1) 9 | digitalPulse(LIGHT, 1 , pulses); 10 | } 11 | 12 | digitalWrite(LIGHT, 0); 13 | pinMode(SENSE, "input_pullup"); 14 | setWatch(onChanged, SENSE, { edge:"rising", repeat:true }); 15 | -------------------------------------------------------------------------------- /experiment36.html: -------------------------------------------------------------------------------- 1 | 2 |
5 | Door opened
6 | ?
7 | times...
8 |
6 | Door opened
7 | ?
8 | times...
9 |