9

For long distance wired communication, look at RS-485. Since it uses a differential balanced line over twisted pair (like RS-422), it can span relatively large distances (up to 4,000 feet (1,200 m)). A rule of thumb is that the speed in bit/s multiplied by the length in meters should not exceed 108. Thus a 50 meter cable should not signal faster ...


7

After countless Trial/error attempts, I was able to put together the proper sequence. AT+CIPSEND=0,40 \\Set this for your current connection ID and payload length. HTTP/1.1 200 OK\r\nConnection: close\r\n\r\n AT+CIPCLOSE=0 \\Set this for your current connection ID Send these commands with the arduino, and it should exit successfully. You can also ...


7

There are two categories i can think of to classify comminucation features of the Arduino boards: Between 2 devices: Serial: Easy to use and only requires 2 data lines. OneWire: Harder to use and slow, but uses only one data line Between more than 2 devices I2C: You can have up to 128 devices on a network, individually addressable, but requires a master ...


5

I can't guarantee anywhere in your city, but this hack will work pretty much wherever there is cell coverage for the carrier you choose. You'll want the GSM shield. Picture from Arduino Anyway, it uses pins 2, 3, and 7 on it. It also has the ability to solder (on the bottom of it) a microphone and speaker connection. You'll need to buy a SIM card and ...


5

Freakduino makes some Arduino boards with built in wireless. Their long range wireless is 900 MHz and their shorter range is 2.4GHz. I think they are actually XBee radios and for programming you would use a library called chibiArduino, which is available (and documented) on the Freakduino website. When communicating wirelessly with another radio you can use ...


5

The WiFiClient.h header and WifiClient.cpp source files are useful for reference. Is the best data structure a linked list? Probably not here. Possibly not ever. It's a load of effort to implement, and won't give you any benefit. Just create an array of them: WiFiClient clients[5]; Then perhaps something like WiFiClient newClient = server.available(...


4

In addition to the other answers, I have a few ideas: 1.) Instead of doing variable prefixes, have them wrap all of their code inside a namespace! Please note that you can't wrap "setup" or "loop" in that namespace. Example setup() { if(conditionIsTrue) { aGroup::setup(); } else { bGroup::setup(); } } loop() { if(conditionIsTrue) { ...


4

yes they are interchangeable since they all use the same chip (esp 8266). However the pin outs of the different modules can (and will be) laid out different. So you have to watch out that your wires are connected to the correct pads on the module. Also mind that different esp8266 modules can be (stock) loaded with different firmware. If you are using the AT ...


4

The nRF24L01+ has a somewhat complex SPI based interface, where many registers have to be configured and tested and timeouts honored. Therefore it requires some kind of microcontroller to send or receive even the simplest message. This can be as simple as a 3.3v Arduino Pro Mini (less than $3 with shipping), and there are libraries which simplify the task ...


4

Not sure where you got the library from, but if it's from this github repo, you're using it wrong. The function prototype for modbus_configure is: void modbus_configure(long baud, byte _slaveID, byte _TxEnablePin, unsigned int _holdingRegsSize, unsigned char _lowLatency); The example file shows how to use it correctly modbus_configure(115200, 1, 2, ...


3

I wonder if you are running out of RAM? Those sockets use RAM, and you have quite a few string constants, like this: client.println("Content-Type: text/plain;charset=UTF-8"); Change that (and all similar ones) to use the F() macro: client.println(F("Content-Type: text/plain;charset=UTF-8"));


3

Hmm... the length of your question makes it difficult to focus an answer. I'll try by stating my interpretation, then I'll provide a longer answer ;-) Is there a way to wrap a text message between two Arduinos   (to increase reliability), but would still     allow me to do testing without the wrapper? If I assume that'...


3

An Arduino is completely incapable of doing such a difficult task. It's literally impossible because the processor isn't strong enough, it has no built in network capabilities that support NAS, it has no USB software built in, and so on and so on. But you can use a Raspberry Pi. They are cheap for their capabilities, they do require quite some programming ...


3

If the connection is a digital sense pin then you can use a parallel-in serial-out IC to read them all simultaneously and then shift it in. Takes up 3 pins on the arduino a latch a clock and a data pin. If the connection is SPI then you can connect the clocks and MISO pins together and then need a slave select for each. you can control many of them with a ...


3

