|!Punctuation|!Location|!Function|\n|{{{@@...@@}}}|surrounding text|@@highlighted text@@|\n|{{{//...//}}}|surrounding text|//italicized text//|\n|{{{==...==}}}|surrounding text|==strikethrough text==|\n|{{{''...''}}}|surrounding text|''boldfaced text''|\n|{{{__...__}}}|surrounding text|__underlined text__|\n|{{{[[text|url]]}}}|around text/url pair|[[text|http://gri.gallaudet.edu/]] link to url|\n|{{{ {...} }}}|''__tripled__'' surrounding text|{{{in-line literal text}}}|\n|{{{ {...} }}}|''__tripled__'' surrounding ''__lines__''|literal block|\n|{{{<<<}}}|surrounding ''__lines__''|blockquotes|\n|{{{!}}}|at start of line|subheading|\n|{{{|...|...|}}}|line sectioned by vertical bars|table row|\n|{{{!}}}|in a table|!table heading|\n|{{{----}}}|alone on line|horizontal rule|\n|{{{*}}}|at start of line|bulleted list item|\n|{{{#}}}|at start of line|numbered list item|\nsource: Kevin Cole, January 2007
TTiddlyWiki uses Wiki style markup, a way of lightly "tagging" plain text so it can be transformed into HTML. Edit this Tiddler to see samples.\n\n! Header Samples\n!Header 1\n!!Header 2\n!!!Header 3\n!!!!Header 4\n!!!!!Header 5\n\n! Unordered Lists:\n* Lists are where it's at\n* Just use an asterisk and you're set\n** To nest lists just add more asterisks...\n***...like this\n* The circle makes a great bullet because once you've printed a list you can mark off completed items\n* You can also nest mixed list types\n## Like this\n\n! Ordered Lists\n# Ordered lists are pretty neat too\n# If you're handy with HTML and CSS you could customize the [[numbering scheme|http://www.w3schools.com/css/pr_list-style-type.asp]]\n## To nest, just add more octothorpes (pound signs)...\n### Like this\n* You can also\n** Mix list types\n*** like this\n# Pretty neat don't you think?\n\n! Tiddler links\nTo create a Tiddler link, just use mixed-case WikiWord, or use [[brackets]] for NonWikiWordLinks. This is how the GTD style [[@Action]] lists are created. \n\nNote that existing Tiddlers are in bold and empty Tiddlers are in italics. See CreatingTiddlers for details.\n\n! External Links\nYou can link to [[external sites|http://google.com]] with brackets. You can also LinkToFolders on your machine or network shares.\n\n! Images\nEdit this tiddler to see how it's done.\n[img[http://img110.echo.cx/img110/139/gorilla8nw.jpg]]\n\n!Tables\n|!th1111111111|!th2222222222|\n|>| colspan |\n| rowspan |left|\n|~| right|\n|colored| center |\n|caption|c\n\nFor a complex table example, see PeriodicTable.\n\n! Horizontal Rules\nYou can divide a tiddler into\n----\nsections by typing four dashes on a line by themselves.\n\n! Blockquotes\n<<<\nThis is how you do an extended, wrapped blockquote so you don't have to put angle quotes on every line.\n<<<\n>level 1\n>level 1\n>>level 2\n>>level 2\n>>>level 3\n>>>level 3\n>>level 2\n>level 1\n\n! Other Formatting\n''Bold''\n==Strike==\n__Underline__\n//Italic//\nSuperscript: 2^^3^^=8\nSubscript: a~~ij~~ = -a~~ji~~\n@@highlight@@\n@@color(green):green colored@@\n@@bgcolor(#ff0000):color(#ffffff):red colored@@\n
StremBot
Design site for [[StremBot Stream Gauge|http://en.wikipedia.org/wiki/Stream_gage]].
The 99Adafruit Distance Sensor|http://www.adafruit.com/products/164]] does not have the range...\n\nThe [[Parallax Ping Ultrasonic Range Finder|http://www.buzzillions.com/reviews/radio-shack-ultra-sonic-range-finder-reviews]]\nHas a complete [[interface guide|http://arduino.cc/en/Tutorial/Ping?from=Tutorial.UltrasoundSensor]]\nThis is available at [[Radio Shack, but they cost $29.00 ea|http://www.radioshack.com/product/index.jsp?productId=12326359]]
[[Virtualbotix|http://www.virtuabotix.com/]] appears the way to go for sensors...\n\n[[Virtuabotix Ultrasonic Distance Rangefinder/Obstacle Detection Module|http://www.amazon.com/Virtuabotix-Ultrasonic-Distance-Rangefinder-Detection/dp/B0066X9V5K/ref=sr_1_fkmr0_1/178-8123112-0880631?ie=UTF8&qid=1375880981&sr=8-1-fkmr0&keywords=Radio+Shack+Ultra-Sonic+Range+Finder]]\n\n[[SainSmart Ultrasonic Module HC-SR04 Distance Sensor for Arduino UNO MEGA R3 Mega2560 Duemilanove Nano Robot XBee ZigBee|http://www.amazon.com/SainSmart-Ultrasonic-Distance-Mega2560-Duemilanove/dp/B004U8TOE6/ref=sr_1_fkmr0_2/178-8123112-0880631?ie=UTF8&qid=1375880981&sr=8-2-fkmr0&keywords=Radio+Shack+Ultra-Sonic+Range+Finder]]
[[Stream Gauge News|news]]\n\n[[Google Plus Strembot movie 2014-03-21|https://plus.google.com/photos/113799284948875539893/albums/5993255884804250945/5993255887182865154?pid=5993255887182865154&oid=113799284948875539893]]\n\nYoutube Streambot Movie 2014-02 [[Here is the video|https://www.youtube.com/watch?v=eFBXq1d-Apw]]\n\nThe standard W's Questions...\n|![[who|strem-bot-who]] |![[what|strem-bot-what]] |![[when|strem-bot-when]] |![[where|strem-bot-where]]|![[how much|strem-bot-howmuch]]|\n\nPlease review and consider financially contributing to this project through [[our crowdfunding page|http://www.indiegogo.com/projects/strembot]]\n28th September Mini Maker Fair Presentation on the [[Strembot|http://docbox.flint.com/~flint/strembot_presentation/text0.html]] (note name change is in progress)\n\nAn offshoot of the concept of [[conspicuous environmental display|http://docbox.flint.com/~flint/strembot_presentation/img0.html]] is the Streambot stream gauge. The goals of this project are:\n* Develop a useful stream gauge available to the average ecologist\n* Build a stream gauge simple to purchase operate and maintain\n* Begin the process of attaching the data streams to [[ data communications networks|transmission]].\n\nNote that this project as of October 1 changes its name from "streambot" to "strembot" in order to avoid a naming conflict.\n\n[[Strembot Design |StrembotDesign]]\n\n<html><iframe width="420" height="315" src="//www.youtube.com/embed/eFBXq1d-Apw" frameborder="0" allowfullscreen></iframe></html>
[[overview]]\n
[[defunding|http://www.state.nj.us/drbc/gage/gageshp.htm#7]]
!About\nBase network sould have the following features\n\n* Easy abstraction of all devices\n* Remote Device configuration\n* Autoconfiguration of devices\n* Storage of precise data\n* Scalability\n* Device address scheme (internal and external?)\n\n!ALL work will be saved to a GITHub Repository\n\nhttps://github.com/BOSIvt/Strembot\n\n!Archatechure\n[[MVC]] - Model-View-Controller\n!Server will contain\n\n* [[Node.js]] --Server Backbone\n* [[SVD-XBEE]] --Xbee control-usage via Node.js\n* [[Socket.Io]] -- Network communications Method\n* [[socket.ioAC]] Socket.Io Arduino Client\n* [[NodeSerialPort]] -- Allows Node.js to access serial ports\n* [[NPM]] Node Packaged Modules\n* [[jQuery]] -- JS library for frontend\n* [[Flot]] -- graphing\n* [[Apache]] -- WebServer\n* [[HyperTable]] -database\n* [[RRD]]? --Database\n* [[javascriptRRD]]?- rrd access and graphing via flot\n* [[node-snmpjs]]\n\n\n\n\n!General network idea\n\n[img[http://docbox.flint.com/~cpyarger/SB_network_29-sept-2013.png]]
https://github.com/jouz/svd-xbee\n\n!SVD-XBEE\nDigi's xbee modules are good for quickly building low power wireless networks. They can be used to send/receive text data from serial ports of different devices. XBees can also be used alone for their on board digital and analog I/O capabilities.\n\nsvd-xbee is a high level, actively maintained fork of Richard Morrison's node-xbee. It talks the ZigBee API with XBee radio modules over serial connections and provides high level abstractions of the XBee's functionality.\n\n!Nutshell\n{{{\nvar XBee = require('svd-xbee');\n\nvar xbee = new XBee({\n port: 'COM3', // replace with yours\n baudrate: 9600 // 9600 is default\n}).init();\n\nvar robot = xbee.addNode([0x00,0x13,0xa2,0x00,0x40,0x61,0xaa,0xe2]);\n\nvar robot.on("data", function(data) {\n console.log("robot>", data);\n if (data == "ping") robot.send("pong");\n});\n}}}\n!Features\n\n*Asynchronous architecture\n*Event-based Node Discovery\n*Local and remote AT commands\n*High-level abstraction of common tasks\n*Parse API frames into meaningful objects\n*Regular text data\n*Analog & Digital I/O Samples\n*Modem Status\n*Transmission Reports\n!Installation\n\n{{{npm install svd-xbee}}}
!About\nSocket.IO aims to make realtime apps possible in every browser and mobile device, blurring the differences between the different transport mechanisms. It's care-free realtime 100% in JavaScript.\n\n! Installation\nAfter installing node.js do \n\n{{{npm install socket.io}}\n\n!Basic usage\nHere is the most basic example of how to use Socket.IO\n!* SERVER\n{{{\nvar io = require('socket.io').listen(80);\n\nio.sockets.on('connection', function (socket) {\n socket.emit('news', { hello: 'world' });\n socket.on('my other event', function (data) {\n console.log(data);\n });\n});\n}}}\n\n*!CLIENT\n{{{\n<script src="/socket.io/socket.io.js"></script>\n<script>\n var socket = io.connect('http://localhost');\n socket.on('news', function (data) {\n console.log(data);\n socket.emit('my other event', { my: 'data' });\n });\n</script>\n}}}\n\n! Advanced usage examples and other external documentation\n* [[http://socket.io/#how-to-use|http://socket.io/#how-to-use]]\n* [[https://github.com/learnboost/socket.io/wiki|https://github.com/learnboost/socket.io/wiki]]\n* [[ http://socket.io/#faq|http://socket.io/#faq ]]\n
\n!SocketIO Arduino Client, an Arduino client for connecting and messaging with Socket.io servers\n\nBased on Kevin Rohling's arduino websocket client modified to work with socket.io servers. Along the way, all uses of the String class were replaced with fixed char buffers so as to use less memory.\n\nThe bitlashsocketio.ino example provides an integration with Bitlash on the Arduino and a node.js example server that can be used to send Bitlash commands over the Websocket fabric to the Arduino, and see its output in reply.\n\nKevin's documentation is reproduced hereinafter, with changes as needed.\n\n!Caveats\n\nThis library doesn't support every inch of the Websocket spec, most notably the use of a Sec-Websocket-Key. Also, because Arduino doesn't support SSL, this library also doesn't support the use of Websockets over https. If you're interested in learning more about the Websocket spec I recommend checking out the Wikipedia Page. Now that I've got that out of the way, I've been able to successfully use this to connect to several hosted Websocket services, including: echo.websocket.org and pusherapp.com.\n\n!Installation instructions\n\n\nClone this repo into your Arduino Sketchbook directory under libraries, then restart the Arduino IDE so that it notices the new library. Now, under File\sExamples you should see SocketIOClient.\n{{{cd ~/sketchbook/libraries && git clone https://github.com/billroy/socket.io-arduino-client.git}}}\n!How To Use This Library\n\n{{{\nbyte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };\nchar server[] = "echo.websocket.org";\nWebSocketClient client;\n\nvoid setup() {\n Serial.begin(9600);\n Ethernet.begin(mac);\n client.connect(server);\n client.setDataArrivedDelegate(dataArrived);\n client.send("Hello World!");\n}\n\nvoid loop() {\n client.monitor();\n}\n\nvoid dataArrived(WebSocketClient client, char *data) {\n Serial.println("Data Arrived: " + data);\n}\n}}}\n\n!Examples\n\nThere example included with this library, EchoExample, will connect to echo.websocket.org, which hosts a service that simply echos any messages that you send it via Websocket. This example sends the message "Hello World!". If the example runs correctly, the Arduino will receive this same message back over the Websocket and print it via Serial.println.
! About\nNode.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. \n\nNode.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.\n\nCurrent Version: v0.10.18\n\n! Link to download\nhttp://nodejs.org/dist/v0.10.18/node-v0.10.18.tar.gz
!About \n\nNode.js package to access serial ports for reading and writing OR Welcome your robotic JavaScript overlords. Better yet, program them!\n\n!How To Use\nUsing node-serialport is pretty easy because it is pretty basic. It provides you with the building block to make great things, it is not a complete solution - just a cog in the (world domination) machine.\n\n!To Install\n\nThis assumes you have everything on your system necessary to compile ANY native module for Node.js. This may not be the case, though, so please ensure the following are true for your system before filing an issue about "Does not install". For all operatings systems, please ensure you have Python 2.x installed AND not 3.0, node-gyp (what we use to compile) requires Python 2.x.\n\n!Desktop (Debian/Ubuntu) Linux:\n\nYou know what you need for you system, basically your appropriate analog of build-essential. Keep rocking!\n\n{{{\n sudo apt-get install build-essential\n npm install serialport\n}}}\n!Raspberry Pi Linux:\n\nStarting with a a vanilla New Out of the Box Software (NOOBS) Raspbian image (currently tested: 5/25/2013)\n\nLog into your Raspberry Pi through whatever means works best and ensure you are on a terminal prompt for the remaining steps. This could be local or through an SSH (or a serial connection if you like).\n\nIssue the following commands to ensure you are up to date: \n\n{{{\nsudo apt-get update sudo apt-get upgrade -y\n}}}\n\nDownload and install node.js: \n{{{\nwget http://nodejs.org/dist/v0.10.12/node-v0.10.12-linux-arm-pi.tar.gz tar xvfz node-v0.10.12-linux-arm-pi.tar.gz sudo mv node-v0.10.12-linux-arm-pi /opt/node/\n}}}\n\nSet up your paths correctly: \n\n{{{\necho 'export PATH="$PATH:/opt/node/bin"' >> ~/.bashrc source ~/.bashrc\n}}}\n\nInstall using npm, note this will take a while as it is actually compiling code and that ARM processor is getting a workout. npm install serialport\n\n!To Use\n\n!Opening a serial port:\n{{{\nvar SerialPort = require("serialport").SerialPort\nvar serialPort = new SerialPort("/dev/tty-usbserial1", {\n baudrate: 57600\n});\n}}}\n\nWhen opening a serial port, you can specify (in this order).\n\n*Path to Serial Port - required.\n*Options - optional and described below.\n\nThe options object allows you to pass named options to the serial port during initialization. The valid attributes for the options object are the following:\n\n*baudrate: Baud Rate, defaults to 9600. Must be one of: 115200, 57600, 38400, 19200, 9600, 4800, 2400, 1800, 1200, 600, 300, 200, 150, 134, 110, 75, or 50.\n*databits: Data Bits, defaults to 8. Must be one of: 8, 7, 6, or 5.\n*stopbits: Stop Bits, defaults to 1. Must be one of: 1 or 2.\n*parity: Parity, defaults to 'none'. Must be one of: 'none', 'even', 'mark', 'odd', 'space'\n*buffersize: Size of read buffer, defaults to 255. Must be an integer value.\n*parser: The parser engine to use with read data, defaults to rawPacket strategy which just emits the raw buffer as a "data" event. Can be any function that accepts EventEmitter as first parameter and the raw buffer as the second parameter.\n\nNote, we have added support for either all lowercase OR camelcase of the options (thanks @jagautier), use whichever style you prefer.\n\n!open event\n\nYou MUST wait for the open event to be emitted before reading/writing to the serial port. The open happens asynchronously so installing 'data' listeners and writing before the open event might result in... nothing at all.\n\nAssuming you are connected to a serial console, you would for example:\n\n{{{\nserialPort.on("open", function () {\n console.log('open');\n serialPort.on('data', function(data) {\n console.log('data received: ' + data);\n }); \n serialPort.write("ls\sn", function(err, results) {\n console.log('err ' + err);\n console.log('results ' + results);\n }); \n});\n}}}\n\nYou can also call the open function, in this case instanciate the serialport with an additional flag.\n\n{{{\nvar SerialPort = require("serialport").SerialPort\nvar serialPort = new SerialPort("/dev/tty-usbserial1", {\n baudrate: 57600\n}, false); // this is the openImmediately flag [default is true]\n\nserialPort.open(function () {\n console.log('open');\n serialPort.on('data', function(data) {\n console.log('data received: ' + data);\n }); \n serialPort.write("ls\sn", function(err, results) {\n console.log('err ' + err);\n console.log('results ' + results);\n }); \n});\n}}}\n!List Ports\n\nYou can also list the ports along with some metadata as well.\n\n{{{\nserialport.list(function (err, ports) {\n ports.forEach(function(port) {\n console.log(port.comName);\n console.log(port.pnpId);\n console.log(port.manufacturer);\n });\n});\n}}}\n\n!Parsers\n\nOut of the box, node-serialport provides two parsers one that simply emits the raw buffer as a data event and the other which provides familiar "readline" style parsing. To use the readline parser, you must provide a delimiter as such:\n{{{\nvar serialport = require("serialport");\nvar SerialPort = serialport.SerialPort; // localize object constructor\n\nvar sp = new SerialPort("/dev/tty-usbserial1", { \n parser: serialport.parsers.readline("\sn") \n});\n}}}\nTo use the raw parser, you just provide the function definition (or leave undefined):\n{{{\nvar serialport = require("serialport");\nvar SerialPort = serialport.SerialPort; // localize object constructor\n\nvar sp = new SerialPort("/dev/tty-usbserial1", { \n parser: serialport.parsers.raw\n});\n}}}\nYou can get updates of new data from the Serial Port as follows:\n{{{\nserialPort.on("data", function (data) {\n sys.puts("here: "+data);\n});\n}}}\nYou can write to the serial port by sending a string or buffer to the write method as follows:\n{{{\nserialPort.write("OMG IT WORKS\sr");\n}}}\nEnjoy and do cool things with this code.\n
! What is jQuery?\n\njQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers. With a combination of versatility and extensibility, jQuery has changed the way that millions of people write JavaScript.\n\n! Installation\nin the head of your HTML document include\n{{{\n<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>\n<script src="http://code.jquery.com/jquery-2.0.3.min.map"></script>\n}}}\n\nThats it!\n\nIf you wish to serve the libraries on your own server just download the above files onto your server\n\n!A Brief Look\n\n!DOM Traversal and Manipulation\n\nGet the <button> element with the class 'continue' and change its HTML to 'Next Step...'\n\n{{{\n$( "button.continue" ).html( "Next Step..." )\n}}}\n\n!Event Handling\n\nShow the #banner-message element that is hidden with display:none in its CSS when any button in #button-container is clicked.\n\n{{{\nvar hiddenBox = $( "#banner-message" );\n$( "#button-container button" ).on( "click", function( event ) {\n hiddenBox.show();\n});\n}}}\n\n!Ajax\n\n\nCall a local script on the server /api/getWeather with the query parameter zipcode=97201 and replace the element #weather-temp's html with the returned text.\n\n{{{\n$.ajax({\n url: "/api/getWeather",\n data: {\n zipcode: 97201\n },\n success: function( data ) {\n $( "#weather-temp" ).html( "<strong>" + data + "</strong> degrees" );\n }\n});\n}}}
!About\nFlot is a pure JavaScript plotting library for jQuery, with a focus on simple usage, attractive looks and interactive features.\n\n\nAdditional [[examples|http://www.flotcharts.org/flot/examples]] are bundled with Flot. Also take a look at the [[Flot Usage Wiki|http://github.com/flot/flot/wiki/Flot-Usage]] for screenshots and stories from people and companies using Flot.\n\n!Installation\nDownload: [[http://www.flotcharts.org/downloads/flot-0.8.1.zip|http://www.flotcharts.org/downloads/flot-0.8.1.zip]]\n!Documentation\n* [[Short introduction| https://github.com/flot/flot/blob/master/README.md]]\n* [[Frequently asked questions|https://github.com/flot/flot/blob/master/FAQ.md ]]\n* [[API documentation| https://github.com/flot/flot/blob/master/API.md]]\n* [[Plugin authoring guide| https://github.com/flot/flot/blob/master/PLUGINS.md]]\n* [[Jurgen Marsch has created a series of videos introducing Flot|http://www.youtube.com/channel/UCSg_P7KcrPRAOqkgAPeUhvQ ]]\n* [[NEWS describes what has been changed lately | https://github.com/flot/flot/blob/master/NEWS.md]]\n\nIf you need more help, consider posting to the friendly gang on the [[forum/mailing list.|http://groups.google.com/group/flot-graphs]] You can probably save yourself some time skimming the [[FAQ|https://github.com/flot/flot/blob/master/FAQ.md]] first.\n\n
!About\n\nNode Packaged Modules\n\nFor more info look at the website \n\n[[https://npmjs.org/|https://npmjs.org/]]\n\nOr check out the [[FAQ|https://npmjs.org/doc/faq.html]]\n\n
!About\nThe Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.\n\nMore info at: http://httpd.apache.org/\n\n
Round Robin Databse
!Description\n\nAs the name implies (Javascript RRD), javascriptRRD is a javascript library for reading Round Robin Database (RRD) archives (produced by rrdtool) using AJAX-like techniques. The library also provides graphing classes leveraging the Flot library.\n\n!Download\nhttp://sourceforge.net/projects/javascriptrrd/files/latest/download\n\n!Direct Info\nhttp://javascriptrrd.sourceforge.net/
*About\nHypertable is a high performance distributed data storage system designed to support applications requiring maximum performance, scalability, and reliability.\n\nIt is modeled after Google's BigTable and mostly focuses on large-scale datasets.\n\n!Download\nhttp://hypertable.com/download\n!More info\nhttp://hypertable.com/documentation/developer_guide/\n
Overall design objectives:\n*[[Sensor/enclosure|sensor]]\n*[[Processor/system software|StreamSoft]]\n*[[Enclosure/installation|enclosure]]\n*[[Power/Solar Acquisition|SolarShield]] & [[Storage]]\n*[[Transmission|Transmission]]\nNote that the initial design goal is that the Strembot shall output data in conformance with the [[SNMP Version 1 specification|http://tools.ietf.org/html/rfc1155]]\n\nChris Yarger has developed a [[complex, rich and interesting framework|BaseNet]] which shall be adapted to this use of SNMP.\n
Type the text for 'StremBot'
The sensor options are:\n\nUltrasonic\n[[Level Sensing Tape|LST]]
Level Sensing Tape is available from [[Milone Technologies|http://www.milonetech.com/Home_Page.html]]\n[[Specifications for the 24" Tape|http://www.milonetech.com/About_eTape.php]]\n\n\nChristopher Milone | Founder & President\nemail: chris.milone@milonetech.com\n\nJohn Tigani | Co-Founder & VP of Technology\nemail: john.tigani@milonetech.com\n\n\n'30 September 2013'\nLevel Sensing Tape\n|! Condition |! Resistance |\n|Dry | 1000 ohms |\n|Half submerged | 400 ohms |\n|Fully submerged | 100 ohms |\n|Pulled out | 800 ohms |
!Overview\n\nsnmpjs is a pure JavaScript, from-scratch framework for implementing SNMP agents, trap generators, and management applications in Node.js. It is intended primarily to enable the construction of a simple, general-purpose agent as an alternative to Net-SNMP.\n{{{\nvar os = require('os');\nvar snmp = require('snmpjs');\nvar logger = require('bunyan');\n\nvar log = new logger({\n name: 'snmpd',\n level: 'info'\n});\n\nvar agent = snmp.createAgent({\n log: log\n});\n\nagent.request({ oid: '.1.3.6.1.2.1.1.5', handler: function (prq) {\n var nodename = os.hostname();\n var val = snmp.data.createData({ type: 'OctetString',\n value: nodename });\n\n snmp.provider.readOnlyScalar(prq, val);\n} });\n\nagent.bind({ family: 'udp4', port: 161 });\n}}}\nTry hitting that with your favourite SNMP get utility, such as:\n\n{{{snmpget -v 2c -c any localhost .1.3.6.1.2.1.1.5}}}\n\n!Features\n\nsnmpjs allows you to implement agents, trap generators, and management applications that support the full range of SNMPv1 and SNMPv2c functionality. It is mostly compatible with all relevant standards -- see notes below -- and can also be extended to handle (and, optionally, to generate) SNMP messages that incorporate nonstandard data types and other deviations. Several pieces of standard MIB functionality are included along with a simple agent, but you can easily implement your own MIB subtrees or alternative agent. The library can also be used to incorporate SNMP functionality into other daemons; for example, to allow them to generate traps if a fault condition is detected.\n\n!Installation\n\n{{{npm install snmpjs}}}\n\n!More Info\n\nhttp://joyent.github.io/node-snmpjs/\n
[[Intro Article on Solar Powering Arduino|http://heliosoph.mit-links.info/solar-power-for-your-arduino-basics/]]\n\n[[Adafruit Lilpo charger kit|http://www.adafruit.com/products/1304]]\n\n[[Mintyboost|http://learn.adafruit.com/minty-boost]]
Processor Hardware Options\n\n[[Adafruit Trinket|http://learn.adafruit.com/introducing-trinket]]
http://www.tadiranbat.com/index.php/proven-in-remote-applications\n\nPulsesPlus batteries were developed specifically for applications such as automatic meter reading that require extremely long life at low average currents combined with periodic high current pulses. Marrying the inherent benefits of a standard bobbin-type lithium thionyl chloride cell with a hermetically sealed hybrid layer capacitor (HLC), they can be used to deliver pulses up to 3 A in amplitude and 380A/ s duration in a package no larger than two AA cells. By connecting these modules in series or parallel, a wide variety of voltages and capacities can be accommodated. The HLC is currently available in two sizes, all 15mm in dia. with lengths varying from 20 to 50 mm.\n\nThe use of hybrid lithium batteries enables Sensus Metering Systems to offer the industry's only published 20-year warranty\n\n\nAdditional benefits include:\n* Operating voltage of 3.6/3.9 V\n* Instant response/no passivation\n* Operating temperature range of ~40 C to 85 C\n* Hermetically sealed (glass-to-metal seal, laser welded)\n* 20-year operating life\n*Self-discharge <1.5% year\n* UL listed\n* Compliant with current shipping regulations\n
http://www.adafruit.com/products/1525\n[img[http://www.adafruit.com/images/large/1525_LRG.jpg]]\n\nThese panels come to us from Voltaic Systems, makers of fine solar-powered bags and packs. These are waterproof, scratch resistant, and UV resistant. They use a high efficiency monocrystalline cell. They output 6V at 930 mA via 3.5mm x 1.3mm DC jack connector - a nice upgrade to the 2W or 3W panels we have been carrying. The substrate is an aluminum / plastic composite, specifically designed to be strong and lightweight. They can easily stand up to typical outdoor use including being dropped and leaned on. They're very high quality and suggested for projects that will be exposed to the outdoors. These now come with 4 plastic mounting screws which makes it easy to attach the panel, even to fabric! \n\nTo connect, we suggest a 3.8mm OD/1.3mm ID DC jack \n\nIf you want to use this to charge a battery or run your project, check out our optimized Solar Lithium Ion/Polymer charger! \n\nFor some nifty ideas on what to do with your solar panels, check out Voltaic's DIY page
\n\n!*XBee-PRO XSC S3B, 900 MHz, 250 mW, RPSMA ant connector, 19.2 Kbps\n**Product #: XBP9B-XCST-002\n**Our Price: $42.00 \n[img[http://www.digi.com/images/products/xbee-xsc-s3b-rpsma_lg.jpg]]\n***For new designs that do not require interoperability with 9XStream radios, see [[XBee-PRO 900HP|http://www.digi.com/products/wireless-wired-embedded-solutions/zigbee-rf-modules/point-multipoint-rfmodules/xbee-pro-900hp]].\n***Optimized for over-the-air compatibility with legacy 9XStream products\n***Over-the-air compatible with legacy 9XStream and XSC products\n***20 times less current draw than previous XSC module\n***Superior outdoor LOS range of up to 28 miles\n\n!*9XTend - 1W transceiver, w/RPSMA connector, 115000 bps, with mesh, industrial\n[img[http://store.digi.com/images/products/prd-xtendoemmodule.jpg]]\n**Product #: XT09-SI-MESH\n**Our Price: $179.00 \n***ISM 900 MHz operating frequency\n***1 mW - 1 Watt power output (up to 40 mile range)\n***256-bit AES Encryption\n***Several advanced networking options and topologies supported\n***Approved for use in the United States, Canada, and Australia (XTH9)\n***Industrial grade (-40 C to 85C)\n\nNote: An alternative to this might be the [[Freakduino 900Mhz|http://makezine.com/2013/09/30/freakduino-900-mhz-goes-long-distance/]]
[[Battery]]\n[[Solar]]\n
[[Battery]]
Currently using #1\n\n# [[Twitterpate|twitterpate]]\n# [[Roll Yer Own|Freakduino900mHz]]\n# [[Xbee]]
! Enclosure - Flanged (Red) - $7.95\n[img[https://dlnmh9ip6v2uc.cloudfront.net//images/products/1/1/3/6/6/11366-01.jpg]]\nDescription: These beefy, bright red plastic enclosures will give your widget the protection (and attention) it deserves. You've probably seen these used to enclose radio equipment or antenna baluns as they can be secured to a pole using U-bolts (not included). At about 3mm thick, this 74x158x90mm enclosure has plenty of space for gizmos, gadgets, widgets and doohickeys. The mounting flanges extend 19mm from either edge with two 50mm-spaced 7mm diameter holes.\n\nThere's a rubber gasket around the inside of the lid which forms a dust and moisture resistant seal when the screws are tightened down. The lid is secured with 6 4mm screws (included)\nhttps://www.sparkfun.com/products/11366\n\n!Chameleon Enclosure - Black - $29.95\n[img[https://dlnmh9ip6v2uc.cloudfront.net//images/products/9/6/8/2/09682-01b.jpg]]\nDescription: Designed and built by ESawdust in Colorado, Chameleon 1 is an enclosure for popular development boards including Arduino and many Olimex dev boards like the AVR-P28. It also supports the XBee Regulated and FreeWave MegaMini RF modules. What makes the Chameleon so great is its universality, and its ruggedness. At only 9oz, it's surprisingly light but can withstand being thrown across a parking lot.\n\nIn addition to the enclosure, Chameleon 1 Basic comes with one blank faceplate and stand-offs. The following specialized faceplates can be purchased separately:\n\n*Olimex AVR-P28 and AVR-P20 Faceplate\n*Atmel NGW100 Faceplate\n*Arduino Duemilanove Faceplate\n*Olimex SAM7-P256 Faceplate\n*ET-AVR Stamp Faceplate\n*FriendlyARM mini2440 Faceplate\n*Blank Faceplate\n\n\nUsing a 1/8" drill-bit, as referenced by the hole guide, holes are drilled so that the 1/4" standoffs can be mounted on the universal base plate. The pre-centerpunched holes (small dents that guide the drill so it doesn't skate) make drilling much easier. No measuring or tweaking is required. The hole pattern for the Olimex AVR-P28 is 80x100mm and is a very common board size. The Chameleon 1 base plate was engineered to accommodate a host of 80x100mm boards including most Olimex dev boards and the SparkFun Marsupial protoboards.\n\nChameleon 1 is made of a stiff, lightweight aluminum. At only 9.5 ounces (269 grams), Chameleon 1 is a ready-made, rapid-install, hard-shell enclosure for your system. Once assembled, the enclosure feels rock solid. Chameleon 1 comes standard with a powder-coated black exterior that can be used as-is or painted if desired.\n\nNote: The Chameleon comes with a single faceplate, but you will need another one to fully enclose the box. You can either get a blank faceplate or a specialized plate.\n\nPackage includes:\n\n*(1) Universal base plate\n*(1) Lid\n*(1) Board mounting hardware kit including 1/4" standoffs, screws and nuts\n*(16) self-cutting, self-tapping metal screws to securely attach the lid and faceplates\n*(1) Blank face plate (additional styles available separately)\n*(1) Hardware package includes:\n*(16) self-cutting, self-tapping metal screws to attach lid, base, faceplates\n*(4) 1/4" female/female standoffs\n*(8) 3/16" 4-40 screws\n*(4) 1/8" 4-40 screws\nDimensions:\n\nLid: 2 x 5 x 6.15"\nBase Plate: 0.40 x 4.90 x 6.15"\nWeight: 9.5 ounces (269 grams)\nDocuments:\n\nDrawings and Application Guide (3MB so you may want to right click and download locally)\nDrill locations\nhttps://www.sparkfun.com/products/9682
USGS New England Water Science Center\nNew Hampshire/Vermont Office\n\nKEITH W. ROBINSON\nSend email\n331 Commerce Way, Suite 2\nPembroke, NH 03275-3718\nTelephone: (603) 226-7800\nFax: (603) 226-7894\nOffice hours: 8:00 a.m. to 4:30 p.m. Eastern Time\n\nVermont has the following four 4(four) watersheds\n* In [[New England Division|http://water.usgs.gov/wsc/reg/01.html]]\n[[018010 Upper Connecticut River |http://water.usgs.gov/wsc/acc/010801.html]]\n[[018020 Connecticut River| |http://water.usgs.gov/wsc/acc/010802.html]]\n\n* In [[Mid-Atlantic Division|http://water.usgs.gov/wsc/reg/02.html]]\n[[020100 Richelieu|http://water.usgs.gov/wsc/sub/0201.html]]\n[[020200 Upper Hudson|http://water.usgs.gov/wsc/acc/020200.html]]\n\n[[Watershed Map|http://water.usgs.gov/wsc/reg/01.html]]\n\n\nFor example Washington County is comprised of:\nhttp://water.usgs.gov/wsc/cat/01080105.html and http://water.usgs.gov/wsc/cat/02010003.html\n
Type the text for 'New Tiddler'
[[Freakduino 900 mHz |http://makezine.com/2013/09/30/freakduino-900-mhz-goes-long-distance/]]\n\n[[Freakduino data sheet|http://www.freaklabsstore.com/pub/FREAKDUINO-900%20v2.1A-1%20Datasheet.pdf]]\n\n[[Also considered |http://www.seeedstudio.com/depot/seeeduino-stalker-v2-p-727.html]]
<html>\n <head><title>stream-bot-what</title></head>\n <body bgcolor="#FFFFFF">\n<h2>stream-bot-what</h2>\n<p>\nWhat is the Streembot?\n</p>\n </body>\n</html>\n\nThe basic idea behind the Strembot is to have a device that will measure water depth at remote locations reliably and inexpensively.\s\n\nOur belief is that capability will lead to [[several useful applications|StrembotApplications]]\n\nThe strembot is comprised of the following:\n# [[Power System]]\n# [[Power Storage]]\n# [[Processor|Processor]]\n# [[Sensor|sensor]]\n# [[Transmission]]\n# [[Casing]] \n
<html>\n <head><title>strem-bot-howmuch</title></head>\n <body bgcolor="#FFFFFF">\n<h2>strem-bot-howmuch</h2>\n<p>\nThe goal here is to have strembot stream gauges for a retail price of $200.00 each. \nThis would require that about 200 strembots be produced to recover development costs.\n</p>\n </body>\n</html>\n\nIn order to accomplish this goal it is necessary to consider development costs. \nThese are estimated below:\n\n|# | System | Estimate|\n|1. |[[Power System |Power System]]| $2,000|\n|2. |[[Power Storage |Power Storage]]| 3,000|\n|3. |[[Processor |Processor]]| 10,000|\n|4. |[[Sensor |sensor]]| 1,500|\n|5. |[[Transmission |Transmission]]| 5,000|\n|6. |[[Casing |Casing]]| 4,000|\n| | TOTAL| $25,500|
<html>\n <head><title>strem-bot-where</title></head>\n <body bgcolor="#FFFFFF">\n<h2>strem-bot-where</h2>\n<p>\nThis is the strem-bot-where Document.\n</p>\n </body>\n</html>\n
<html>\n <head><title>stream-bot-who</title></head>\n <body bgcolor="#FFFFFF">\n<h2>stream-bot-who</h2>\n<p>\nThis is the stream-bot-who Document.\n</p>\n </body>\n</html>\n\nParticipants Include:\n* [[Paul Flint|]]\n* [[Chris Yarger|]]\n* [[Jeane Danielle|]]
<html>\n <head><title>stream-bot-when</title></head>\n <body bgcolor="#FFFFFF">\n<h2>stream-bot-when</h2>\n<p>\nGoal: Spring 2013\n</p>\n </body>\n</html>\nwith some [[financial support|strem-bot-howmuch]] we could be online by spring 2013.\n
# E-tape 12" solder\n# E-tape 12" connector\n# E-Tape 24.5" teflon coater\n[img[http://docbox.flint.com/~cpyarger/etape2.jpg]]\n\n[img[http://docbox.flint.com/~cpyarger/etape-capped2.JPG]]\n[img[http://docbox.flint.com/~cpyarger/etape-capped.JPG]]\n[img[http://docbox.flint.com/~cpyarger/etape-capped3.JPG]]
The basic idea here is that streambots are mounted next to a pool, and thus can detect changes. While the unit is waterproof within limits, Secure mounting is very critical. Mounting options include:\n* [[Commercial post mount|http://www.homedepot.com/p/Oz-Post-T4-850-4-in-Square-Wood-Post-Anchor-6-CASE-30161/202400933#.UmqKrRzpKcE]]\n*[[Unistrut|unistrut_mount]]
unistrut mount rendering....Chris Yarger concepts...\n[img[http://docbox.flint.com/~cpyarger/pipe-with%20cap%20and%20mounts.JPG]]\n[img[http://docbox.flint.com/~cpyarger/strembot%20with%20pipe%20-%201%20inch%20-zoom.JPG]]\n[img[http://docbox.flint.com/~cpyarger/strembot%20with%20pipe%20-%201%20inch.JPG]]\n[img[http://docbox.flint.com/~cpyarger/strembot.JPG]]\n[img[http://docbox.flint.com/~cpyarger/strembot%20with%20pipe.JPG]]\n[img[http://docbox.flint.com/~cpyarger/strembot%20with%20pipe%202.JPG]]\n[IMG[http://docbox.flint.com/~cpyarger/strembot%20with%20pipe%204.JPG]]\n[img[http://docbox.flint.com/~cpyarger/strembot%20with%20pipe%20holed.JPG]]
[[First Prototype Posting|https://plus.google.com/113799284948875539893/posts/FKJdWTMD6Cm]]
[[Flow strip samples|FlowStripSamples]]\n[[ADCop-AmpDesign]]\n[[Fequency Modulation Based Sensor Design|FrequencyDesign]]
* [[Stream bed siteing |Mounting Mechanical]]
\n[[Snowcloud Snow Gauge|http://www.burlingtonfreepress.com/article/20110215/NEWS02/110214030/]]\n\n[[Christian Salka|http://www.cs.uvm.edu/~ceskalka/]]\nhttp://www.vtspacegrant.org/URECA/ureca09_Willet_Simone.pdf
[[Schematic|http://docbox.flint.com/~flint/strembot/ainfr2_2013-12-23_quarter.jpg]]\n\n{{{\n/*\n Analog input test\n Turns an LED on. Then samples analog input \n This development code is in the public domain.\n*/\n\n// Pin 2 is the power source for this sensor.\n// give it a name:\nint led = 2;\n\n// the setup routine runs once when you press reset:\nvoid setup() { \n // initialize the digital pin as an output and a power supply.\n pinMode(led, OUTPUT);\n // initialize serial communication at 9600 bits per second:\n Serial.begin(9600);\n}\n\n\n/*\n AnalogReadSerial\n Reads an analog input on pin 0, prints the result to the serial monitor.\n Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.\n \n This example code is in the public domain.\n SOURCE:\n http://arduino.cc/en/Tutorial/AnalogReadSerial\n */\n\n// the loop routine runs over and over again forever:\nvoid loop() {\n digitalWrite(led, HIGH ); // turn the LED on (HIGH is the voltage level)\n // digitalWrite(led, LOW ); // turn the LED on (HIGH is the voltage level)\n // Note that HIGH means voltage at the pin, LOW is ground at the pin...\n // read the input on analog pin 0:\n int sensorValue = analogRead(A0);\n // print out the value you read:\n Serial.println(sensorValue);\n delay(1); // delay in between reads for stability\n}\n}}}
\nThe "Twitterpate" method of communications is to use SMS messaging to send and receive data from the Streambot.\nSeveral advantages:\n* Simplifies telemetry design\n* GSM/GPRS Should be available everywhere \n\nSeveral disadvantages:\n* Costs money\n* GSM/GPRS may not be available everywhere...\n* Messages are $0.20 each...\n \n2014-01-02 TADA Use Arduino UNO.\n[[GSM Operation|GSMoperation]]\n\n\n[[Source|http://www.seeedstudio.com/depot/gprs-shield-p-779.html]]\nThe GPRS (General Packet Radio Service) Shield is a new nonvoice value added service that delivers GSM/GPRS 850/900/1800/1900MHz performance for voice, SMS, Data, and Fax in a small form factor and with low power consumption. It is controlled via AT commands (GSM 07.07 ,07.05 and SIMCOM enhanced AT Commands), and fully compatible with Seeeduino/Arduino and Mega. The GPRS Shield has 12 GPIOs 2 PWMs and 1 ADC(They are all 2V8 logic).\n\nFeatures\n* Quad-Band 850/ 900/ 1800/ 1900 MHz\n* GPRS multi-slot class 10/8\n* GPRS mobile station class B\n* Compliant to GSM phase 2/2+\n* Class 4 (2 W @850/ 900 MHz)\n* Class 1 (1 W @ 1800/1900MHz)\n* Control via AT commands (GSM 07.07 ,07.05 and SIMCOM enhanced AT Commands)\n* Low power consumption: 1.5mA(sleep mode)\n* Operation temperature: -40C to +85C\n\nDocuments\n\n[[GPRS Shield|http://www.seeedstudio.com/wiki/GPRS_Shield_V1.0]]\n[[Arduino Software Serial Library|http://arduino.cc/en/Reference/SoftwareSerial]]
The [[Arduino Leaonardo |http://arduino.cc/en/Main/arduinoBoardLeonardo]]
\n[[General Sketch Syntax|http://arduino.cc/en/Reference/HomePage]]\n[[Can arduino automatically name a variable the same as the sketch?||http://forum.arduino.cc/index.php?topic=195657.0;wap2]]\n[[Variable Names|http://forum.arduino.cc/index.php?topic=46900.0]]\n[[arduino linux device|http://playground.arduino.cc/Linux/All]]\n[[setting device |http://forum.arduino.cc/index.php?topic=46900.0]]\n\nsudo vi /etc/udev/rules.d/99-usb-serial.rules\ncurrently:\n{{{\nSUBSYSTEM=="usb", ATTRS{idVendor}=="2341",ATTRS{serial}=="0000:00:1d.0", ATTRS{idProduct}=="8036", NAME="/dev/ttyACM0"\n}}}\n\n[[writing new udev rules|http://reactivated.net/writing_udev_rules.html]]\n\n[[udevinfo replaced by "udevadm info"|https://lists.debian.org/debian-user/2010/07/msg01134.html]]\n\n[[writing arduino udev rules|http://www.joakimlinde.se/microcontrollers/arduino/avr/udev.php]]\n\n[[usb device naming|http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/]]\n\n{{{\nsudo /etc/init.d/udev restart\n}}}\n\nTo test:\n[[SOURCE:|http://udev.sourcearchive.com/documentation/136-5/udevadm-test_8c-source.html]]\n{{{\n# udevadm test /bus/usb 2>| grep 99\n}}}\n\nmaybe better to fix:\n{{{\n~/.arduino/preferences.txt\n}}}
GSM Hello world\n{{{\nOK\nAT+CMEE=1\nOK\nAT+CMGF=1\nOK\nAT+CMGS="+18025959365"\n> Hello World...\n> \n+CMGS: 15\n\nOK\n\n+CMT: "78108858","","14/01/03,07:26:49-20"\nThe last transaction cost 0oc n 7 iuogwt/P\n}}}\n\n\nAT+CMGF=1 configuration\n AT+CMGS="+918446043032"\n\nTelephone number of our SIM is:\n8023755756\n\nCalls home phone and rings:\n{{{\natd18024792360;\n}}}\n\nThus:\nAT+CMGS="+8023755756"\n\n[[Moto AT commands|http://en.wikipedia.org/wiki/Motorola_phone_AT_commands]]\n[[GSM Error Codes|http://www.smssolutions.net/tutorials/gsm/gsmerrorcodes/]]\n
[[AT&T|http://www.att.com/esupport/article.jsp?sid=KB45161&cv=820#fbid=nZa9omKAi3S]]\n \n10digitmobilenumber@txt.att.net \n{{{\n8025959365@txt.att.net\n}}}\n\n[[AT&T text to email|http://www.att.com/esupport/article.jsp?sid=KB76952#fbid=nZa9omKAi3S]]\n\nSending email to test phone:\n(note new phone number...)\n{{{\n8025959762@txt.att.net\n}}}\n\n\nreturn is \n1210100001
Strembot Applications\n\n* Flood Prediction\n* Watershed Management\n* Livestock Water Level Monitoring\n* Maple Syrup Tank Monitoring\n
ADCop-AmpDesign\n\n[[The problem with op amps in digital circuits|http://www.swarthmore.edu/NatSci/echeeve1/Ref/SingleSupply/SingleSupply.html]]\n\n\nStatement of the problem:\nSince the pressure tape only operates between two resistances, low is 1000 ohms and hi is 2000 ohms. It is ideal to concentrate the tapes resistance change and express this resistance change in terms of a voltage change that starts and 0 volts and continues to 3.3 volts. In order to transform this resistance change into a voltage change we need to use a linear DC amplifier capable of offset. The current choice is an operational amplifier or [[Op Amp Basics|http://www.electronics-tutorials.ws/opamp/opamp_2.html]] [[summary|http://www.electronics-tutorials.ws/opamp/opamp_8.html]].\n\nThis appears to be called range matching in the ADC world. [[Analog Signal Conditioning|http://zone.ni.com/devzone/cda/ph/p/id/197]]\n\n[img[http://docbox.flint.com/~flint/strembot/ainfr2_2014-01-17_quarter.jpg]]\n\n[[SOURCE|http://www.8051projects.net/lofiversion/t34210/help-adc-implementation.html]]\nThe op-amp circuit i use is like this photo here (http://upload.wikimedia.org/wikipedia/commons/thumb/d/d5/Opamp-differential.svg/725px-Opamp-differential.svg.png) with the values of R1=R2= 10ohm and Rf=Rg= 1000ohm so the output voltage is found by Vout = Rf/R1(v2-v1) where gain=Rf/R1= 100.\nI hope that all this is helpful to understand what i have done already.\n\n\nDesign Resources\n[[Circuit Fantasia|http://www.circuit-fantasia.com/circuit_stories/inventing_circuits/active_i-to-v_converter/active_i-to-v_converter.htm]]
[[Design Tool|http://www.analog.com/designtools/en/signalchaindesigner/?assetId=&refId=&assetType=&action=open&fromUrl=http%3A%2F%2Fwww.analog.com%2Fen%2Fcontent%2FSignal_Chain_Designer%2Ffca.html%2522%3Fsrc%3Dvideos]]
Good tool.\n\nBuilt a part [[contribute it|http://fritzing.org/learning/tutorials/creating-custom-parts/]]\n\nHow to edit a part:\n# Select part\n# Go to parts editor\n# Rename part\n# find your part in {{{/home/flint/.config/Fritzing/parts/user}}} it is an fpz folder this is an xml file\n# the particular svg you are looking for is in {{{~.config/Fritzing/parts/svg/user/schematic}}}\n
News\n\n* 2014-01-17 [[6 Million Dollars available for Stream Gauges in New York|http://cnynews.com/gillibrand-announces-stream-gauge-network-funding/]]\n* 2014-01-19 [[Indiegogo web site set up to help finance project|http://www.indiegogo.com/projects/strembot]]
The SolarShield:\n\n* An Arduino shield and software that allows you to maintain a solar based project\n* Understands and regulates the relationship between solar panels and batteries genreally\n* Specifically adapts to different size/type of batteries\n* Knows when to call in for help.\n
StreamSoft
FrequencyDesign\n\nResearch\n|!Reference HTML|! Description|\n|[[google search |https://www.google.com/search?client=ubuntu&channel=fs&q=arduino+frequency+measurement&ie=utf-8&oe=utf-8]]||\n|[[frequency measurement |http://tushev.org/articles/arduino/item/51-measuring-frequency-with-arduino]]||\n|[[frequency measurement |https://www.pjrc.com/teensy/td_libs_FreqMeasure.html]]||\n|[[frequency measurement |http://www.instructables.com/id/Arduino-Frequency-Detection/]]||
\nthe [[riffle|http://publiclab.org/wiki/riffle]] is a public lab
Frequency Based Interface design...\n\nThe problem with op amps in the strembot design are simply too much to contemplate.\n\nStatement of the problem:\nSince the pressure tape only operates between two resistances, low is 1000 ohms and hi is 2000 ohms. Rather than try to express this resistance as a change in voltage, which leads to \nall sorts of level shift and zeroing issues, it is better to express the tapes resistance change in terms of a frequency change. The following circuit expresses this change as a \nsquare wave between 25 and 35 kilo Hertz. \n\n[img[http://docbox.flint.com/~flint/strembot/ainfr2_2014-03-010b_schem.jpg]]\n\nI hope that all this is helpful to understand this is a better way to go than try\nto do this in the amplitude domain as I have [[tried already|ADCop-AmpDesign]].\n\n\nArduino Frequency Counting Resources:\n
21 March 2014\n \nFreqCounter improves the resolution to 150/in. See kenneth_2014-03-21. Still want more. \nTried [[FreqCount|http://www.pjrc.com/teensy/td_libs_FreqCount.html]] same general problem.\nGoing to try [[FreqMeasure|http://www.pjrc.com/teensy/td_libs_FreqMeasure.html]] with test signal\n\n\n10 March 2014\n\nFreqCount vs FreqMeasure\nFreqCount: best for 1 kHz to 5 MHz [[FreqCounter.h|http://interface.khm.de/wp-content/uploads/2009/01/FreqCounter_1_12.zip]]\nFreqMeasure: best for 0.1 Hz to 1 kHz \n\nResearch\n\n|!Reference|! Description|\n|[[Library Description|https://www.pjrc.com/teensy/td_libs_FreqMeasure.html]]||\n|[[Search for frequency counter|https://www.google.com/search?q=arduino+FreqCounter.h]]||\n|[[More Information |http://www.pjrc.com/teensy/td_libs_FreqCount.html]]||\n|[[compare frequency counter libraries |http://www.pjrc.com/teensy/td_libs_FreqCount.html#compare]]||\n|[[frequency counter example |http://www.harryaxten.webs.com/freqcounter.htm]]||\n|[[Arduino Frequency Counter Libraries |http://interface.khm.de/index.php/lab/experiments/arduino-frequency-counter-library/]]||\n|[[Frequency Measurement with Arduino http://tushev.org/articles/arduino/item/51-measuring-frequency-with-arduino]]||\n\n\nSample Code\nSource: http://www.pjrc.com/teensy/td_libs_FreqCount.html\n{{{\n#include <FreqCount.h>\n\nvoid setup() {\n Serial.begin(57600);\n FreqCount.begin(1000);\n}\n\nvoid loop() {\n if (FreqCount.available()) {\n unsigned long count = FreqCount.read();\n Serial.println(count);\n }\n}\n\n}}}\n\n''Error:''\nfreq_2014_03_10.ino: In function 'void loop()':\nfreq_2014_03_10:9: error: 'FreqCount' was not declared in this scope\n\ntry restarting arduino...\n
kenneth will be the name of the frequency counter software function.\n\nCurrent state:\n{{{\n// Frequency Counter Lib example\n\n/*\n Martin Nawrath KHM LAB3\n Kunsthochschule f¾r Medien Kˆln\n Academy of Media Arts\n http://www.khm.de\n http://interface.khm.de/index.php/labor/experimente/ \n */\n#include <FreqCounter.h>\n\n\nunsigned long frq;\nint cnt;\nint pinLed=13;\n\nvoid setup() {\n pinMode(pinLed, OUTPUT);\n\n Serial.begin(115200); // connect to the serial port\n\n Serial.println("Frequency Counter");\n\n}\n\n\n\nvoid loop() {\n\n // wait if any serial is going on\n FreqCounter::f_comp=10; // Cal Value / Calibrate with professional Freq Counter\n FreqCounter::start(100); // 100 ms Gate Time\n\n while (FreqCounter::f_ready == 0) \n\n frq=FreqCounter::f_freq;\n Serial.print(cnt++);\n Serial.print(" Freq: ");\n Serial.println(frq);\n delay(20);\n digitalWrite(pinLed,!digitalRead(pinLed)); // blink Led\n\n} \n\n\n}}}\n\nnote placed on:\nhttp://forum.arduino.cc/index.php?action=post;topic=64219.0;num_replies=48\n\n{{{\n\nI have the demo code "// Frequency Counter Lib example" working, on an Arduino Uno. it gets a signal from a the output of a 555 (hint, do not load the output line very much or pin 5 on the Arduino will not pick up the signal :^). That said, I am only getting 2 significant figures out of Serial.println(frq); using an external frequency counter, I observer say 23 kHz, the value printed is "23". I need more significant figures. Any ideas how I can get the whole value\n\nThanks in advance!\n\n}}}
{{{\n// Frequency Counter Lib example\n\n/*\n Martin Nawrath KHM LAB3\n Kunsthochschule f¸r Medien Kˆln\n Academy of Media Arts\n http://www.khm.de\n http://interface.khm.de/index.php/labor/experimente/ \n */\n#include <FreqCounter.h>\n\n\nunsigned long frq;\nint cnt;\nint pinLed=13;\n\nvoid setup() {\n pinMode(pinLed, OUTPUT);\n\n Serial.begin(115200); // connect to the serial port\n\n Serial.println("Frequency Counter");\n\n}\n\n\n\nvoid loop() {\n\n // wait if any serial is going on\n FreqCounter::f_comp=10; // Cal Value originally 10 / Calibrate with professional Freq Counter\n FreqCounter::start(10000); // 100 ms Gate Time originally 100\n\n while (FreqCounter::f_ready == 0) \n\n frq=FreqCounter::f_freq;\n Serial.print(cnt++);\n Serial.print(" Freq: ");\n Serial.println(frq);\n delay(100); //original delay delay(20);\n digitalWrite(pinLed,!digitalRead(pinLed)); // blink Led\n\n} \n\n}}}
Dillon Rios writes me about this. \n\n'21 June 2016'\n\n|!Reference HTML|! Description|\n|[[Google Search |http://www.google.com/search?q=groundwater+vistas+tutorial&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a]]||\n|[[Rockware |https://www.rockware.com/product/overview.php?id=147&gclid=CMm4k8v6uM0CFdgXgQod7IMEsg]]||\n|[[Google MODFLOW |http://www.google.com/search?q=groundwater+vistas+MODFLOW&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a]]||\n|[[Course in Groundwater |http://groundwater-modeling.usefedora.com/courses/introduction-to-groundwater-modeling-with-groundwater-vistas]]||\n|[[Wikipedia on MODFLOW |https://en.wikipedia.org/wiki/MODFLOW]]||\n\n