I am working on a small learning project with arduino in which there are multiple sensors like motors, 7 segment display, temprature sensor, lcd display, button etc and all of these need to talk single IPhone or Ipad.
My first thought is to buy multiple flora arduino having each a sensor. Then each independent unit can connect via bluetooth. But i am not sure if it is good idea or not. How will they all connect to single device.
Idea is like 10 arduino device sending and receiving signal from one iphone or Ipad.
As Piglet and TomServo said, The motors, 7 segment display, temprature sensor, lcd display, button are not sensors those can be considered as peripherals!
Now even though its a vast topic and you will need a lot of work to accomplish this, Its not hard if you have embedded c or C programming experience.
You should look into how micro controllers work and how to start programming them arduino site should be good starting point!
https://www.arduino.cc/en/Guide/HomePage
https://www.quora.com/Which-are-the-Best-books-on-learning-to-program-microcontroller
Now once you set up your environment and programmed a simple program like toggling a LED, you should start looking at communication protocols,
The devices/peripherals communicate to master/Host microcontroller(Arduino) through set of protocols such as SPI, UART,I2C etc. you will need to decide an ICs for example HDSP-5503 is a seven segment display you can find more at
http://www.mouser.com/ProductDetail/Broadcom-Avago/HDSP-5503/?qs=sGAEpiMZZMsx4%2fFVpd5sGZOLZP3%252bEaxq
You can not just buy arduino with ton of sensors and connect it to iPhone, iPhone will require your custom app to support your board check out this guy!
https://itunes.apple.com/us/app/hm10-bluetooth-serial-lite/id1030454675?mt=8
hopefully this will help good luck!
Related
I am new to ESP8266 and started just building basic devices using it. However I am using USB 5V wall adapter as nodeMCU has USB UART converter to 3.3V.
If I want to make it battery powered what is simple , small ( in volume so that it can fit along with nodemcu and sensors in a small case) and economical approach that keeps my nodemcu still safe?
-One option I can think of is to connect a Li-ion battery of 3.7V to VIN.
-Another one is to use bigger voltage and use a converter to convert it down to around 5V and then use that to connect to VIN.
Please let me know if this works ? else if there is any better option please do suggest. Also if you are referring to any items/products please help give the exact model numbers so that I can search on internet to consider buying them.
Lastly I am not much aware of electric circuits & terminology yet ( learning them), so please help explain me in basic terms possible.
Ps: this question was seen on stackoverflow some times but I couldnt find one single consolidated answer and am confused by it. Appreciate your understanding.
Thanks,
Sridhar.
This really would be better suited for the electronics sister site or a esp8266.com forum but for what it's wort here's my input.
IMHO the most convenient option you have is to buy a devkit with a LiPo connector. I recommend a WeMOS D1 mini plus a fitting battery shield. An alternative is the Adafruit Feather HUZZAH.
It can sometimes be a bit of a challenge to find the right connectors for those boards. Gotcha! different revisions of those boards might use different connectors. Currently the WeMOS battery shield uses a 2 pin JST PH 2.0mm.
No, you cannot power a NodeMCU using a 3.7v li-ion battery directly. A fully charged Li-ion battery outputs a voltage of 4.2v. The NodeMCU board has a (5v and above) vin slot along with two 3.6v slots. If you directly connect the battery to the 3.6v, it may fry the NodeMCU board. So typically, there are 3 ways you can connect the battery without frying your board in this scenario:
You can use a boost converter to convert the 4.2v output to 5v. Then connect it to vin. This will draw more current and battery discharges quickly (eg: MT3608 step up boost converter).
You can use a buck converter to convert the 4.2v to a steady 3.6v (eg: LM2596 step down converter).
Finally, the most efficient way is to connect a 3.3v LDO in middle. The difference between using a buck and LDO is, buck provides a constant and steady 3.6v output, where as LDO's output depends on the input voltage from battery (eg: S111733PI).
I'm working on a project which needs the iPhone to detect a small set of voltage data (two different values of voltage representing 0 and 1 respectively). My initial thought is to detect it through microphone, but I'm not sure if iPhone would be able to detect these signals since it contains no info of frequency. I searched in iOS Developer resources and on google, but nothing clear about this problem. Can anyone help me with this question? Thanks a lot!
as per our discussion, it seems you want to send a digital signal to the iphone. Now there are two main ways to do this.
Either sign up to Apples MFi hardware licensing program which allows you to create hardware for the iPhone. MFi program. Or,
There is an easy way to do this but it would require the use of the headphone jack. For demonstration and testing purposes you can use the headphone jack and if its a simple on and off signal then you can get good results with the headphone jack overall and might not require to create yourself a piece of hardware. Here's a link to that Grab sensor data and send it through the iPhone headphone jack
In fact, using the headphone approach is not as bad as it may sound, you can receive a nice signal if needed. Anyway, it will suffice for your purposes. Have a look what this guy is doing. I suggest you start with the video demonstration to get an overall idea of this approach.
UPDATE 1
Have a look at this link. People are using the headphone port to detect voltage. The reason this works is because the iPhone jack is a combination earpiece (output only) and microphone (input only) connector. The microphone input is a single wire, with common ground to the earpieces.
The usual problem when trying to use an audio signal as digital signal input is that it is high-pass-filtered to avoid offsets (long term pressure changes which could destroy the dynamic range of the soundcards Analog-to-Digital converters). This means you will get only the changes of the digital signal (like "clicks"). Actually you will be better of the higher frequency your signal has, but it will be non-trivial to process it well then (this was what ordinary modems did very well).
If you can control the digital signals sent as sound (or to the microphone jack), make sure they are modulated the signal with one or more tones, like a morse transmitter or modem. Essentially you want to use your iPhone as an Aucoustic Coupler. This is possible, but of course a bit computationally expensive considering the quite low bandwidth.
Start by using some dirt simple modulation, like 1200-1800 Hz and make an FFT of it. There's probably some reference implementation for any sound card out there to get started with.
There have been some cool viruses recently that was said to be able to jump air-gaps, they used similar techniques as this one.
If you still really want a DC (or slowly changing digital signal), check out a solution using a separate oscillator that is amplitude-modulated by the incoming signal
I have a question and like so many of my questions I get the feeling that I'm not finding the answers through traditional methods because I lack the vocabulary.
I am starting a project where I need to take a windows based laptop and connect it to the internet through a wifi dongle. I then want to turn that laptop into a wifi hotspot and connect circa 30 mobile phones to it.
In my head this worked by buying a decent wifi dongle and then using software to virtualize the wireless adapter I would connect these phones and I was hoping that the strength of my dongle would be possibly be improved with a wifi repeater/booster.
This is all in preparation for a quiz game that takes place on a laptop and the mobile phones are querying the system for the next question through a POST operation, and pulling down just a few bits of text and a few other variables (so not much data is being passed, but all 30 or so devices are asking for it at the same time)
So now to the question. If my assumptions above are right how to I begin to understand what qualities I need in a wifi dongle, wifi repeater/booster and virtualization software?
If my assumptions are wrong, what do I need to be looking at?
Cheers for any help you can offer.
Other basic info that may or may not be relevant: I'm in the UK and I'm willing to spend a few hundred pounds on a solution to this. The mobiles will be running a version of android (preferably newer than version 2, hopefully closer to 4 though).
You need to google internet connection sharing (ICS)
here is an example I found
http://www.dummies.com/how-to/content/how-to-share-an-internet-connection-in-windows-7.html
I'd like to have an iPhone and an Arduino-based device talk to each other. Here are the requirements:
I want to fully rely on iPhone's built-in components without any peripherals (for example, HiJack).
The less configuration before the two can communicate, the better. This means a WiFi-based is not desirable, because we'll need to set up Wi-Fi credentials for the Arduino beforehand.
Bitrate is not important. Only a few bytes are exchanged.
As cheap as possible.
I see that Bluetooth 4.0 LE (for example, Stack Overflow question iPhone - Any examples of communicating with an Arduino board using Bluetooth?) meets my requirements, but are there any cheaper solutions?
One thing that came into my mind is sound - the way Chirp used to share data between two iOS devices, but I don't know if is feasible on Arduino and, if it is, how much it would be. Any other solutions?
I can think of a few options:
Bluetooth, you can get a cheap one from eBay for about $10
Wi-Fi using Electric Imp (cost around $30), which is very easy to setup using the brilliant BlinkUp technique. See the project ElectricImp, control central heating via iPhone for an example.
Chirp is a brilliant idea as well. From a hardware prospective I see it is feasible to do in Arduino; you just need a MIC circuit ($8) and speaker.
However, the real challenge is the software side, i.e., the algorithm that you will use to encode data as sound and vice versa. If such algorithm requires intensive calculation, you might not be able to do it in Arduino, and you can consider using an ARM-based microcontroller.
Back Story: I was approached to write an app, but iOS isn't something that have any experience with.
Short Description: Want an app for coverage map for use in an airplane while spraying.
Long Description: The customer has a some airplanes that he uses to spray chemicals on farm fields. They want a system to display a map of the area, a boundary of the field(s) that are to be sprayed on the current flight, and record the flight path of the airplane. The user interface needs to be extremely clean and simple because the user is going to be flying an airplane while using it. Dropbox will be used to transfer data between the airplane and the main office. Someone in the office will create a list of fields that need to be sprayed, and the boundary information of those fields are stored in a shape file format. Those shape files need to be read by the app and displayed over satellite imagery. The airplane already has a high accuracy GPS receiver on it that outputs NMEA position data at 10Hz or faster. The customer also wants to attach a pressure sensor to the spray circuit to monitor if it is dropping spray or not. That information needs to go to the app as well to paint the screen where the plane has already been. This will help the operator to eliminate overlap and skips.
As for getting the GPS position data and pressure data into an iPad, I'm guessing that 802.11 wireless is the simplest way, with that data being supplied in a TCP data stream. I can build a device that makes the data available as a TCP server on a 802.11 wireless network.
From there, I need an app on the iPad that connects to that server to get the data stream. That data gets parsed and turned in to a map.
I have experience with developing apps for Windows in VB.net and two apps for Android. How much difference is there with development concepts in iOS?
I see that iOS uses OpenGL for the graphics, which is ideal for a map. Can I easily access terrain data like is available in Google Earth?
Like dasdom i will encourage you to not begin with that complex project, perhaps divide the several goals in your requirements and make tiny apps for getting in tune with the iPhone SDK, also you have to learn Objective-C that implies that you are already good enough in C programming.
study this topics: Objective-C, iOS Memory Management, sockets, MapKit, Quartz and CoreGraphics, etc.
Or you can buy this excellent book from Aaron Hillegas:
"iPhone Programming: The Big Nerd Ranch Guide"
That book cover almost all topics to introduce your self in the iOS programming madness :)