Some solutions that have worked for me: Reserved IP - use the router's DHCP reservation to give the same ESP the same IP each time. Static IP - Set the ESP to use the same IP each time, bypassing the DHCP feature altogether. This also boots the ESP slightly faster. WiFi.config(ip, gateway, subnet); Dump the IP address to Serial on boot, so that you can at ...


2

The Arduino Yún has been made with this use case in mind. The Bridge library allows your sketch to publish data such as sensor readings: this data is available through a REST api. Say you want to publish the temperature of your living room: you'll write something like Bridge.put("living_room", String(19)); //celsius You can then access the data via web ...


2

You'll need something like the Ethernet Shield to connect your Arduino Uno to a LAN. As for webserver functionality, the Webserver Example sketch does the bulk of what you need. For the "access this data through the internet" part, assuming you want access beyond your LAN; you'll need to perform Port Forwarding on your local router (i.e. allow the "...


2

Yun expects wifi to be working and, if it's not, it will reboot itself after 60 seconds and return in access point mode. In order to disable this check, edit file /etc/rc.local and turn wifi-live-or-reset into #wifi-live-or-reset (with a starting #). Once done, use LuCI (the advanced configuration panel) to configure network interfaces.


2

You need to determine what the network address is of the LAN you have connected the arduino to. A router can often give you this information. Alternatively you can connect a computer to the same network and look at the computers network settings (this varies depending on what OS you use). Then you have determine what IP address is available on that network. ...


2

Bluetooth generally support only one to one connection. Atmost 6 bluetooth can be connected to single module in latest bluetooth version(the basic model probably used by you connects only 1 device). Hence it is not a good idea to use bluetooth. Also if you need a web based platform you should switch to some more powerful platform like raspberry pi, beagle ...


2

Note, there is also the NRF24LE1 SoC which has its own ULP MCU - good for transmitting simple data such as sensor readings. If used to Arduino, ARduino Pro Mini 3.3v and the NRF24L01+ is easier and better way to go. (Mod the Arduino to be ULP)


2

An ATTiny85 can drive the NRF24L01+: "nrf24l01+ control with 3 ATtiny85 pins" At least this is not a "full" Arduino... Edit 2015-06-06: Hackaday News: "EMBED WITH ELLIOT: MULTIPLEXING SPI USES FEW PINS" The referred blog entry is: "nRF24l01 control with 2 MCU pins using time-division duplexed SPI". (-: Nice countdown... 3 pins, 2 pins, ... ;-)


2

There is no native multitasking on an Arduino. A few solutions have been suggested above, all of which depend on cooperative multitasking - each half has to play fair. An alternative may be this: Buy some AtTiny chips - e.g. AtTiny 24a; they are about $2-3 each. Buy some VeroBoard. Solder the AtTiny on to the board, so each verboard strip has 2 pins on it (...


2

How can I allow two sketches to run on the same board, and allow the user to upload sketches without resetting the board? This is "easily" dealt with as long as you can enforce certain minimum disciplines. Students must only use assigned pins. Identifiers (functions, variables ...) defined by a group must always be unique to that group. This can be as ...


2

Well... Yes, but... mostly only if you are using the simple serial lines(rx and tx) to communicate with it and only using the AT flash image. Just as a for-instance: The ESP8266-01 and ESP8266-02 have three and two IO pins (respectively) that are reprogrammable. The ESP8266-03 has seven IO pins. The others have different amounts of pins found on this page: ...


2

The problem was that the RF24Network library is not compatible with the version of Arduino IDE I have. I downloaded Arduino IDE v1.0 and now it works like a charm. I will send an email to maniacbug to tell him about the problem.


2

A few thoughts: For ~$20 per unit, the 1mW Digimesh modules will take care of reliable mesh networking plus provide a high degree of configurability and scalability. Depending on the budget for your sensor nodes this might be better than "wasting a ton of time" messing with bare-bones hardware and third party code. Constrain the mesh network within the "...


2

You have quite a few options available to you as your requirements are filled by quite a few protocols, I am not going to list all. You can use things such as I2C, CAN, RS-485, RS-232. You can find a few good examples from this EE.SE post from a search. The CAN option is quite a good one for your application and is easy to set up and there are quite a few ...


2

From what I can tell it's absolutely possible but will take some considerable development time and around $30-$70 of hardware per NFC terminal. Please note I would strongly not recommend this as a first project as it has a lot of individual components that all have to work together flawlessly and each is different. Properly done this will be complex software ...


Only top voted, non community-wiki answers of a minimum length are eligible