Stap 5: Opzetten van Johnny-Five
Johnny-Five is een Open Source, Firmata Protocol gebaseerd, IoT en robotica programmeringskader, ontwikkeld door Bocoup. Johnny-vijf programma's kunnen worden geschreven voor Arduino (alle modellen), elektrische Imp, Beagle Bone, Intel Galileo & Edison, een Linino, Pinoccio, pcDuino3, Raspberry Pi, Particle/vonk Core & foton, Tessel 2, TI Launchpad en meer!
Iknstall Johnny-vijf:
Moet u hebben al uitgevoerd op uw systeem node.js. Lees hier
Broncode:
git clone git://github.com/rwaldron/johnny-five.git && cd johnny-five
npm install
NPM-pakket:
Installeer de module met:
npm install johnny-five
We moeten ook de bibliotheek Etherport-client:
Clientzijde virtuele seriële poort voor Etherport voor de uitvoering van firmata-compatibele boards en binden hubs te beheersen planken door een externe entiteit.
npm install etherport-client
Schrijven JS Client
Maak een js-bestand in de directory van de johnny-vijf en noem deze op de juiste manier.
Plak deze code:
Regel 18 onder naar de ESP8266 bestuur adres bijwerken
/* * Update line 18 below to the ESP8266 board address * * Enable Serial debugging by uncommenting //#defin SERIAL_DEBUG in StandardFirmataWiFi * (save a copy of StandardFirmataWiFi first) * * On startup (you may have to reset the ESP board because it starts up really fast * view the Serial output to see the assigned IP address (if using DHCP) * Or if you want to give the board a static IP (not use DHCP) then uncomment the * following lines in wifiConfig.h and update to your chosen IP address: * #define STATIC_IP_ADDRESS 10,0,0,17 * #define SUBNET_MASK 255,255,255,0 // REQUIRED for ESP8266_WIFI, ignored for others * #define GATEWAY_IP_ADDRESS 0,0,0,0 // REQUIRED for ESP8266_WIFI, ignored for others */ var Firmata = require("firmata").Board; var EtherPortClient = require("etherport-client").EtherPortClient; var board = new Firmata(new EtherPortClient({ host: "192.168.1.103", port: 3030 }));
board.on("ready", function() { console.log("READY!"); console.log( board.firmware.name + "-" + board.firmware.version.major + "." + board.firmware.version.minor );
var state = 1; var lastVal = 0;
this.pinMode(2, this.MODES.OUTPUT);
setInterval(function() { // blinks the blue LED on a HUZZAH ESP8266 board // for other boards, wire an LED to pin 2 or change // the pin number below this.digitalWrite(13, (state ^= 1)); }.bind(this), 500);
// this does not seem to be working - need to look into it // one other thing is ESP uses a 1V reference for analog so // once this works, it will need scaling this.analogRead(0, function(value) { if (value != lastVal) { console.log(value); } });
});